From 6713618ac1ea1ebb3be1c674aa5077d1098bebe0 Mon Sep 17 00:00:00 2001 From: Jeffrey Aven Date: Thu, 20 Aug 2026 18:38:38 +1000 Subject: [PATCH] github update --- .gitignore | 8 + Makefile | 172 + README.md | 437 +- bin/fix-doc-links.sh | 26 + package-lock.json | 1063 +- package.json | 63 +- provider-dev/config/all_services.csv | 2334 +- provider-dev/config/provider_config.json | 1 + provider-dev/config/servers.json | 1 + provider-dev/config/service_config.json | 6 + .../docgen/provider-data/headerContent2.txt | 473 +- provider-dev/downloaded/api.github.com.json | 200466 ++++++++------- .../src/github/v00.00.00000/provider.yaml | 40 +- .../github/v00.00.00000/services/actions.yaml | 682 + .../v00.00.00000/services/activity.yaml | 1192 +- .../v00.00.00000/services/agent_tasks.yaml | 337 +- .../github/v00.00.00000/services/agents.yaml | 3065 + .../github/v00.00.00000/services/apps.yaml | 58 +- .../github/v00.00.00000/services/billing.yaml | 1186 +- .../v00.00.00000/services/campaigns.yaml | 22 + .../github/v00.00.00000/services/checks.yaml | 9 + .../v00.00.00000/services/classroom.yaml | 126 +- .../v00.00.00000/services/code_quality.yaml | 726 + .../v00.00.00000/services/code_scanning.yaml | 1458 +- .../v00.00.00000/services/code_security.yaml | 45 +- .../services/codes_of_conduct.yaml | 8 + .../v00.00.00000/services/codespaces.yaml | 8 + .../github/v00.00.00000/services/copilot.yaml | 1566 +- .../v00.00.00000/services/copilot_spaces.yaml | 4026 + .../v00.00.00000/services/credentials.yaml | 8 + .../v00.00.00000/services/dependabot.yaml | 376 +- .../services/dependency_graph.yaml | 267 +- .../v00.00.00000/services/discussions.yaml | 493 + .../github/v00.00.00000/services/emojis.yaml | 8 + .../services/enterprise_team_memberships.yaml | 8 + .../enterprise_team_organizations.yaml | 8 + .../services/enterprise_teams.yaml | 48 + .../github/v00.00.00000/services/gists.yaml | 14 + .../src/github/v00.00.00000/services/git.yaml | 8 + .../v00.00.00000/services/gitignore.yaml | 13 +- .../v00.00.00000/services/hosted_compute.yaml | 8 + .../v00.00.00000/services/interactions.yaml | 738 + .../github/v00.00.00000/services/issues.yaml | 7114 +- .../v00.00.00000/services/licenses.yaml | 8 + .../v00.00.00000/services/markdown.yaml | 8 + .../github/v00.00.00000/services/meta.yaml | 32 +- .../v00.00.00000/services/migrations.yaml | 20 +- .../github/v00.00.00000/services/oidc.yaml | 21 + .../github/v00.00.00000/services/orgs.yaml | 5203 +- .../v00.00.00000/services/packages.yaml | 8 + .../services/private_registries.yaml | 157 +- .../v00.00.00000/services/projects.yaml | 217 +- .../github/v00.00.00000/services/pulls.yaml | 3805 +- .../v00.00.00000/services/rate_limit.yaml | 28 +- .../v00.00.00000/services/reactions.yaml | 8 + .../github/v00.00.00000/services/repos.yaml | 653 +- .../github/v00.00.00000/services/search.yaml | 82 +- .../services/secret_scanning.yaml | 1408 +- .../services/security_advisories.yaml | 46 + .../github/v00.00.00000/services/teams.yaml | 205 +- .../github/v00.00.00000/services/users.yaml | 1254 +- provider-dev/scripts/graphql_merge.mjs | 300 + provider-dev/scripts/map_new_operations.mjs | 246 + provider-dev/scripts/post_normalize.mjs | 97 + provider-dev/source-graphql/manifest.yaml | 38 + .../ops/contribution_calendar.yaml | 59 + .../ops/discussion_categories.yaml | 53 + .../ops/discussion_comments.yaml | 81 + .../source-graphql/ops/discussions.yaml | 116 + .../source-graphql/ops/org_sponsorships.yaml | 67 + .../source-graphql/ops/review_threads.yaml | 98 + .../source-graphql/ops/saml_identities.yaml | 80 + .../source-graphql/ops/star_history.yaml | 65 + .../source-graphql/ops/user_sponsorships.yaml | 67 + provider-dev/source/actions.yaml | 500 + provider-dev/source/activity.yaml | 48 +- provider-dev/source/agent_tasks.yaml | 185 +- provider-dev/source/agents.yaml | 2318 + provider-dev/source/apps.yaml | 29 +- provider-dev/source/billing.yaml | 1046 +- provider-dev/source/campaigns.yaml | 11 + provider-dev/source/checks.yaml | 1 + provider-dev/source/classroom.yaml | 102 +- provider-dev/source/code_quality.yaml | 601 + provider-dev/source/code_scanning.yaml | 1409 +- provider-dev/source/code_security.yaml | 31 +- provider-dev/source/copilot.yaml | 1053 +- provider-dev/source/copilot_spaces.yaml | 3359 + provider-dev/source/dependabot.yaml | 269 +- provider-dev/source/dependency_graph.yaml | 214 +- provider-dev/source/enterprise_teams.yaml | 29 + provider-dev/source/gists.yaml | 6 + provider-dev/source/gitignore.yaml | 5 +- provider-dev/source/interactions.yaml | 570 + provider-dev/source/issues.yaml | 2698 +- provider-dev/source/meta.yaml | 23 +- provider-dev/source/migrations.yaml | 12 +- provider-dev/source/oidc.yaml | 6 + provider-dev/source/orgs.yaml | 721 +- provider-dev/source/private_registries.yaml | 97 +- provider-dev/source/projects.yaml | 174 +- provider-dev/source/pulls.yaml | 1625 +- provider-dev/source/rate_limit.yaml | 16 +- provider-dev/source/repos.yaml | 511 +- provider-dev/source/search.yaml | 65 +- provider-dev/source/secret_scanning.yaml | 1178 +- provider-dev/source/security_advisories.yaml | 35 + provider-dev/source/teams.yaml | 168 +- provider-dev/source/users.yaml | 92 +- provider-dev/test/README.md | 7 +- provider-dev/test/conftest.py | 2 +- provider-dev/test/provider.yaml | 2 + provider-dev/test/tier1.yaml | 130 +- website/docs/index.md | 484 +- .../services/actions/allowed_actions/index.md | 8 +- .../actions/concurrency_groups/index.md | 239 + .../services/actions/enabled_repos/index.md | 16 +- website/docs/services/actions/index.md | 4 +- website/docs/services/actions/oidc/index.md | 17 +- .../actions/org_hosted_runners/index.md | 4 +- .../actions/org_runner_group_runners/index.md | 8 +- .../actions/self_hosted_runners/index.md | 32 +- .../services/actions/workflow_jobs/index.md | 14 +- .../workflow_run_concurrency_groups/index.md | 172 + .../services/actions/workflow_runs/index.md | 23 +- website/docs/services/activity/index.md | 7 +- .../services/activity/star_history/index.md | 142 + .../services/agent_tasks/repo_tasks/index.md | 49 +- .../docs/services/agent_tasks/tasks/index.md | 20 +- website/docs/services/agents/index.md | 38 + .../docs/services/agents/public_keys/index.md | 243 + .../services/agents/repo_org_secrets/index.md | 160 + .../agents/repo_org_variables/index.md | 166 + .../agents/repos_for_org_variable/index.md | 802 + .../services/agents/repos_for_secret/index.md | 802 + website/docs/services/agents/secrets/index.md | 519 + .../docs/services/agents/variables/index.md | 593 + website/docs/services/apps/apps/index.md | 17 +- .../services/apps/installation_repos/index.md | 12 + .../docs/services/apps/installations/index.md | 2 +- .../services/billing/ai_credit_usage/index.md | 220 + website/docs/services/billing/index.md | 8 +- .../billing/org_ai_credit_usage/index.md | 226 + .../services/billing/org_budgets/index.md | 162 +- .../docs/services/checks/annotations/index.md | 2 +- website/docs/services/checks/runs/index.md | 2 +- .../assignment_accepted_assignments/index.md | 4 +- .../classroom/assignment_grades/index.md | 4 +- .../services/classroom/assignments/index.md | 4 +- .../classroom/classroom_assignments/index.md | 4 +- .../services/classroom/classrooms/index.md | 8 +- .../services/code_quality/findings/index.md | 287 + website/docs/services/code_quality/index.md | 33 + .../docs/services/code_quality/setup/index.md | 212 + .../code_scanning/alert_autofixes/index.md | 12 +- .../code_scanning/alert_items/index.md | 4 +- .../services/code_scanning/alerts/index.md | 9 +- .../services/code_scanning/analysis/index.md | 4 +- .../code_security_configurations/index.md | 8 +- .../copilot/coding_agent_policy/index.md | 105 + .../copilot/coding_agent_policy_orgs/index.md | 160 + .../services/copilot/copilot_metrics/index.md | 196 - .../copilot_repos_one_day_report/index.md | 142 + .../index.md | 142 + website/docs/services/copilot/index.md | 11 +- .../org_coding_agent_permissions/index.md | 10 +- .../copilot/org_coding_agent_repos/index.md | 16 +- .../copilot/org_copilot_metrics/index.md | 190 - .../org_copilot_repos_one_day_report/index.md | 142 + .../index.md | 142 + .../repo_cloud_agent_configuration/index.md | 178 + .../copilot_spaces/collaborators/index.md | 908 + website/docs/services/copilot_spaces/index.md | 34 + .../copilot_spaces/resources/index.md | 620 + .../services/copilot_spaces/spaces/index.md | 860 + .../docs/services/dependabot/alerts/index.md | 17 +- .../index.md | 210 + website/docs/services/dependabot/index.md | 7 +- .../docs/services/dependency_graph/index.md | 3 +- .../dependency_graph/sbom_reports/index.md | 133 + .../discussion_categories/index.md | 178 + .../discussions/discussion_comments/index.md | 214 + .../services/discussions/discussions/index.md | 256 + website/docs/services/discussions/index.md | 34 + .../enterprise_teams/index.md | 27 +- .../services/gitignore/gitignore/index.md | 7 +- website/docs/services/interactions/index.md | 7 +- .../org_pull_request_creation_caps/index.md | 171 + .../repo_pull_request_bypass_lists/index.md | 323 + .../repo_pull_request_creation_caps/index.md | 178 + .../docs/services/issues/assignees/index.md | 3 +- .../docs/services/issues/comments/index.md | 20 + website/docs/services/issues/events/index.md | 126 + website/docs/services/issues/index.md | 7 +- .../issue_blocked_by_dependencies/index.md | 2 +- .../issue_blocking_dependencies/index.md | 2 +- .../issues/issue_comment_pins/index.md | 1 + .../issues/issue_field_values/index.md | 48 +- .../services/issues/issue_parent/index.md | 2 +- .../services/issues/issue_sub_issues/index.md | 2 +- .../issues/issue_suggestions/index.md | 295 + website/docs/services/issues/issues/index.md | 26 +- website/docs/services/issues/labels/index.md | 5 +- .../docs/services/issues/timeline/index.md | 56 +- .../docs/services/issues/user_issues/index.md | 2 +- website/docs/services/meta/meta/index.md | 10 +- website/docs/services/meta/versions/index.md | 7 +- website/docs/services/oidc/oidc/index.md | 3 +- .../orgs/api_insights_route_stats/index.md | 4 +- .../orgs/api_insights_subject_stats/index.md | 4 +- .../orgs/api_insights_summary_stats/index.md | 12 +- .../orgs/api_insights_time_stats/index.md | 12 +- .../orgs/api_insights_user_stats/index.md | 4 +- .../services/orgs/app_installations/index.md | 2 +- .../orgs/artifact_deployment_records/index.md | 14 +- .../orgs/artifact_storage_records/index.md | 4 +- .../cluster_deployment_records_jobs/index.md | 243 + website/docs/services/orgs/index.md | 5 +- .../services/orgs/invitation_teams/index.md | 6 + .../docs/services/orgs/issue_fields/index.md | 8 +- .../services/orgs/saml_identities/index.md | 154 + .../docs/services/orgs/sponsorships/index.md | 166 + .../private_registries/index.md | 126 +- .../services/projects/project_views/index.md | 27 + website/docs/services/pulls/index.md | 11 +- .../docs/services/pulls/pull_request/index.md | 8 + .../pulls/pull_request_async_merges/index.md | 192 + .../services/pulls/pull_requests/index.md | 6 + .../services/pulls/review_requests/index.md | 1 + .../services/pulls/review_threads/index.md | 202 + website/docs/services/pulls/stacks/index.md | 405 + .../services/rate_limit/rate_limit/index.md | 4 +- website/docs/services/repos/comments/index.md | 4 +- .../repos/commit_pr_branches/index.md | 6 + .../services/repos/hash_algorithm/index.md | 136 + website/docs/services/repos/index.md | 8 +- .../docs/services/repos/issue_types/index.md | 178 + website/docs/services/repos/releases/index.md | 8 +- website/docs/services/repos/repos/index.md | 2 + .../docs/services/repos/rule_suites/index.md | 11 +- .../repos/status_check_contexts/index.md | 13 +- .../repos/team_access_restrictions/index.md | 8 + website/docs/services/repos/teams/index.md | 6 + website/docs/services/search/code/index.md | 4 +- .../services/secret_scanning/alerts/index.md | 36 +- .../docs/services/secret_scanning/index.md | 4 +- .../org_custom_patterns/index.md | 384 + .../repo_custom_patterns/index.md | 397 + .../repo_secret_scan_history/index.md | 10 +- .../docs/services/teams/child_teams/index.md | 12 + website/docs/services/teams/members/index.md | 32 +- website/docs/services/teams/repos/index.md | 4 +- website/docs/services/teams/teams/index.md | 18 +- .../users/contribution_calendar/index.md | 148 + website/docs/services/users/index.md | 4 +- .../docs/services/users/sponsorships/index.md | 166 + website/docusaurus.config.js | 5 + 257 files changed, 173250 insertions(+), 104611 deletions(-) create mode 100644 Makefile create mode 100644 bin/fix-doc-links.sh create mode 100644 provider-dev/config/provider_config.json create mode 100644 provider-dev/config/servers.json create mode 100644 provider-dev/config/service_config.json create mode 100644 provider-dev/openapi/src/github/v00.00.00000/services/agents.yaml create mode 100644 provider-dev/openapi/src/github/v00.00.00000/services/code_quality.yaml create mode 100644 provider-dev/openapi/src/github/v00.00.00000/services/copilot_spaces.yaml create mode 100644 provider-dev/openapi/src/github/v00.00.00000/services/discussions.yaml create mode 100644 provider-dev/scripts/graphql_merge.mjs create mode 100644 provider-dev/scripts/map_new_operations.mjs create mode 100644 provider-dev/scripts/post_normalize.mjs create mode 100644 provider-dev/source-graphql/manifest.yaml create mode 100644 provider-dev/source-graphql/ops/contribution_calendar.yaml create mode 100644 provider-dev/source-graphql/ops/discussion_categories.yaml create mode 100644 provider-dev/source-graphql/ops/discussion_comments.yaml create mode 100644 provider-dev/source-graphql/ops/discussions.yaml create mode 100644 provider-dev/source-graphql/ops/org_sponsorships.yaml create mode 100644 provider-dev/source-graphql/ops/review_threads.yaml create mode 100644 provider-dev/source-graphql/ops/saml_identities.yaml create mode 100644 provider-dev/source-graphql/ops/star_history.yaml create mode 100644 provider-dev/source-graphql/ops/user_sponsorships.yaml create mode 100644 provider-dev/source/agents.yaml create mode 100644 provider-dev/source/code_quality.yaml create mode 100644 provider-dev/source/copilot_spaces.yaml create mode 100644 website/docs/services/actions/concurrency_groups/index.md create mode 100644 website/docs/services/actions/workflow_run_concurrency_groups/index.md create mode 100644 website/docs/services/activity/star_history/index.md create mode 100644 website/docs/services/agents/index.md create mode 100644 website/docs/services/agents/public_keys/index.md create mode 100644 website/docs/services/agents/repo_org_secrets/index.md create mode 100644 website/docs/services/agents/repo_org_variables/index.md create mode 100644 website/docs/services/agents/repos_for_org_variable/index.md create mode 100644 website/docs/services/agents/repos_for_secret/index.md create mode 100644 website/docs/services/agents/secrets/index.md create mode 100644 website/docs/services/agents/variables/index.md create mode 100644 website/docs/services/billing/ai_credit_usage/index.md create mode 100644 website/docs/services/billing/org_ai_credit_usage/index.md create mode 100644 website/docs/services/code_quality/findings/index.md create mode 100644 website/docs/services/code_quality/index.md create mode 100644 website/docs/services/code_quality/setup/index.md create mode 100644 website/docs/services/copilot/coding_agent_policy/index.md create mode 100644 website/docs/services/copilot/coding_agent_policy_orgs/index.md delete mode 100644 website/docs/services/copilot/copilot_metrics/index.md create mode 100644 website/docs/services/copilot/copilot_repos_one_day_report/index.md create mode 100644 website/docs/services/copilot/copilot_user_teams_one_day_report/index.md delete mode 100644 website/docs/services/copilot/org_copilot_metrics/index.md create mode 100644 website/docs/services/copilot/org_copilot_repos_one_day_report/index.md create mode 100644 website/docs/services/copilot/org_copilot_user_teams_one_day_report/index.md create mode 100644 website/docs/services/copilot/repo_cloud_agent_configuration/index.md create mode 100644 website/docs/services/copilot_spaces/collaborators/index.md create mode 100644 website/docs/services/copilot_spaces/index.md create mode 100644 website/docs/services/copilot_spaces/resources/index.md create mode 100644 website/docs/services/copilot_spaces/spaces/index.md create mode 100644 website/docs/services/dependabot/enterprise_dependabot_repository_access/index.md create mode 100644 website/docs/services/dependency_graph/sbom_reports/index.md create mode 100644 website/docs/services/discussions/discussion_categories/index.md create mode 100644 website/docs/services/discussions/discussion_comments/index.md create mode 100644 website/docs/services/discussions/discussions/index.md create mode 100644 website/docs/services/discussions/index.md create mode 100644 website/docs/services/interactions/org_pull_request_creation_caps/index.md create mode 100644 website/docs/services/interactions/repo_pull_request_bypass_lists/index.md create mode 100644 website/docs/services/interactions/repo_pull_request_creation_caps/index.md create mode 100644 website/docs/services/issues/issue_suggestions/index.md create mode 100644 website/docs/services/orgs/cluster_deployment_records_jobs/index.md create mode 100644 website/docs/services/orgs/saml_identities/index.md create mode 100644 website/docs/services/orgs/sponsorships/index.md create mode 100644 website/docs/services/pulls/pull_request_async_merges/index.md create mode 100644 website/docs/services/pulls/review_threads/index.md create mode 100644 website/docs/services/pulls/stacks/index.md create mode 100644 website/docs/services/repos/hash_algorithm/index.md create mode 100644 website/docs/services/repos/issue_types/index.md create mode 100644 website/docs/services/secret_scanning/org_custom_patterns/index.md create mode 100644 website/docs/services/secret_scanning/repo_custom_patterns/index.md create mode 100644 website/docs/services/users/contribution_calendar/index.md create mode 100644 website/docs/services/users/sponsorships/index.md diff --git a/.gitignore b/.gitignore index 24d9d59..b127a26 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ +# stackql +stackql +/.stackql + main.zip # Byte-compiled / optimized / DLL files @@ -82,3 +86,7 @@ nohup.out **/test-output/ # Ignore everything in source directory except .gitkeep source/* + +# provider-dev test harness +provider-dev/test/.bin/ +provider-dev/test/.venv/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..4057b20 --- /dev/null +++ b/Makefile @@ -0,0 +1,172 @@ +# StackQL github provider - build, test and docs pipeline. +# +# `make all` runs the full chain (no live credentials needed): +# +# install npm install (pins @stackql/provider-utils) +# spec download the latest GitHub OpenAPI description into +# provider-dev/downloaded/ (skipped if SPEC_REFRESH=0) +# split Step 1: split the monolithic spec into per-service yamls +# under provider-dev/source/ (tag discriminated) +# normalize Step 2: provider-utils normalize (allOf flatten, oneOf/anyOf +# lowering, misplaced keyword strip) followed by +# post_normalize.mjs, which reverts the bare-array envelope the +# normalizer wraps around ~260 GitHub list responses (see the +# script header for why) +# mappings Step 3: refresh provider-dev/config/all_services.csv +# (analyze keeps existing rows) then map_new_operations.mjs +# fills in new operations from its mapping table, prunes +# retired operations and resyncs moved paths. FAILS if an +# operation has no mapping - add it to the script and re-run. +# provider Step 4: generate the provider tree (servers, auth, and the +# Link-header pagination service config from +# provider-dev/config/*.json) then graphql_merge.mjs shims the +# GraphQL-backed resources from provider-dev/source-graphql/ +# meta-test Step 5 gate: start a local server, walk every SHOW/DESCRIBE +# meta route, stop the server. Non-zero exit stops the build. +# docs Step 6: generate the Docusaurus markdown and fix upstream +# relative links +# docs-build Step 7: yarn build of website/ (catches broken MDX) +# +# Live smoke tests hit api.github.com and need credentials, so they are NOT +# part of `all`. Populate .env (STACKQL_GITHUB_USERNAME / PASSWORD) then: +# +# make smoke-test # exec mode +# make smoke-test MODE=both # exec + pgwire +# +# Run from Linux, macOS or WSL (the server lifecycle scripts need a POSIX +# shell with pgrep/ps; the smoke-test harness downloads a Linux stackql). + +SHELL := /bin/bash + +PROVIDER := github +VERSION := v00.00.00000 +SPEC_URL := https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json +SPEC_FILE := provider-dev/downloaded/api.github.com.json +SOURCE_DIR := provider-dev/source +CONFIG_DIR := provider-dev/config +OPENAPI_DIR := provider-dev/openapi +PROVIDER_DIR := $(OPENAPI_DIR)/src/$(PROVIDER)/$(VERSION) +WEBSITE_DIR := website +PORT ?= 5444 +MODE ?= exec +VENV ?= provider-dev/test/.venv +SPEC_REFRESH ?= 1 +PYTHON ?= $(shell command -v python3 >/dev/null 2>&1 && echo python3 || echo python) + +.PHONY: all help install spec split normalize mappings provider build \ + meta-test smoke-test smoke-test-bootstrap docs docs-build docs-serve \ + start-server stop-server server-status clean + +all: install spec build meta-test docs docs-build + @echo "" + @echo "make all complete: provider + docs generated, meta-route gate passed." + @echo "Live smoke tests are run separately - see 'make help'." + +help: + @echo "Targets:" + @echo " all install + spec + build + meta-test + docs + docs-build" + @echo " install npm install" + @echo " spec download the latest GitHub OpenAPI description (SPEC_REFRESH=0 to skip)" + @echo " split split the spec into per-service yamls (provider-dev/source)" + @echo " normalize provider-utils normalize + post_normalize.mjs" + @echo " mappings refresh all_services.csv + map_new_operations.mjs (fails on unmapped ops)" + @echo " provider generate the provider + graphql_merge.mjs" + @echo " build split + normalize + mappings + provider" + @echo " meta-test SHOW/DESCRIBE gate over every resource (no credentials needed)" + @echo " smoke-test live tier-1 queries via pytest (needs .env; MODE=exec|pgwire|both)" + @echo " docs generate website/docs + fix links" + @echo " docs-build yarn build in website/" + @echo " docs-serve yarn start in website/" + @echo " start-server / stop-server / server-status local stackql server on PORT=$(PORT)" + @echo " clean remove generated provider, split source and website build" + +install: + npm install + +spec: +ifeq ($(SPEC_REFRESH),1) + @mkdir -p $(dir $(SPEC_FILE)) + curl -sSL "$(SPEC_URL)" -o $(SPEC_FILE) + @node -e "const s=require('./$(SPEC_FILE)');console.log('spec version',s.info.version,'paths',Object.keys(s.paths).length)" +else + @echo "SPEC_REFRESH=0 - using cached $(SPEC_FILE)" +endif + +split: + rm -rf $(SOURCE_DIR)/* + npm run split -- \ + --provider-name $(PROVIDER) \ + --api-doc $(SPEC_FILE) \ + --svc-discriminator tag \ + --output-dir $(SOURCE_DIR) \ + --overwrite + +normalize: + npm run normalize -- --api-dir $(SOURCE_DIR) + node provider-dev/scripts/post_normalize.mjs --api-dir $(SOURCE_DIR) + +mappings: + npm run generate-mappings -- --input-dir $(SOURCE_DIR) --output-dir $(CONFIG_DIR) + node provider-dev/scripts/map_new_operations.mjs --csv $(CONFIG_DIR)/all_services.csv --source-dir $(SOURCE_DIR) + +provider: + rm -rf $(OPENAPI_DIR)/* + npm run generate-provider -- \ + --provider-name $(PROVIDER) \ + --input-dir $(SOURCE_DIR) \ + --output-dir $(OPENAPI_DIR)/src/$(PROVIDER) \ + --config-path $(CONFIG_DIR)/all_services.csv \ + --servers $(CONFIG_DIR)/servers.json \ + --provider-config $(CONFIG_DIR)/provider_config.json \ + --service-config $(CONFIG_DIR)/service_config.json \ + --naive-req-body-translate \ + --overwrite + node provider-dev/scripts/graphql_merge.mjs --provider-dir $(PROVIDER_DIR) --source-dir provider-dev/source-graphql + +build: split normalize mappings provider + +# Go/no-go gate: the server is always torn down and the meta-test's exit +# status is preserved so a failure stops `make all`. +meta-test: + bash bin/start-server.sh --provider $(PROVIDER) --registry "$(CURDIR)/$(OPENAPI_DIR)" --port $(PORT) + node bin/test-meta-routes.cjs $(PROVIDER) --port $(PORT); status=$$?; bash bin/stop-server.sh --port $(PORT); exit $$status + +# The venv is recreated when it is missing or unusable (for example after the +# repo directory moved - venv shebangs embed the absolute path). +smoke-test-bootstrap: + bash provider-dev/test/bootstrap.sh + @if ! "$(VENV)/bin/pytest" --version >/dev/null 2>&1 || ! "$(VENV)/bin/python" -c "import yaml, psycopg" >/dev/null 2>&1; then \ + echo "creating venv at $(VENV)"; rm -rf "$(VENV)"; $(PYTHON) -m venv "$(VENV)"; \ + "$(VENV)/bin/pip" install -q -r provider-dev/test/requirements.txt; \ + fi + +smoke-test: smoke-test-bootstrap + @test -f .env || (echo ".env not found - it must export STACKQL_GITHUB_USERNAME and STACKQL_GITHUB_PASSWORD"; exit 1) + set -a; source .env; set +a; "$(VENV)/bin/pytest" provider-dev/test/ -v --mode=$(MODE) + +docs: + rm -rf $(WEBSITE_DIR)/docs/* + npm run generate-docs -- \ + --provider-name $(PROVIDER) \ + --provider-dir ./$(PROVIDER_DIR) \ + --output-dir ./$(WEBSITE_DIR) \ + --provider-data-dir ./provider-dev/docgen/provider-data + bash bin/fix-doc-links.sh $(WEBSITE_DIR)/docs/services + +docs-build: + cd $(WEBSITE_DIR) && yarn install --silent && yarn build + +docs-serve: + cd $(WEBSITE_DIR) && yarn start + +start-server: + bash bin/start-server.sh --provider $(PROVIDER) --registry "$(CURDIR)/$(OPENAPI_DIR)" --port $(PORT) + +stop-server: + bash bin/stop-server.sh --port $(PORT) + +server-status: + bash bin/server-status.sh --port $(PORT) + +clean: + rm -rf $(OPENAPI_DIR)/* $(SOURCE_DIR)/* $(WEBSITE_DIR)/build provider-dev/test/.bin diff --git a/README.md b/README.md index d09a9c9..eeeb730 100644 --- a/README.md +++ b/README.md @@ -1,268 +1,169 @@ -# `github` provider for [`stackql`](https://github.com/stackql/stackql) - -This repository is used to generate and document the `github` provider for StackQL, allowing you to query and interact with GitHub resources using SQL-like syntax. The provider is built using the `@stackql/provider-utils` package, which provides tools for converting OpenAPI specifications into StackQL-compatible provider schemas. - -## Prerequisites - -To use the GitHub provider with StackQL, you'll need: - -1. A GitHub account with appropriate API credentials -2. A GitHub personal access token (PAT) with sufficient permissions for the resources you want to access -3. StackQL CLI installed on your system (see [StackQL](https://github.com/stackql/stackql)) - -## 1. Download the Open API Specification - -First, download the GitHub API OpenAPI specification: - -```bash -mkdir -p provider-dev/downloaded -curl -L https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json \ - -o provider-dev/downloaded/github-openapi.json -``` - -## 2. Split into Service Specs - -Next, split the monolithic OpenAPI specification into service-specific files: - -```bash -rm -rf provider-dev/source/* -npm run split -- \ - --provider-name github \ - --api-doc provider-dev/downloaded/api.github.com.json \ - --svc-discriminator tag \ - --output-dir provider-dev/source \ - --overwrite -``` - -## 2a. Clobber Polymorhism and Fix Schema Issues - -```bash -npm run normalize -- \ - --api-dir provider-dev/source \ - --verbose -``` - -## 3. Generate Mappings - -Generate the mapping configuration that connects OpenAPI operations to StackQL resources: - -```bash -npm run generate-mappings -- \ - --input-dir provider-dev/source \ - --output-dir provider-dev/config -``` - -Update the resultant `provider-dev/config/all_services.csv` to add the `stackql_resource_name`, `stackql_method_name`, `stackql_verb` values for each operation. - -## 4. Generate Provider - -This step transforms the split OpenAPI service specs into a fully-functional StackQL provider by applying the resource and method mappings defined in your CSV file. - -```bash -rm -rf provider-dev/openapi/* -npm run generate-provider -- \ - --provider-name github \ - --input-dir provider-dev/source \ - --output-dir provider-dev/openapi/src/github \ - --config-path provider-dev/config/all_services.csv \ - --servers='[{"url":"https://api.github.com"}]' \ - --provider-config='{"auth":{"type":"basic","username_var":"STACKQL_GITHUB_USERNAME","password_var":"STACKQL_GITHUB_PASSWORD"}}' \ - --naive-req-body-translate \ - --overwrite -``` - -## 5. Test Provider - -### Starting the StackQL Server - -Before running tests, start a StackQL server with your provider: - -```bash -PROVIDER_REGISTRY_ROOT_DIR="$(pwd)/provider-dev/openapi" -npm run start-server -- --provider github --registry $PROVIDER_REGISTRY_ROOT_DIR -``` - -### Test Meta Routes - -Test all metadata routes (services, resources, methods) in the provider: - -```bash -npm run test-meta-routes -- github --verbose -``` - -When you're done testing, stop the StackQL server: - -```bash -npm run stop-server -``` - -Use this command to view the server status: - -```bash -npm run server-status -``` - -### Run test queries - -Run some test queries against the provider using the `stackql shell`: - -```bash -PROVIDER_REGISTRY_ROOT_DIR="$(pwd)/provider-dev/openapi" -REG_STR='{"url": "file://'${PROVIDER_REGISTRY_ROOT_DIR}'", "localDocRoot": "'${PROVIDER_REGISTRY_ROOT_DIR}'", "verifyConfig": {"nopVerify": true}}' -./stackql shell --registry="${REG_STR}" -``` - -Example queries to try: - -```sql --- List your repositories -SELECT -name, -private, -created_at, -language, -default_branch, -visibility, -stargazers_count as stars -FROM github.repos.repos -WHERE org = 'stackql' -ORDER BY watchers DESC; - --- List repository issues -SELECT -number, -title, -state, -created_at -FROM github.issues.issues -WHERE owner = 'stackql' -AND repo = 'stackql'; - --- List pull requests -SELECT -number, -title, -state, -created_at -FROM github.pulls.pull_requests -WHERE owner = 'stackql' -AND repo = 'stackql' -AND state = 'closed' LIMIT 5; - --- Get organization information -SELECT -login, -id, -name, -description, -email, -location, -plan -FROM github.orgs.orgs -WHERE org = 'stackql'; - --- List GitHub Actions workflow runs -SELECT -id, -name, -workflow_id, -run_number, -status, -conclusion, -created_at -FROM github.actions.workflow_runs -WHERE owner = 'stackql' -AND repo = 'stackql'; - --- Check your rate limit status -SELECT -JSON_EXTRACT(rate, '$.limit') AS rate_limit, -JSON_EXTRACT(rate, '$.remaining') AS remaining, -datetime(JSON_EXTRACT(rate, '$.reset'), 'unixepoch') AS reset_date, -JSON_EXTRACT(rate, '$.used') AS used -FROM github.rate_limit.rate_limit; -``` - -## 6. Publish the provider - -To publish the provider push the `github` dir to `providers/src` in a feature branch of the [`stackql-provider-registry`](https://github.com/stackql/stackql-provider-registry). Follow the [registry release flow](https://github.com/stackql/stackql-provider-registry/blob/dev/docs/build-and-deployment.md). - -Launch the StackQL shell: - -```bash -export DEV_REG="{ \"url\": \"https://registry-dev.stackql.app/providers\" }" -./stackql --registry="${DEV_REG}" shell -``` - -Pull the latest dev `github` provider: - -```sql -registry pull github; -``` - -Run some test queries to verify the provider works as expected. - -## 7. Generate web docs - -Provider doc microsites are built using Docusaurus and published using GitHub Pages. - -a. Update `headerContent1.txt` and `headerContent2.txt` accordingly in `provider-dev/docgen/provider-data/` - -b. Update the following in `website/docusaurus.config.js`: - -```js -// Provider configuration - change these for different providers -const providerName = "github"; -const providerTitle = "GitHub Provider"; -``` - -c. Then generate docs using... - -```bash -rm -rf website/docs/* -npm run generate-docs -- \ - --provider-name github \ - --provider-dir ./provider-dev/openapi/src/github/v00.00.00000 \ - --output-dir ./website \ - --provider-data-dir ./provider-dev/docgen/provider-data -``` - -```bash -find website/docs/services -type f -name "*.md" -exec sed -i -E 's#\]\(/(rest/|developers/|actions/|code-security/|github/)#](https://docs.github.com/\1#g' {} + -``` - -```bash -find website/docs/services -type f -name "*.md" -exec sed -i 's|(#set-github-actions-permissions-for-a-repository)|(https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository)|g; s|(#set-github-actions-permissions-for-an-organization)|(https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository)|g' {} + -``` - -```bash -find website/docs/services -type f -name "*.md" -exec sed -i 's|(#create-a-self-hosted-runner-group-for-an-organization)|(https://docs.github.com/en/actions/how-tos/manage-runners/self-hosted-runners/manage-access)|g' {} + -``` - - -## 8. Test web docs locally - -```bash -cd website -# test build -yarn build - -# run local dev server -yarn start -``` - -## 9. Publish web docs to GitHub Pages - -Under __Pages__ in the repository, in the __Build and deployment__ section select __GitHub Actions__ as the __Source__. In Netlify DNS create the following records: - -| Source Domain | Record Type | Target | -|---------------|--------------|--------| -| github-provider.stackql.io | CNAME | stackql.github.io. | - -## License - -MIT - -## Contributing - -Contributions are welcome! Please feel free to submit a Pull Request. \ No newline at end of file +# `github` provider for [`stackql`](https://github.com/stackql/stackql) + +This repository generates and documents the `github` provider for StackQL, which lets you query and manage GitHub resources with SQL. The provider is built from GitHub's published OpenAPI description using [`@stackql/provider-utils`](https://www.npmjs.com/package/@stackql/provider-utils), with a small hand-authored layer of GraphQL-backed resources for surfaces that GitHub only exposes through its GraphQL API. + +- Provider docs: [github-provider.stackql.io](https://github-provider.stackql.io) +- Upstream spec: [github/rest-api-description](https://github.com/github/rest-api-description) (`descriptions/api.github.com/api.github.com.json`) + +## Prerequisites + +- Node.js 20 or later, npm, and yarn (for the docs site) +- GNU make and a POSIX shell (Linux, macOS or WSL - the server lifecycle scripts use `pgrep`/`ps`) +- Python 3.10 or later (live smoke tests) +- A GitHub account and a personal access token (PAT), or the GitHub CLI, for live queries and smoke tests + +## Quick start + +```bash +npm install +make all # spec -> split -> normalize -> mappings -> provider -> meta-test -> docs -> docs-build +make smoke-test # live tier-1 queries against api.github.com (needs .env, see below) +``` + +`make help` lists every target. The stages are described below and can be run individually. + +## Build pipeline + +| Target | What it does | +|--------|--------------| +| `make spec` | Downloads the latest `api.github.com.json` to `provider-dev/downloaded/`. Set `SPEC_REFRESH=0` to build from the cached copy. | +| `make split` | Splits the monolithic spec into per-service yamls under `provider-dev/source/`, discriminated by tag (`actions`, `repos`, `issues`, ...). | +| `make normalize` | Runs the provider-utils normalizer (allOf flattening, oneOf/anyOf lowering, misplaced keyword removal) and then `provider-dev/scripts/post_normalize.mjs`, which reverts the bare-array envelope the normalizer wraps around GitHub's ~260 array-returning list endpoints. GitHub's `tag/op-id` operationIds produce invalid wrapper names and JSONPaths under that pass, and stackql iterates bare arrays natively, so the envelope is removed. | +| `make mappings` | Regenerates `provider-dev/config/all_services.csv`. `analyze` preserves existing rows; `provider-dev/scripts/map_new_operations.mjs` then fills in operations added upstream from its mapping table, prunes operations GitHub has retired, and resyncs rows whose paths moved. The target fails if any operation is still unmapped - add it to the script's table and re-run. | +| `make provider` | Generates the provider under `provider-dev/openapi/src/github/v00.00.00000/` from the CSV, injecting `servers.json`, `provider_config.json` (basic auth) and `service_config.json` (pagination) from `provider-dev/config/`, then runs `provider-dev/scripts/graphql_merge.mjs` to add the GraphQL-backed resources. | +| `make build` | `split` + `normalize` + `mappings` + `provider`. | +| `make meta-test` | Starts a local `stackql srv` against the generated provider, walks every `SHOW SERVICES` / `SHOW RESOURCES` / `SHOW METHODS` / `DESCRIBE EXTENDED` route and stops the server. No credentials needed; a non-zero exit stops `make all`. | +| `make docs` | Generates the Docusaurus markdown into `website/docs/` from the provider plus `provider-dev/docgen/provider-data/headerContent{1,2}.txt`, then rewrites upstream-relative links to `docs.github.com` (`bin/fix-doc-links.sh`). | +| `make docs-build` / `make docs-serve` | `yarn build` / `yarn start` in `website/`. | +| `make smoke-test` | Live tier-1 queries (see [Testing](#testing)). `MODE=exec` (default), `pgwire` or `both`. | +| `make clean` | Removes the generated provider, split source, website build and the downloaded test binary. | + +Manual decisions live in scripts, not in hand edits of generated files, so a refresh is a reviewed diff: rerun `make build`, review the changes to `all_services.csv` and `provider-dev/openapi/`, and add mappings for anything `make mappings` reports as unmapped. + +## Authentication + +The provider uses HTTP basic authentication with a username and a PAT as the password: + +```bash +export STACKQL_GITHUB_USERNAME= +export STACKQL_GITHUB_PASSWORD= +``` + +A `bearer` token also works, which lets you reuse a GitHub CLI login or the `GITHUB_TOKEN` of an Actions workflow: + +```bash +export STACKQL_GITHUB_TOKEN=$(gh auth token) +stackql shell --auth='{"github":{"type":"bearer","credentialsenvvar":"STACKQL_GITHUB_TOKEN"}}' +``` + +The same credentials are used for the GraphQL-backed resources. Fine-grained PATs need the relevant repository or account permissions. Note that since July 2026 GitHub limits stargazer listings (`activity.repo_stargazers`, `activity.star_history`) to repository admins and collaborators. + +## Pagination and pushdown + +- **Pagination** is declared explicitly on every service via `x-stackQL-config.pagination` (from `provider-dev/config/service_config.json`): the response token is the `Link` header's `rel="next"` URL and the request token replaces the whole request URL, so multi-page listings are traversed automatically up to stackql's `--http.response.pageLimit` (default 20 pages). Previously this relied on provider-name special-casing inside stackql; the declared form behaves identically and does not depend on it. +- **Predicate pushdown** works through operation parameters: any `WHERE` column that matches a declared path or query parameter (`owner`, `repo`, `state`, `per_page`, `sort`, `since`, ...) is sent to the API rather than filtered locally. Columns that are not parameters are filtered by the SQL engine after the rows are fetched. +- `LIMIT` is deliberately not pushed to `per_page`: the page loop does not stop early once the limit is satisfied, so a smaller page size would only multiply requests. Use `per_page` in the `WHERE` clause to control page size explicitly. +- GraphQL resources page with Relay cursors (`pageInfo.endCursor` / `hasNextPage`) using the any-sdk `page_info` cursor strategy, 100 rows per request. + +## GraphQL-backed resources + +GitHub exposes some data only through its GraphQL API. Those surfaces are authored as small op specs under `provider-dev/source-graphql/ops/` (query template, parameters, row schema, cursor) and merged into the generated provider by `graphql_merge.mjs`, which is idempotent and only touches the services named in `provider-dev/source-graphql/manifest.yaml`: + +| Resource | Backed by | +|----------|-----------| +| `github.discussions.discussions` | `repository.discussions` | +| `github.discussions.discussion_categories` | `repository.discussionCategories` | +| `github.discussions.discussion_comments` | `repository.discussion.comments` | +| `github.activity.star_history` | `repository.stargazers` ordered by `STARRED_AT` (each star with its timestamp) | +| `github.users.contribution_calendar` | `user.contributionsCollection.contributionCalendar` | +| `github.pulls.review_threads` | `pullRequest.reviewThreads` (resolved / outdated state) | +| `github.orgs.saml_identities` | `organization.samlIdentityProvider.externalIdentities` | +| `github.users.sponsorships`, `github.orgs.sponsorships` | `sponsorshipsAsMaintainer` | + +They are queried like any other resource; nested GraphQL objects come back as JSON columns (`json_extract(author, '$.login')`). Each op gets a synthetic path key of `/graphql?resource=`: stackql routes on `servers` + path key, and the GraphQL reader strips the query string before the request goes out, so GitHub receives a plain `POST /graphql`. To add a resource, copy an existing op spec, list it in the manifest and run `make provider`. + +## Testing + +### Meta-route gate (no credentials) + +```bash +make meta-test +``` + +### Live smoke tests + +`provider-dev/test/` holds a pytest suite driven by `tier1.yaml` - read-only queries that any user would expect to work against a freshly built provider, including multi-page traversal, the resources added in the latest spec refresh and the GraphQL-backed resources. The same suite runs through `stackql exec` and through a `stackql srv` Postgres-wire session. + +```bash +cat > .env <<'EOF' +export STACKQL_GITHUB_USERNAME= +export STACKQL_GITHUB_PASSWORD= +EOF + +make smoke-test # exec mode +make smoke-test MODE=both # exec + pgwire +``` + +The target downloads a Linux `stackql` into `provider-dev/test/.bin/` and creates a venv on first run. Target org, repo and user are overridable with `TEST_ORG`, `TEST_REPO`, `TEST_USER`, `TEST_CALENDAR_USER` and `TEST_PULL_NUMBER` (defaults in `provider-dev/test/provider.yaml`). See `provider-dev/test/README.md` for the YAML shape and how to add cases. + +### Ad hoc queries + +```bash +PROVIDER_REGISTRY_ROOT_DIR="$(pwd)/provider-dev/openapi" +REG_STR='{"url": "file://'${PROVIDER_REGISTRY_ROOT_DIR}'", "localDocRoot": "'${PROVIDER_REGISTRY_ROOT_DIR}'", "verifyConfig": {"nopVerify": true}}' +stackql shell --registry="${REG_STR}" +``` + +```sql +SELECT name, visibility, language, stargazers_count +FROM github.repos.repos +WHERE org = 'stackql'; + +SELECT number, title, json_extract(category, '$.name') AS category +FROM github.discussions.discussions +WHERE owner = 'stackql' AND repo = 'stackql'; +``` + +More examples, including window functions over contributors, releases and commit activity, are in the [provider docs](https://github-provider.stackql.io) (source: `provider-dev/docgen/provider-data/headerContent2.txt`). + +## Publishing the provider + +Push the `provider-dev/openapi/src/github` directory to `providers/src` in a feature branch of [`stackql-provider-registry`](https://github.com/stackql/stackql-provider-registry) and follow the [registry release flow](https://github.com/stackql/stackql-provider-registry/blob/dev/docs/build-and-deployment.md). To verify the dev registry build: + +```bash +export DEV_REG="{ \"url\": \"https://registry-dev.stackql.app/providers\" }" +stackql --registry="${DEV_REG}" shell +``` + +```sql +registry pull github; +``` + +## Publishing the docs + +`make docs` regenerates `website/docs/`; commit the regenerated tree. Doc pages show a "Last updated" date taken from git history (`showLastUpdateTime` in `website/docusaurus.config.js`), so pages carry the date of the commit that last regenerated them. Pushes to `main` that touch `website/**` deploy to GitHub Pages via `.github/workflows/prod-web-deploy.yml`; the custom domain is `github-provider.stackql.io` (CNAME to `stackql.github.io`). + +## Repository layout + +``` +Makefile build / test / docs targets +bin/ server lifecycle, meta-route test, doc link fixer +provider-dev/ + downloaded/ upstream OpenAPI description (make spec) + source/ split + normalized per-service specs (generated) + config/ all_services.csv mappings, servers / auth / pagination json + scripts/ post_normalize.mjs, map_new_operations.mjs, graphql_merge.mjs + source-graphql/ manifest + op specs for GraphQL-backed resources + openapi/src/github/ generated provider (publish this) + docgen/provider-data/ headerContent1.txt / headerContent2.txt for the docs index page + test/ pytest tier-1 smoke tests +website/ Docusaurus microsite +``` + +## License + +MIT + +## Contributing + +Contributions are welcome. Please open a pull request. diff --git a/bin/fix-doc-links.sh b/bin/fix-doc-links.sh new file mode 100644 index 0000000..b8196ea --- /dev/null +++ b/bin/fix-doc-links.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +# Rewrites upstream-relative links in the generated docs so they resolve to +# docs.github.com instead of the provider microsite. GitHub's OpenAPI +# descriptions link to paths like /rest/... and /actions/... which are +# relative to docs.github.com; a few anchors point at headings that only +# exist in the REST docs. +# +# Usage: bin/fix-doc-links.sh [website/docs/services] +set -euo pipefail + +DOCS_DIR="${1:-website/docs/services}" +if [[ ! -d "$DOCS_DIR" ]]; then + echo "docs dir not found: $DOCS_DIR" >&2 + exit 1 +fi + +find "$DOCS_DIR" -type f -name "*.md" -exec sed -i -E \ + 's#\]\(/(rest/|developers/|actions/|code-security/|github/|graphql/)#](https://docs.github.com/\1#g' {} + + +find "$DOCS_DIR" -type f -name "*.md" -exec sed -i \ + -e 's|(#set-github-actions-permissions-for-a-repository)|(https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository)|g' \ + -e 's|(#set-github-actions-permissions-for-an-organization)|(https://docs.github.com/en/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization)|g' \ + -e 's|(#create-a-self-hosted-runner-group-for-an-organization)|(https://docs.github.com/en/actions/how-tos/manage-runners/self-hosted-runners/manage-access)|g' \ + {} + + +echo "fixed doc links under $DOCS_DIR" diff --git a/package-lock.json b/package-lock.json index 4412fdd..e8f9547 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,531 +1,532 @@ -{ - "name": "stackql-provider-github", - "version": "0.1.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "stackql-provider-github", - "version": "0.1.0", - "dependencies": { - "@stackql/pgwire-lite": "^1.0.1", - "@stackql/provider-utils": "^0.6.4" - }, - "engines": { - "node": ">=14.16.0" - } - }, - "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "11.7.2", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.2.tgz", - "integrity": "sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==", - "license": "MIT", - "dependencies": { - "@jsdevtools/ono": "^7.1.3", - "@types/json-schema": "^7.0.15", - "js-yaml": "^4.1.0" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/philsturgeon" - } - }, - "node_modules/@apidevtools/openapi-schemas": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", - "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/@apidevtools/swagger-methods": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", - "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", - "license": "MIT" - }, - "node_modules/@apidevtools/swagger-parser": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.1.1.tgz", - "integrity": "sha512-u/kozRnsPO/x8QtKYJOqoGtC4kH6yg1lfYkB9Au0WhYB0FNLpyFusttQtvhlwjtG3rOwiRz4D8DnnXa8iEpIKA==", - "license": "MIT", - "dependencies": { - "@apidevtools/json-schema-ref-parser": "11.7.2", - "@apidevtools/openapi-schemas": "^2.1.0", - "@apidevtools/swagger-methods": "^3.0.2", - "@jsdevtools/ono": "^7.1.3", - "ajv": "^8.17.1", - "ajv-draft-04": "^1.0.0", - "call-me-maybe": "^1.0.2" - }, - "peerDependencies": { - "openapi-types": ">=7" - } - }, - "node_modules/@colors/colors": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", - "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", - "license": "MIT", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@dabh/diagnostics": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", - "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", - "license": "MIT", - "dependencies": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, - "node_modules/@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "license": "MIT" - }, - "node_modules/@stackql/deno-openapi-dereferencer": { - "name": "@jsr/stackql__deno-openapi-dereferencer", - "version": "0.3.1", - "resolved": "https://npm.jsr.io/~/11/@jsr/stackql__deno-openapi-dereferencer/0.3.1.tgz", - "integrity": "sha512-7Ucdom3SYxvzp7VwzulQMe66E+1LeCZIprFQ70PwRPIUfL90bYNQDrLfe5L1WaB+X7StWdHmoFSFxoa9RDlN7w==", - "dependencies": { - "jsonpath-plus": "7.0.0" - } - }, - "node_modules/@stackql/pgwire-lite": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@stackql/pgwire-lite/-/pgwire-lite-1.0.1.tgz", - "integrity": "sha512-jgA6ogzlXySZ1xiJzBxuvgRNu9V38Gs3qUZ4AjinlT7hj+8RH3UhYaDvyBd33QWiK3tVNkglYcnXPQ7q0+rmNA==", - "license": "MIT", - "dependencies": { - "winston": "^3.14.2" - } - }, - "node_modules/@stackql/provider-utils": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/@stackql/provider-utils/-/provider-utils-0.6.4.tgz", - "integrity": "sha512-Zb1AeebCGsMOYi+Vo2FbN2JLLyBZC4hpruOGX6xfzlVdpyDhhcoEBzqhsJbAkm3ahMexCtvKtiQrC0CSMkNUng==", - "license": "MIT", - "dependencies": { - "@apidevtools/swagger-parser": "^10.1.1", - "@stackql/deno-openapi-dereferencer": "npm:@jsr/stackql__deno-openapi-dereferencer@^0.3.1", - "csv-parser": "^3.2.0", - "js-yaml": "^4.1.0", - "pluralize": "^8.0.0" - }, - "bin": { - "docgen-utils": "bin/docgen-utils.mjs", - "provider-dev-utils": "bin/provider-dev-utils.mjs" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "license": "MIT" - }, - "node_modules/@types/triple-beam": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", - "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", - "license": "MIT" - }, - "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-draft-04": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", - "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", - "license": "MIT", - "peerDependencies": { - "ajv": "^8.5.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "license": "MIT" - }, - "node_modules/call-me-maybe": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", - "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", - "license": "MIT" - }, - "node_modules/color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "license": "MIT", - "dependencies": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "license": "MIT", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/colorspace": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", - "license": "MIT", - "dependencies": { - "color": "^3.1.3", - "text-hex": "1.0.x" - } - }, - "node_modules/csv-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/csv-parser/-/csv-parser-3.2.0.tgz", - "integrity": "sha512-fgKbp+AJbn1h2dcAHKIdKNSSjfp43BZZykXsCjzALjKy80VXQNHPFJ6T9Afwdzoj24aMkq8GwDS7KGcDPpejrA==", - "license": "MIT", - "bin": { - "csv-parser": "bin/csv-parser" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", - "license": "MIT" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "license": "MIT" - }, - "node_modules/fast-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, - "node_modules/fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", - "license": "MIT" - }, - "node_modules/fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", - "license": "MIT" - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/is-arrayish": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", - "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", - "license": "MIT" - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, - "node_modules/jsonpath-plus": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-7.0.0.tgz", - "integrity": "sha512-MH4UnrWrU1hJGVEyEyjvYgONkzNTO6Yol0nq18EMnUQ/ZC5cTuJheirXXIwu1b9mZ6t3XL0P79gPsu+zlTnDIQ==", - "license": "MIT", - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", - "license": "MIT" - }, - "node_modules/logform": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", - "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==", - "license": "MIT", - "dependencies": { - "@colors/colors": "1.6.0", - "@types/triple-beam": "^1.3.2", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/one-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", - "license": "MIT", - "dependencies": { - "fn.name": "1.x.x" - } - }, - "node_modules/openapi-types": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", - "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", - "license": "MIT", - "peer": true - }, - "node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safe-stable-stringify": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", - "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/simple-swizzle": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", - "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/text-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", - "license": "MIT" - }, - "node_modules/triple-beam": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", - "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", - "license": "MIT", - "engines": { - "node": ">= 14.0.0" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" - }, - "node_modules/winston": { - "version": "3.17.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz", - "integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==", - "license": "MIT", - "dependencies": { - "@colors/colors": "^1.6.0", - "@dabh/diagnostics": "^2.0.2", - "async": "^3.2.3", - "is-stream": "^2.0.0", - "logform": "^2.7.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "safe-stable-stringify": "^2.3.1", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.9.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/winston-transport": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz", - "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==", - "license": "MIT", - "dependencies": { - "logform": "^2.7.0", - "readable-stream": "^3.6.2", - "triple-beam": "^1.3.0" - }, - "engines": { - "node": ">= 12.0.0" - } - } - } -} +{ + "name": "stackql-provider-github", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "stackql-provider-github", + "version": "0.1.0", + "dependencies": { + "@stackql/pgwire-lite": "^1.0.2", + "@stackql/provider-utils": "0.7.7", + "js-yaml": "^4.1.0" + }, + "engines": { + "node": ">=20" + } + }, + "node_modules/@apidevtools/json-schema-ref-parser": { + "version": "11.7.2", + "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.7.2.tgz", + "integrity": "sha512-4gY54eEGEstClvEkGnwVkTkrx0sqwemEFG5OSRRn3tD91XH0+Q8XIkYIfo7IwEWPpJZwILb9GUXeShtplRc/eA==", + "license": "MIT", + "dependencies": { + "@jsdevtools/ono": "^7.1.3", + "@types/json-schema": "^7.0.15", + "js-yaml": "^4.1.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/philsturgeon" + } + }, + "node_modules/@apidevtools/openapi-schemas": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@apidevtools/openapi-schemas/-/openapi-schemas-2.1.0.tgz", + "integrity": "sha512-Zc1AlqrJlX3SlpupFGpiLi2EbteyP7fXmUOGup6/DnkRgjP9bgMM/ag+n91rsv0U1Gpz0H3VILA/o3bW7Ua6BQ==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/@apidevtools/swagger-methods": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-methods/-/swagger-methods-3.0.2.tgz", + "integrity": "sha512-QAkD5kK2b1WfjDS/UQn/qQkbwF31uqRjPTrsCs5ZG9BQGAkjwvqGFjjPqAuzac/IYzpPtRzjCP1WrTuAIjMrXg==", + "license": "MIT" + }, + "node_modules/@apidevtools/swagger-parser": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/@apidevtools/swagger-parser/-/swagger-parser-10.1.1.tgz", + "integrity": "sha512-u/kozRnsPO/x8QtKYJOqoGtC4kH6yg1lfYkB9Au0WhYB0FNLpyFusttQtvhlwjtG3rOwiRz4D8DnnXa8iEpIKA==", + "license": "MIT", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "11.7.2", + "@apidevtools/openapi-schemas": "^2.1.0", + "@apidevtools/swagger-methods": "^3.0.2", + "@jsdevtools/ono": "^7.1.3", + "ajv": "^8.17.1", + "ajv-draft-04": "^1.0.0", + "call-me-maybe": "^1.0.2" + }, + "peerDependencies": { + "openapi-types": ">=7" + } + }, + "node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "license": "MIT", + "dependencies": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", + "license": "MIT" + }, + "node_modules/@stackql/deno-openapi-dereferencer": { + "name": "@jsr/stackql__deno-openapi-dereferencer", + "version": "0.3.1", + "resolved": "https://npm.jsr.io/~/11/@jsr/stackql__deno-openapi-dereferencer/0.3.1.tgz", + "integrity": "sha512-7Ucdom3SYxvzp7VwzulQMe66E+1LeCZIprFQ70PwRPIUfL90bYNQDrLfe5L1WaB+X7StWdHmoFSFxoa9RDlN7w==", + "dependencies": { + "jsonpath-plus": "7.0.0" + } + }, + "node_modules/@stackql/pgwire-lite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@stackql/pgwire-lite/-/pgwire-lite-1.0.2.tgz", + "integrity": "sha512-uHZA0yzVyow8TtWYyGPFI7/If8Ci/5EjjKdoaZ4YEk1XcSoCKaGQmH9KCUlR/R1FvQk4Ic3DV9It8XhePsoTqQ==", + "license": "MIT", + "dependencies": { + "winston": "^3.14.2" + } + }, + "node_modules/@stackql/provider-utils": { + "version": "0.7.7", + "resolved": "https://registry.npmjs.org/@stackql/provider-utils/-/provider-utils-0.7.7.tgz", + "integrity": "sha512-wPjnsk8UWeXD0YhhZ/OJJ1uFyZ0a/ZgTKuUYrmMV9hTJ1/QZ+hpRW2Btni7MPVpnodKHex5UFjpnP4OX9czDHw==", + "license": "MIT", + "dependencies": { + "@apidevtools/swagger-parser": "^10.1.1", + "@stackql/deno-openapi-dereferencer": "npm:@jsr/stackql__deno-openapi-dereferencer@^0.3.1", + "csv-parser": "^3.2.0", + "js-yaml": "^4.1.0", + "pluralize": "^8.0.0" + }, + "bin": { + "docgen-utils": "bin/docgen-utils.mjs", + "provider-dev-utils": "bin/provider-dev-utils.mjs" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@types/triple-beam": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", + "license": "MIT" + }, + "node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "license": "MIT", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/call-me-maybe": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz", + "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==", + "license": "MIT" + }, + "node_modules/color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorspace": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "license": "MIT", + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, + "node_modules/csv-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/csv-parser/-/csv-parser-3.2.0.tgz", + "integrity": "sha512-fgKbp+AJbn1h2dcAHKIdKNSSjfp43BZZykXsCjzALjKy80VXQNHPFJ6T9Afwdzoj24aMkq8GwDS7KGcDPpejrA==", + "license": "MIT", + "bin": { + "csv-parser": "bin/csv-parser" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "license": "MIT" + }, + "node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", + "license": "MIT" + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/is-arrayish": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", + "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", + "license": "MIT" + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/jsonpath-plus": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-7.0.0.tgz", + "integrity": "sha512-MH4UnrWrU1hJGVEyEyjvYgONkzNTO6Yol0nq18EMnUQ/ZC5cTuJheirXXIwu1b9mZ6t3XL0P79gPsu+zlTnDIQ==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", + "license": "MIT" + }, + "node_modules/logform": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.7.0.tgz", + "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==", + "license": "MIT", + "dependencies": { + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "license": "MIT", + "dependencies": { + "fn.name": "1.x.x" + } + }, + "node_modules/openapi-types": { + "version": "12.1.3", + "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-12.1.3.tgz", + "integrity": "sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==", + "license": "MIT", + "peer": true + }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", + "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", + "license": "MIT" + }, + "node_modules/triple-beam": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "license": "MIT", + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/winston": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.17.0.tgz", + "integrity": "sha512-DLiFIXYC5fMPxaRg832S6F5mJYvePtmO5G9v9IgUFPhXm9/GkXarH/TUrBAVzhTCzAj9anE/+GjrgXp/54nOgw==", + "license": "MIT", + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.7.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.9.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.9.0.tgz", + "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==", + "license": "MIT", + "dependencies": { + "logform": "^2.7.0", + "readable-stream": "^3.6.2", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + } + } +} diff --git a/package.json b/package.json index 714e85e..cfe8c09 100644 --- a/package.json +++ b/package.json @@ -1,29 +1,34 @@ -{ - "name": "stackql-provider-github", - "version": "0.1.0", - "description": "StackQL Provider for GitHub", - "type": "module", - "scripts": { - "generate-docs": "node node_modules/@stackql/provider-utils/bin/docgen-utils.mjs generate-docs", - "split": "node node_modules/@stackql/provider-utils/bin/provider-dev-utils.mjs split", - "normalize": "node node_modules/@stackql/provider-utils/bin/provider-dev-utils.mjs normalize", - "generate-mappings": "node node_modules/@stackql/provider-utils/bin/provider-dev-utils.mjs analyze", - "generate-provider": "node node_modules/@stackql/provider-utils/bin/provider-dev-utils.mjs generate", - "start-server": "bash ./bin/start-server.sh", - "stop-server": "bash ./bin/stop-server.sh", - "server-status": "bash ./bin/server-status.sh", - "test-meta-routes": "node ./bin/test-meta-routes.cjs" - }, - "dependencies": { - "@stackql/pgwire-lite": "^1.0.1", - "@stackql/provider-utils": "^0.6.4" - }, - "keywords": [ - "stackql", - "github", - "provider" - ], - "engines": { - "node": ">=14.16.0" - } -} \ No newline at end of file +{ + "name": "stackql-provider-github", + "version": "0.1.0", + "description": "StackQL Provider for GitHub", + "type": "module", + "scripts": { + "generate-docs": "node node_modules/@stackql/provider-utils/bin/docgen-utils.mjs generate-docs", + "split": "node node_modules/@stackql/provider-utils/bin/provider-dev-utils.mjs split", + "normalize": "node node_modules/@stackql/provider-utils/bin/provider-dev-utils.mjs normalize", + "post-normalize": "node provider-dev/scripts/post_normalize.mjs", + "generate-mappings": "node node_modules/@stackql/provider-utils/bin/provider-dev-utils.mjs analyze", + "map-operations": "node provider-dev/scripts/map_new_operations.mjs", + "generate-provider": "node node_modules/@stackql/provider-utils/bin/provider-dev-utils.mjs generate", + "graphql-merge": "node provider-dev/scripts/graphql_merge.mjs", + "fix-doc-links": "bash ./bin/fix-doc-links.sh", + "start-server": "bash ./bin/start-server.sh", + "stop-server": "bash ./bin/stop-server.sh", + "server-status": "bash ./bin/server-status.sh", + "test-meta-routes": "node ./bin/test-meta-routes.cjs" + }, + "dependencies": { + "@stackql/pgwire-lite": "^1.0.2", + "@stackql/provider-utils": "0.7.7", + "js-yaml": "^4.1.0" + }, + "keywords": [ + "stackql", + "github", + "provider" + ], + "engines": { + "node": ">=20" + } +} diff --git a/provider-dev/config/all_services.csv b/provider-dev/config/all_services.csv index 42c45eb..c021d9c 100644 --- a/provider-dev/config/all_services.csv +++ b/provider-dev/config/all_services.csv @@ -1,1113 +1,1221 @@ -filename,path,operationId,formatted_op_id,verb,response_object,tags,formatted_tags,stackql_resource_name,stackql_method_name,stackql_verb,stackql_object_key,op_description -actions.yaml,/orgs/{org}/actions/runners/{runner_id}/labels,actions/add-custom-labels-to-self-hosted-runner-for-org,actions/add_custom_labels_to_self_hosted_runner_for_org,post,,actions,actions,runner_labels,add_custom_labels_to_self_hosted_runner_for_org,insert,,Add custom labels to a self-hosted runner for an organization -actions.yaml,/repos/{owner}/{repo}/actions/runners/{runner_id}/labels,actions/add-custom-labels-to-self-hosted-runner-for-repo,actions/add_custom_labels_to_self_hosted_runner_for_repo,post,,actions,actions,runner_labels,add_custom_labels_to_self_hosted_runner_for_repo,insert,,Add custom labels to a self-hosted runner for a repository -actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id},actions/add-repo-access-to-self-hosted-runner-group-in-org,actions/add_repo_access_to_self_hosted_runner_group_in_org,put,,actions,actions,org_runner_group_repos,add_repo_access_to_self_hosted_runner_group_in_org,replace,,Add repository access to a self-hosted runner group in an organization -actions.yaml,/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id},actions/add-selected-repo-to-org-secret,actions/add_selected_repo_to_org_secret,put,,actions,actions,repos_for_secret,add_selected_repo_to_org_secret,insert,,Add selected repository to an organization secret -actions.yaml,/orgs/{org}/actions/variables/{name}/repositories/{repository_id},actions/add-selected-repo-to-org-variable,actions/add_selected_repo_to_org_variable,put,,actions,actions,repos_for_org_variable,add_selected_repo_to_org_variable,insert,,Add selected repository to an organization variable -actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id},actions/add-self-hosted-runner-to-group-for-org,actions/add_self_hosted_runner_to_group_for_org,put,,actions,actions,org_runner_group_runners,add_self_hosted_runner_to_group_for_org,replace,,Add a self-hosted runner to a group for an organization -actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/approve,actions/approve-workflow-run,actions/approve_workflow_run,post,empty-object,actions,actions,workflow_runs,approve_workflow_run,exec,,Approve a workflow run for a fork pull request -actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/cancel,actions/cancel-workflow-run,actions/cancel_workflow_run,post,empty-object,actions,actions,workflow_runs,cancel_workflow_run,exec,,Cancel a workflow run -actions.yaml,/repos/{owner}/{repo}/environments/{environment_name}/variables,actions/create-environment-variable,actions/create_environment_variable,post,empty-object,actions,actions,variables,create_environment_variable,insert,,Create an environment variable -actions.yaml,/orgs/{org}/actions/hosted-runners,actions/create-hosted-runner-for-org,actions/create_hosted_runner_for_org,post,,actions,actions,org_hosted_runners,create_hosted_runner_for_org,insert,,Create a GitHub-hosted runner for an organization -actions.yaml,/repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name},actions/create-or-update-environment-secret,actions/create_or_update_environment_secret,put,empty-object,actions,actions,secrets,create_or_update_environment_secret,insert,,Create or update an environment secret -actions.yaml,/orgs/{org}/actions/secrets/{secret_name},actions/create-or-update-org-secret,actions/create_or_update_org_secret,put,empty-object,actions,actions,secrets,create_or_update_org_secret,insert,,Create or update an organization secret -actions.yaml,/repos/{owner}/{repo}/actions/secrets/{secret_name},actions/create-or-update-repo-secret,actions/create_or_update_repo_secret,put,empty-object,actions,actions,secrets,create_or_update_repo_secret,insert,,Create or update a repository secret -actions.yaml,/orgs/{org}/actions/variables,actions/create-org-variable,actions/create_org_variable,post,empty-object,actions,actions,variables,create_org_variable,insert,,Create an organization variable -actions.yaml,/orgs/{org}/actions/runners/registration-token,actions/create-registration-token-for-org,actions/create_registration_token_for_org,post,authentication-token,actions,actions,runner_registration_tokens,create_registration_token_for_org,insert,,Create a registration token for an organization -actions.yaml,/repos/{owner}/{repo}/actions/runners/registration-token,actions/create-registration-token-for-repo,actions/create_registration_token_for_repo,post,authentication-token,actions,actions,runner_registration_tokens,create_registration_token_for_repo,insert,,Create a registration token for a repository -actions.yaml,/orgs/{org}/actions/runners/remove-token,actions/create-remove-token-for-org,actions/create_remove_token_for_org,post,authentication-token,actions,actions,runner_remove_tokens,create_remove_token_for_org,insert,,Create a remove token for an organization -actions.yaml,/repos/{owner}/{repo}/actions/runners/remove-token,actions/create-remove-token-for-repo,actions/create_remove_token_for_repo,post,authentication-token,actions,actions,runner_remove_tokens,create_remove_token_for_repo,insert,,Create a remove token for a repository -actions.yaml,/repos/{owner}/{repo}/actions/variables,actions/create-repo-variable,actions/create_repo_variable,post,empty-object,actions,actions,variables,create_repo_variable,insert,,Create a repository variable -actions.yaml,/orgs/{org}/actions/runner-groups,actions/create-self-hosted-runner-group-for-org,actions/create_self_hosted_runner_group_for_org,post,,actions,actions,org_runner_groups,create_self_hosted_runner_group_for_org,insert,,Create a self-hosted runner group for an organization -actions.yaml,/repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches,actions/create-workflow-dispatch,actions/create_workflow_dispatch,post,,actions,actions,workflows,create_workflow_dispatch,insert,,Create a workflow dispatch event -actions.yaml,/repos/{owner}/{repo}/actions/caches/{cache_id},actions/delete-actions-cache-by-id,actions/delete_actions_cache_by_id,delete,,actions,actions,cache,delete_actions_cache_by_id,delete,,Delete a GitHub Actions cache for a repository (using a cache ID) -actions.yaml,/repos/{owner}/{repo}/actions/caches,actions/delete-actions-cache-by-key,actions/delete_actions_cache_by_key,delete,actions-cache-list,actions,actions,cache,delete_actions_cache_by_key,delete,,Delete GitHub Actions caches for a repository (using a cache key) -actions.yaml,/repos/{owner}/{repo}/actions/artifacts/{artifact_id},actions/delete-artifact,actions/delete_artifact,delete,,actions,actions,artifacts,delete_artifact,delete,,Delete an artifact -actions.yaml,/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id},actions/delete-custom-image-from-org,actions/delete_custom_image_from_org,delete,,actions,actions,org_hosted_runner_custom_images,delete_custom_image_from_org,delete,,Delete a custom image from the organization -actions.yaml,/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version},actions/delete-custom-image-version-from-org,actions/delete_custom_image_version_from_org,delete,,actions,actions,org_hosted_runner_custom_image_versions,delete_custom_image_version_from_org,delete,,Delete an image version of custom image from the organization -actions.yaml,/repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name},actions/delete-environment-secret,actions/delete_environment_secret,delete,,actions,actions,secrets,delete_environment_secret,delete,,Delete an environment secret -actions.yaml,/repos/{owner}/{repo}/environments/{environment_name}/variables/{name},actions/delete-environment-variable,actions/delete_environment_variable,delete,,actions,actions,variables,delete_environment_variable,delete,,Delete an environment variable -actions.yaml,/orgs/{org}/actions/hosted-runners/{hosted_runner_id},actions/delete-hosted-runner-for-org,actions/delete_hosted_runner_for_org,delete,,actions,actions,org_hosted_runners,delete_hosted_runner_for_org,delete,,Delete a GitHub-hosted runner for an organization -actions.yaml,/orgs/{org}/actions/secrets/{secret_name},actions/delete-org-secret,actions/delete_org_secret,delete,,actions,actions,secrets,delete_org_secret,delete,,Delete an organization secret -actions.yaml,/orgs/{org}/actions/variables/{name},actions/delete-org-variable,actions/delete_org_variable,delete,,actions,actions,variables,delete_org_variable,delete,,Delete an organization variable -actions.yaml,/repos/{owner}/{repo}/actions/secrets/{secret_name},actions/delete-repo-secret,actions/delete_repo_secret,delete,,actions,actions,secrets,delete_repo_secret,delete,,Delete a repository secret -actions.yaml,/repos/{owner}/{repo}/actions/variables/{name},actions/delete-repo-variable,actions/delete_repo_variable,delete,,actions,actions,variables,delete_repo_variable,delete,,Delete a repository variable -actions.yaml,/orgs/{org}/actions/runners/{runner_id},actions/delete-self-hosted-runner-from-org,actions/delete_self_hosted_runner_from_org,delete,,actions,actions,self_hosted_runners,delete_self_hosted_runner_from_org,delete,,Delete a self-hosted runner from an organization -actions.yaml,/repos/{owner}/{repo}/actions/runners/{runner_id},actions/delete-self-hosted-runner-from-repo,actions/delete_self_hosted_runner_from_repo,delete,,actions,actions,self_hosted_runners,delete_self_hosted_runner_from_repo,delete,,Delete a self-hosted runner from a repository -actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id},actions/delete-self-hosted-runner-group-from-org,actions/delete_self_hosted_runner_group_from_org,delete,,actions,actions,org_runner_groups,delete_self_hosted_runner_group_from_org,delete,,Delete a self-hosted runner group from an organization -actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id},actions/delete-workflow-run,actions/delete_workflow_run,delete,,actions,actions,workflow_runs,delete_workflow_run,delete,,Delete a workflow run -actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/logs,actions/delete-workflow-run-logs,actions/delete_workflow_run_logs,delete,,actions,actions,workflow_run_logs,delete_workflow_run_logs,delete,,Delete workflow run logs -actions.yaml,/orgs/{org}/actions/permissions/repositories/{repository_id},actions/disable-selected-repository-github-actions-organization,actions/disable_selected_repository_github_actions_organization,delete,,actions,actions,enabled_repos,disable_selected_repository_github_actions_organization,delete,,Disable a selected repository for GitHub Actions in an organization -actions.yaml,/orgs/{org}/actions/permissions/self-hosted-runners/repositories/{repository_id},actions/disable-selected-repository-self-hosted-runners-organization,actions/disable_selected_repository_self_hosted_runners_organization,delete,,actions,actions,org_self_hosted_runner_repo_access,disable_selected_repository_self_hosted_runners_organization,delete,,Remove a repository from the list of repositories allowed to use self-hosted runners in an organization -actions.yaml,/repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable,actions/disable-workflow,actions/disable_workflow,put,,actions,actions,workflows,disable_workflow,exec,,Disable a workflow -actions.yaml,/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format},actions/download-artifact,actions/download_artifact,get,,actions,actions,skip_this_resource,download_artifact,exec,,Download an artifact -actions.yaml,/repos/{owner}/{repo}/actions/jobs/{job_id}/logs,actions/download-job-logs-for-workflow-run,actions/download_job_logs_for_workflow_run,get,,actions,actions,skip_this_resource,download_job_logs_for_workflow_run,exec,,Download job logs for a workflow run -actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs,actions/download-workflow-run-attempt-logs,actions/download_workflow_run_attempt_logs,get,,actions,actions,skip_this_resource,download_workflow_run_attempt_logs,exec,,Download workflow run attempt logs -actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/logs,actions/download-workflow-run-logs,actions/download_workflow_run_logs,get,,actions,actions,skip_this_resource,download_workflow_run_logs,exec,,Download workflow run logs -actions.yaml,/orgs/{org}/actions/permissions/repositories/{repository_id},actions/enable-selected-repository-github-actions-organization,actions/enable_selected_repository_github_actions_organization,put,,actions,actions,enabled_repos,enable_selected_repository_github_actions_organization,replace,,Enable a selected repository for GitHub Actions in an organization -actions.yaml,/orgs/{org}/actions/permissions/self-hosted-runners/repositories/{repository_id},actions/enable-selected-repository-self-hosted-runners-organization,actions/enable_selected_repository_self_hosted_runners_organization,put,,actions,actions,org_self_hosted_runner_repo_access,enable_selected_repository_self_hosted_runners_organization,replace,,Add a repository to the list of repositories allowed to use self-hosted runners in an organization -actions.yaml,/repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable,actions/enable-workflow,actions/enable_workflow,put,,actions,actions,workflows,enable_workflow,exec,,Enable a workflow -actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel,actions/force-cancel-workflow-run,actions/force_cancel_workflow_run,post,,actions,actions,workflow_runs,force_cancel_workflow_run,insert,,Force cancel a workflow run -actions.yaml,/orgs/{org}/actions/runners/generate-jitconfig,actions/generate-runner-jitconfig-for-org,actions/generate_runner_jitconfig_for_org,post,,actions,actions,runner_jit_configs,generate_runner_jitconfig_for_org,insert,,Create configuration for a just-in-time runner for an organization -actions.yaml,/repos/{owner}/{repo}/actions/runners/generate-jitconfig,actions/generate-runner-jitconfig-for-repo,actions/generate_runner_jitconfig_for_repo,post,,actions,actions,runner_jit_configs,generate_runner_jitconfig_for_repo,insert,,Create configuration for a just-in-time runner for a repository -actions.yaml,/repos/{owner}/{repo}/actions/caches,actions/get-actions-cache-list,actions/get_actions_cache_list,get,actions-cache-list,actions,actions,cache,get_actions_cache_list,select,,List GitHub Actions caches for a repository -actions.yaml,/enterprises/{enterprise}/actions/cache/retention-limit,actions/get-actions-cache-retention-limit-for-enterprise,actions/get_actions_cache_retention_limit_for_enterprise,get,,actions,actions,cache_retention_limit,get_actions_cache_retention_limit_for_enterprise,select,,Get GitHub Actions cache retention limit for an enterprise -actions.yaml,/organizations/{org}/actions/cache/retention-limit,actions/get-actions-cache-retention-limit-for-organization,actions/get_actions_cache_retention_limit_for_organization,get,,actions,actions,cache_retention_limit,get_actions_cache_retention_limit_for_organization,select,,Get GitHub Actions cache retention limit for an organization -actions.yaml,/repos/{owner}/{repo}/actions/cache/retention-limit,actions/get-actions-cache-retention-limit-for-repository,actions/get_actions_cache_retention_limit_for_repository,get,,actions,actions,cache_retention_limit,get_actions_cache_retention_limit_for_repository,select,,Get GitHub Actions cache retention limit for a repository -actions.yaml,/enterprises/{enterprise}/actions/cache/storage-limit,actions/get-actions-cache-storage-limit-for-enterprise,actions/get_actions_cache_storage_limit_for_enterprise,get,,actions,actions,cache_storage_limit,get_actions_cache_storage_limit_for_enterprise,select,,Get GitHub Actions cache storage limit for an enterprise -actions.yaml,/organizations/{org}/actions/cache/storage-limit,actions/get-actions-cache-storage-limit-for-organization,actions/get_actions_cache_storage_limit_for_organization,get,,actions,actions,cache_storage_limit,get_actions_cache_storage_limit_for_organization,select,,Get GitHub Actions cache storage limit for an organization -actions.yaml,/repos/{owner}/{repo}/actions/cache/storage-limit,actions/get-actions-cache-storage-limit-for-repository,actions/get_actions_cache_storage_limit_for_repository,get,,actions,actions,cache_storage_limit,get_actions_cache_storage_limit_for_repository,select,,Get GitHub Actions cache storage limit for a repository -actions.yaml,/repos/{owner}/{repo}/actions/cache/usage,actions/get-actions-cache-usage,actions/get_actions_cache_usage,get,actions-cache-usage-by-repository,actions,actions,cache_usage,get_actions_cache_usage,select,,Get GitHub Actions cache usage for a repository -actions.yaml,/orgs/{org}/actions/cache/usage-by-repository,actions/get-actions-cache-usage-by-repo-for-org,actions/get_actions_cache_usage_by_repo_for_org,get,,actions,actions,org_cache_usage,get_actions_cache_usage_by_repo_for_org,select,,List repositories with GitHub Actions cache usage for an organization -actions.yaml,/orgs/{org}/actions/cache/usage,actions/get-actions-cache-usage-for-org,actions/get_actions_cache_usage_for_org,get,actions-cache-usage-org-enterprise,actions,actions,cache_usage,get_actions_cache_usage_for_org,select,,Get GitHub Actions cache usage for an organization -actions.yaml,/orgs/{org}/actions/permissions/selected-actions,actions/get-allowed-actions-organization,actions/get_allowed_actions_organization,get,selected-actions,actions,actions,allowed_actions,get_allowed_actions_organization,select,,Get allowed actions and reusable workflows for an organization -actions.yaml,/repos/{owner}/{repo}/actions/permissions/selected-actions,actions/get-allowed-actions-repository,actions/get_allowed_actions_repository,get,selected-actions,actions,actions,allowed_actions,get_allowed_actions_repository,select,,Get allowed actions and reusable workflows for a repository -actions.yaml,/repos/{owner}/{repo}/actions/artifacts/{artifact_id},actions/get-artifact,actions/get_artifact,get,artifact,actions,actions,artifacts,get_artifact,select,,Get an artifact -actions.yaml,/orgs/{org}/actions/permissions/artifact-and-log-retention,actions/get-artifact-and-log-retention-settings-organization,actions/get_artifact_and_log_retention_settings_organization,get,,actions,actions,artifact_log_retention,get_artifact_and_log_retention_settings_organization,select,,Get artifact and log retention settings for an organization -actions.yaml,/repos/{owner}/{repo}/actions/permissions/artifact-and-log-retention,actions/get-artifact-and-log-retention-settings-repository,actions/get_artifact_and_log_retention_settings_repository,get,,actions,actions,artifact_log_retention,get_artifact_and_log_retention_settings_repository,select,,Get artifact and log retention settings for a repository -actions.yaml,/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id},actions/get-custom-image-for-org,actions/get_custom_image_for_org,get,,actions,actions,org_hosted_runner_custom_images,get_custom_image_for_org,select,,Get a custom image definition for GitHub Actions Hosted Runners -actions.yaml,/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version},actions/get-custom-image-version-for-org,actions/get_custom_image_version_for_org,get,,actions,actions,org_hosted_runner_custom_image_versions,get_custom_image_version_for_org,select,,Get an image version of a custom image for GitHub Actions Hosted Runners -actions.yaml,/repos/{owner}/{repo}/actions/oidc/customization/sub,actions/get-custom-oidc-sub-claim-for-repo,actions/get_custom_oidc_sub_claim_for_repo,get,oidc-custom-sub-repo,actions,actions,oidc,get_custom_oidc_sub_claim_for_repo,select,,Get the customization template for an OIDC subject claim for a repository -actions.yaml,/repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key,actions/get-environment-public-key,actions/get_environment_public_key,get,actions-public-key,actions,actions,public_keys,get_environment_public_key,select,,Get an environment public key -actions.yaml,/repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name},actions/get-environment-secret,actions/get_environment_secret,get,actions-secret,actions,actions,secrets,get_environment_secret,select,,Get an environment secret -actions.yaml,/repos/{owner}/{repo}/environments/{environment_name}/variables/{name},actions/get-environment-variable,actions/get_environment_variable,get,actions-variable,actions,actions,variables,get_environment_variable,select,,Get an environment variable -actions.yaml,/orgs/{org}/actions/permissions/fork-pr-contributor-approval,actions/get-fork-pr-contributor-approval-permissions-organization,actions/get_fork_pr_contributor_approval_permissions_organization,get,,actions,actions,org_fork_pr_contributor_approval_permissions,get_fork_pr_contributor_approval_permissions_organization,select,,Get fork PR contributor approval permissions for an organization -actions.yaml,/repos/{owner}/{repo}/actions/permissions/fork-pr-contributor-approval,actions/get-fork-pr-contributor-approval-permissions-repository,actions/get_fork_pr_contributor_approval_permissions_repository,get,,actions,actions,fork_pr_contributor_approval_permissions,get_fork_pr_contributor_approval_permissions_repository,select,,Get fork PR contributor approval permissions for a repository -actions.yaml,/orgs/{org}/actions/permissions/workflow,actions/get-github-actions-default-workflow-permissions-organization,actions/get_github_actions_default_workflow_permissions_organization,get,actions-get-default-workflow-permissions,actions,actions,default_workflow_permissions,get_github_actions_default_workflow_permissions_organization,select,,Get default workflow permissions for an organization -actions.yaml,/repos/{owner}/{repo}/actions/permissions/workflow,actions/get-github-actions-default-workflow-permissions-repository,actions/get_github_actions_default_workflow_permissions_repository,get,actions-get-default-workflow-permissions,actions,actions,default_workflow_permissions,get_github_actions_default_workflow_permissions_repository,select,,Get default workflow permissions for a repository -actions.yaml,/orgs/{org}/actions/permissions,actions/get-github-actions-permissions-organization,actions/get_github_actions_permissions_organization,get,actions-organization-permissions,actions,actions,permissions,get_github_actions_permissions_organization,select,,Get GitHub Actions permissions for an organization -actions.yaml,/repos/{owner}/{repo}/actions/permissions,actions/get-github-actions-permissions-repository,actions/get_github_actions_permissions_repository,get,actions-repository-permissions,actions,actions,permissions,get_github_actions_permissions_repository,select,,Get GitHub Actions permissions for a repository -actions.yaml,/orgs/{org}/actions/hosted-runners/{hosted_runner_id},actions/get-hosted-runner-for-org,actions/get_hosted_runner_for_org,get,,actions,actions,org_hosted_runners,get_hosted_runner_for_org,select,,Get a GitHub-hosted runner for an organization -actions.yaml,/orgs/{org}/actions/hosted-runners/images/github-owned,actions/get-hosted-runners-github-owned-images-for-org,actions/get_hosted_runners_github_owned_images_for_org,get,,actions,actions,org_hosted_runner_github_images,get_hosted_runners_github_owned_images_for_org,select,,Get GitHub-owned images for GitHub-hosted runners in an organization -actions.yaml,/orgs/{org}/actions/hosted-runners/limits,actions/get-hosted-runners-limits-for-org,actions/get_hosted_runners_limits_for_org,get,,actions,actions,org_hosted_runner_limits,get_hosted_runners_limits_for_org,select,$.public_ips,Get limits on GitHub-hosted runners for an organization -actions.yaml,/orgs/{org}/actions/hosted-runners/machine-sizes,actions/get-hosted-runners-machine-specs-for-org,actions/get_hosted_runners_machine_specs_for_org,get,,actions,actions,org_hosted_runner_machine_specs,get_hosted_runners_machine_specs_for_org,select,,Get GitHub-hosted runners machine specs for an organization -actions.yaml,/orgs/{org}/actions/hosted-runners/images/partner,actions/get-hosted-runners-partner-images-for-org,actions/get_hosted_runners_partner_images_for_org,get,,actions,actions,org_hosted_runner_partner_images,get_hosted_runners_partner_images_for_org,select,,Get partner images for GitHub-hosted runners in an organization -actions.yaml,/orgs/{org}/actions/hosted-runners/platforms,actions/get-hosted-runners-platforms-for-org,actions/get_hosted_runners_platforms_for_org,get,,actions,actions,org_hosted_runner_platforms,get_hosted_runners_platforms_for_org,select,,Get platforms for GitHub-hosted runners in an organization -actions.yaml,/repos/{owner}/{repo}/actions/jobs/{job_id},actions/get-job-for-workflow-run,actions/get_job_for_workflow_run,get,job,actions,actions,workflow_jobs,get_job_for_workflow_run,select,,Get a job for a workflow run -actions.yaml,/orgs/{org}/actions/secrets/public-key,actions/get-org-public-key,actions/get_org_public_key,get,actions-public-key,actions,actions,public_keys,get_org_public_key,select,,Get an organization public key -actions.yaml,/orgs/{org}/actions/secrets/{secret_name},actions/get-org-secret,actions/get_org_secret,get,organization-actions-secret,actions,actions,secrets,get_org_secret,select,,Get an organization secret -actions.yaml,/orgs/{org}/actions/variables/{name},actions/get-org-variable,actions/get_org_variable,get,organization-actions-variable,actions,actions,variables,get_org_variable,select,,Get an organization variable -actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments,actions/get-pending-deployments-for-run,actions/get_pending_deployments_for_run,get,pending-deployment,actions,actions,pending_deployments_for_run,get_pending_deployments_for_run,select,,Get pending deployments for a workflow run -actions.yaml,/orgs/{org}/actions/permissions/fork-pr-workflows-private-repos,actions/get-private-repo-fork-pr-workflows-settings-organization,actions/get_private_repo_fork_pr_workflows_settings_organization,get,,actions,actions,org_fork_pr_workflows_private_repos_settings,get_private_repo_fork_pr_workflows_settings_organization,select,,Get private repo fork PR workflow settings for an organization -actions.yaml,/repos/{owner}/{repo}/actions/permissions/fork-pr-workflows-private-repos,actions/get-private-repo-fork-pr-workflows-settings-repository,actions/get_private_repo_fork_pr_workflows_settings_repository,get,,actions,actions,fork_pr_workflows_private_repos_settings,get_private_repo_fork_pr_workflows_settings_repository,select,,Get private repo fork PR workflow settings for a repository -actions.yaml,/repos/{owner}/{repo}/actions/secrets/public-key,actions/get-repo-public-key,actions/get_repo_public_key,get,actions-public-key,actions,actions,public_keys,get_repo_public_key,select,,Get a repository public key -actions.yaml,/repos/{owner}/{repo}/actions/secrets/{secret_name},actions/get-repo-secret,actions/get_repo_secret,get,actions-secret,actions,actions,secrets,get_repo_secret,select,,Get a repository secret -actions.yaml,/repos/{owner}/{repo}/actions/variables/{name},actions/get-repo-variable,actions/get_repo_variable,get,actions-variable,actions,actions,variables,get_repo_variable,select,,Get a repository variable -actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/approvals,actions/get-reviews-for-run,actions/get_reviews_for_run,get,environment-approvals,actions,actions,workflow_run_reviews,get_reviews_for_run,select,,Get the review history for a workflow run -actions.yaml,/orgs/{org}/actions/runners/{runner_id},actions/get-self-hosted-runner-for-org,actions/get_self_hosted_runner_for_org,get,runner,actions,actions,self_hosted_runners,get_self_hosted_runner_for_org,select,,Get a self-hosted runner for an organization -actions.yaml,/repos/{owner}/{repo}/actions/runners/{runner_id},actions/get-self-hosted-runner-for-repo,actions/get_self_hosted_runner_for_repo,get,runner,actions,actions,self_hosted_runners,get_self_hosted_runner_for_repo,select,,Get a self-hosted runner for a repository -actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id},actions/get-self-hosted-runner-group-for-org,actions/get_self_hosted_runner_group_for_org,get,,actions,actions,org_runner_groups,get_self_hosted_runner_group_for_org,select,,Get a self-hosted runner group for an organization -actions.yaml,/orgs/{org}/actions/permissions/self-hosted-runners,actions/get-self-hosted-runners-permissions-organization,actions/get_self_hosted_runners_permissions_organization,get,,actions,actions,org_self_hosted_runners_permissions,get_self_hosted_runners_permissions_organization,select,,Get self-hosted runners settings for an organization -actions.yaml,/repos/{owner}/{repo}/actions/workflows/{workflow_id},actions/get-workflow,actions/get_workflow,get,workflow,actions,actions,workflows,get_workflow,select,,Get a workflow -actions.yaml,/repos/{owner}/{repo}/actions/permissions/access,actions/get-workflow-access-to-repository,actions/get_workflow_access_to_repository,get,actions-workflow-access-to-repository,actions,actions,workflow_access,get_workflow_access_to_repository,select,,Get the level of access for workflows outside of the repository -actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id},actions/get-workflow-run,actions/get_workflow_run,get,workflow-run,actions,actions,workflow_runs,get_workflow_run,select,,Get a workflow run -actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number},actions/get-workflow-run-attempt,actions/get_workflow_run_attempt,get,workflow-run,actions,actions,workflow_runs,get_workflow_run_attempt,select,,Get a workflow run attempt -actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/timing,actions/get-workflow-run-usage,actions/get_workflow_run_usage,get,workflow-run-usage,actions,actions,workflow_run_usage,get_workflow_run_usage,select,,Get workflow run usage -actions.yaml,/repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing,actions/get-workflow-usage,actions/get_workflow_usage,get,workflow-usage,actions,actions,workflow_usage,get_workflow_usage,select,$.billable,Get workflow usage -actions.yaml,/repos/{owner}/{repo}/actions/artifacts,actions/list-artifacts-for-repo,actions/list_artifacts_for_repo,get,,actions,actions,artifacts,list_artifacts_for_repo,select,$.artifacts,List artifacts for a repository -actions.yaml,/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions,actions/list-custom-image-versions-for-org,actions/list_custom_image_versions_for_org,get,,actions,actions,org_hosted_runner_custom_image_versions,list_custom_image_versions_for_org,select,$.image_versions,List image versions of a custom image for an organization -actions.yaml,/orgs/{org}/actions/hosted-runners/images/custom,actions/list-custom-images-for-org,actions/list_custom_images_for_org,get,,actions,actions,org_hosted_runner_custom_images,list_custom_images_for_org,select,$.images,List custom images for an organization -actions.yaml,/repos/{owner}/{repo}/environments/{environment_name}/secrets,actions/list-environment-secrets,actions/list_environment_secrets,get,,actions,actions,secrets,list_environment_secrets,select,$.secrets,List environment secrets -actions.yaml,/repos/{owner}/{repo}/environments/{environment_name}/variables,actions/list-environment-variables,actions/list_environment_variables,get,,actions,actions,variables,list_environment_variables,select,$.variables,List environment variables -actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners,actions/list-github-hosted-runners-in-group-for-org,actions/list_github_hosted_runners_in_group_for_org,get,,actions,actions,org_runner_group_hosted_runners,list_github_hosted_runners_in_group_for_org,select,$.runners,List GitHub-hosted runners in a group for an organization -actions.yaml,/orgs/{org}/actions/hosted-runners,actions/list-hosted-runners-for-org,actions/list_hosted_runners_for_org,get,,actions,actions,org_hosted_runners,list_hosted_runners_for_org,select,$.runners,List GitHub-hosted runners for an organization -actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/jobs,actions/list-jobs-for-workflow-run,actions/list_jobs_for_workflow_run,get,,actions,actions,workflow_jobs,list_jobs_for_workflow_run,select,$.jobs,List jobs for a workflow run -actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs,actions/list-jobs-for-workflow-run-attempt,actions/list_jobs_for_workflow_run_attempt,get,,actions,actions,workflow_jobs,list_jobs_for_workflow_run_attempt,select,$.jobs,List jobs for a workflow run attempt -actions.yaml,/orgs/{org}/actions/runners/{runner_id}/labels,actions/list-labels-for-self-hosted-runner-for-org,actions/list_labels_for_self_hosted_runner_for_org,get,,actions,actions,runner_labels,list_labels_for_self_hosted_runner_for_org,select,$.labels,List labels for a self-hosted runner for an organization -actions.yaml,/repos/{owner}/{repo}/actions/runners/{runner_id}/labels,actions/list-labels-for-self-hosted-runner-for-repo,actions/list_labels_for_self_hosted_runner_for_repo,get,,actions,actions,runner_labels,list_labels_for_self_hosted_runner_for_repo,select,$.labels,List labels for a self-hosted runner for a repository -actions.yaml,/orgs/{org}/actions/secrets,actions/list-org-secrets,actions/list_org_secrets,get,,actions,actions,secrets,list_org_secrets,select,$.secrets,List organization secrets -actions.yaml,/orgs/{org}/actions/variables,actions/list-org-variables,actions/list_org_variables,get,,actions,actions,variables,list_org_variables,select,$.variables,List organization variables -actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories,actions/list-repo-access-to-self-hosted-runner-group-in-org,actions/list_repo_access_to_self_hosted_runner_group_in_org,get,,actions,actions,org_runner_group_repos,list_repo_access_to_self_hosted_runner_group_in_org,select,$.repositories,List repository access to a self-hosted runner group in an organization -actions.yaml,/repos/{owner}/{repo}/actions/organization-secrets,actions/list-repo-organization-secrets,actions/list_repo_organization_secrets,get,,actions,actions,repo_org_secrets,list_repo_organization_secrets,select,$.secrets,List repository organization secrets -actions.yaml,/repos/{owner}/{repo}/actions/organization-variables,actions/list-repo-organization-variables,actions/list_repo_organization_variables,get,,actions,actions,repo_org_variables,list_repo_organization_variables,select,$.variables,List repository organization variables -actions.yaml,/repos/{owner}/{repo}/actions/secrets,actions/list-repo-secrets,actions/list_repo_secrets,get,,actions,actions,secrets,list_repo_secrets,select,$.secrets,List repository secrets -actions.yaml,/repos/{owner}/{repo}/actions/variables,actions/list-repo-variables,actions/list_repo_variables,get,,actions,actions,variables,list_repo_variables,select,$.variables,List repository variables -actions.yaml,/repos/{owner}/{repo}/actions/workflows,actions/list-repo-workflows,actions/list_repo_workflows,get,,actions,actions,workflows,list_repo_workflows,select,$.workflows,List repository workflows -actions.yaml,/orgs/{org}/actions/runners/downloads,actions/list-runner-applications-for-org,actions/list_runner_applications_for_org,get,runner-application,actions,actions,runner_applications,list_runner_applications_for_org,select,,List runner applications for an organization -actions.yaml,/repos/{owner}/{repo}/actions/runners/downloads,actions/list-runner-applications-for-repo,actions/list_runner_applications_for_repo,get,runner-application,actions,actions,runner_applications,list_runner_applications_for_repo,select,,List runner applications for a repository -actions.yaml,/orgs/{org}/actions/secrets/{secret_name}/repositories,actions/list-selected-repos-for-org-secret,actions/list_selected_repos_for_org_secret,get,,actions,actions,repos_for_secret,list_selected_repos_for_org_secret,select,$.repositories,List selected repositories for an organization secret -actions.yaml,/orgs/{org}/actions/variables/{name}/repositories,actions/list-selected-repos-for-org-variable,actions/list_selected_repos_for_org_variable,get,,actions,actions,repos_for_org_variable,list_selected_repos_for_org_variable,select,$.repositories,List selected repositories for an organization variable -actions.yaml,/orgs/{org}/actions/permissions/repositories,actions/list-selected-repositories-enabled-github-actions-organization,actions/list_selected_repositories_enabled_github_actions_organization,get,,actions,actions,enabled_repos,list_selected_repositories_enabled_github_actions_organization,select,$.repositories,List selected repositories enabled for GitHub Actions in an organization -actions.yaml,/orgs/{org}/actions/permissions/self-hosted-runners/repositories,actions/list-selected-repositories-self-hosted-runners-organization,actions/list_selected_repositories_self_hosted_runners_organization,get,,actions,actions,org_self_hosted_runner_repo_access,list_selected_repositories_self_hosted_runners_organization,select,$.repositories,List repositories allowed to use self-hosted runners in an organization -actions.yaml,/orgs/{org}/actions/runner-groups,actions/list-self-hosted-runner-groups-for-org,actions/list_self_hosted_runner_groups_for_org,get,,actions,actions,org_runner_groups,list_self_hosted_runner_groups_for_org,select,$.runner_groups,List self-hosted runner groups for an organization -actions.yaml,/orgs/{org}/actions/runners,actions/list-self-hosted-runners-for-org,actions/list_self_hosted_runners_for_org,get,,actions,actions,self_hosted_runners,list_self_hosted_runners_for_org,select,$.runners,List self-hosted runners for an organization -actions.yaml,/repos/{owner}/{repo}/actions/runners,actions/list-self-hosted-runners-for-repo,actions/list_self_hosted_runners_for_repo,get,,actions,actions,self_hosted_runners,list_self_hosted_runners_for_repo,select,$.runners,List self-hosted runners for a repository -actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id}/runners,actions/list-self-hosted-runners-in-group-for-org,actions/list_self_hosted_runners_in_group_for_org,get,,actions,actions,org_runner_group_runners,list_self_hosted_runners_in_group_for_org,select,$.runners,List self-hosted runners in a group for an organization -actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts,actions/list-workflow-run-artifacts,actions/list_workflow_run_artifacts,get,,actions,actions,artifacts,list_workflow_run_artifacts,select,$.artifacts,List workflow run artifacts -actions.yaml,/repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs,actions/list-workflow-runs,actions/list_workflow_runs,get,,actions,actions,workflow_runs,list_workflow_runs,select,$.workflow_runs,List workflow runs for a workflow -actions.yaml,/repos/{owner}/{repo}/actions/runs,actions/list-workflow-runs-for-repo,actions/list_workflow_runs_for_repo,get,,actions,actions,workflow_runs,list_workflow_runs_for_repo,select,$.workflow_runs,List workflow runs for a repository -actions.yaml,/repos/{owner}/{repo}/actions/jobs/{job_id}/rerun,actions/re-run-job-for-workflow-run,actions/re_run_job_for_workflow_run,post,empty-object,actions,actions,workflow_runs,re_run_job_for_workflow_run,exec,,Re-run a job from a workflow run -actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/rerun,actions/re-run-workflow,actions/re_run_workflow,post,empty-object,actions,actions,workflow_runs,re_run_workflow,exec,,Re-run a workflow -actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs,actions/re-run-workflow-failed-jobs,actions/re_run_workflow_failed_jobs,post,empty-object,actions,actions,workflow_runs,re_run_workflow_failed_jobs,exec,,Re-run failed jobs from a workflow run -actions.yaml,/orgs/{org}/actions/runners/{runner_id}/labels,actions/remove-all-custom-labels-from-self-hosted-runner-for-org,actions/remove_all_custom_labels_from_self_hosted_runner_for_org,delete,,actions,actions,runner_labels,remove_all_custom_labels_from_self_hosted_runner_for_org,delete,,Remove all custom labels from a self-hosted runner for an organization -actions.yaml,/repos/{owner}/{repo}/actions/runners/{runner_id}/labels,actions/remove-all-custom-labels-from-self-hosted-runner-for-repo,actions/remove_all_custom_labels_from_self_hosted_runner_for_repo,delete,,actions,actions,runner_labels,remove_all_custom_labels_from_self_hosted_runner_for_repo,delete,,Remove all custom labels from a self-hosted runner for a repository -actions.yaml,/orgs/{org}/actions/runners/{runner_id}/labels/{name},actions/remove-custom-label-from-self-hosted-runner-for-org,actions/remove_custom_label_from_self_hosted_runner_for_org,delete,,actions,actions,runner_labels,remove_custom_label_from_self_hosted_runner_for_org,delete,,Remove a custom label from a self-hosted runner for an organization -actions.yaml,/repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name},actions/remove-custom-label-from-self-hosted-runner-for-repo,actions/remove_custom_label_from_self_hosted_runner_for_repo,delete,,actions,actions,runner_labels,remove_custom_label_from_self_hosted_runner_for_repo,delete,,Remove a custom label from a self-hosted runner for a repository -actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id},actions/remove-repo-access-to-self-hosted-runner-group-in-org,actions/remove_repo_access_to_self_hosted_runner_group_in_org,delete,,actions,actions,org_runner_group_repos,remove_repo_access_to_self_hosted_runner_group_in_org,delete,,Remove repository access to a self-hosted runner group in an organization -actions.yaml,/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id},actions/remove-selected-repo-from-org-secret,actions/remove_selected_repo_from_org_secret,delete,,actions,actions,repos_for_secret,remove_selected_repo_from_org_secret,delete,,Remove selected repository from an organization secret -actions.yaml,/orgs/{org}/actions/variables/{name}/repositories/{repository_id},actions/remove-selected-repo-from-org-variable,actions/remove_selected_repo_from_org_variable,delete,,actions,actions,repos_for_org_variable,remove_selected_repo_from_org_variable,delete,,Remove selected repository from an organization variable -actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id},actions/remove-self-hosted-runner-from-group-for-org,actions/remove_self_hosted_runner_from_group_for_org,delete,,actions,actions,org_runner_group_runners,remove_self_hosted_runner_from_group_for_org,delete,,Remove a self-hosted runner from a group for an organization -actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule,actions/review-custom-gates-for-run,actions/review_custom_gates_for_run,post,,actions,actions,workflow_runs,review_custom_gates_for_run,exec,,Review custom deployment protection rules for a workflow run -actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments,actions/review-pending-deployments-for-run,actions/review_pending_deployments_for_run,post,deployment,actions,actions,pending_deployments_for_run,review_pending_deployments_for_run,exec,,Review pending deployments for a workflow run -actions.yaml,/enterprises/{enterprise}/actions/cache/retention-limit,actions/set-actions-cache-retention-limit-for-enterprise,actions/set_actions_cache_retention_limit_for_enterprise,put,,actions,actions,cache_retention_limit,set_actions_cache_retention_limit_for_enterprise,replace,,Set GitHub Actions cache retention limit for an enterprise -actions.yaml,/organizations/{org}/actions/cache/retention-limit,actions/set-actions-cache-retention-limit-for-organization,actions/set_actions_cache_retention_limit_for_organization,put,,actions,actions,cache_retention_limit,set_actions_cache_retention_limit_for_organization,replace,,Set GitHub Actions cache retention limit for an organization -actions.yaml,/repos/{owner}/{repo}/actions/cache/retention-limit,actions/set-actions-cache-retention-limit-for-repository,actions/set_actions_cache_retention_limit_for_repository,put,,actions,actions,cache_retention_limit,set_actions_cache_retention_limit_for_repository,replace,,Set GitHub Actions cache retention limit for a repository -actions.yaml,/enterprises/{enterprise}/actions/cache/storage-limit,actions/set-actions-cache-storage-limit-for-enterprise,actions/set_actions_cache_storage_limit_for_enterprise,put,,actions,actions,cache_storage_limit,set_actions_cache_storage_limit_for_enterprise,replace,,Set GitHub Actions cache storage limit for an enterprise -actions.yaml,/organizations/{org}/actions/cache/storage-limit,actions/set-actions-cache-storage-limit-for-organization,actions/set_actions_cache_storage_limit_for_organization,put,,actions,actions,cache_storage_limit,set_actions_cache_storage_limit_for_organization,replace,,Set GitHub Actions cache storage limit for an organization -actions.yaml,/repos/{owner}/{repo}/actions/cache/storage-limit,actions/set-actions-cache-storage-limit-for-repository,actions/set_actions_cache_storage_limit_for_repository,put,,actions,actions,cache_storage_limit,set_actions_cache_storage_limit_for_repository,replace,,Set GitHub Actions cache storage limit for a repository -actions.yaml,/orgs/{org}/actions/permissions/selected-actions,actions/set-allowed-actions-organization,actions/set_allowed_actions_organization,put,,actions,actions,allowed_actions,set_allowed_actions_organization,replace,,Set allowed actions and reusable workflows for an organization -actions.yaml,/repos/{owner}/{repo}/actions/permissions/selected-actions,actions/set-allowed-actions-repository,actions/set_allowed_actions_repository,put,,actions,actions,allowed_actions,set_allowed_actions_repository,replace,,Set allowed actions and reusable workflows for a repository -actions.yaml,/orgs/{org}/actions/permissions/artifact-and-log-retention,actions/set-artifact-and-log-retention-settings-organization,actions/set_artifact_and_log_retention_settings_organization,put,,actions,actions,artifact_log_retention,set_artifact_and_log_retention_settings_organization,replace,,Set artifact and log retention settings for an organization -actions.yaml,/repos/{owner}/{repo}/actions/permissions/artifact-and-log-retention,actions/set-artifact-and-log-retention-settings-repository,actions/set_artifact_and_log_retention_settings_repository,put,,actions,actions,artifact_log_retention,set_artifact_and_log_retention_settings_repository,replace,,Set artifact and log retention settings for a repository -actions.yaml,/orgs/{org}/actions/runners/{runner_id}/labels,actions/set-custom-labels-for-self-hosted-runner-for-org,actions/set_custom_labels_for_self_hosted_runner_for_org,put,,actions,actions,runner_labels,set_custom_labels_for_self_hosted_runner_for_org,replace,,Set custom labels for a self-hosted runner for an organization -actions.yaml,/repos/{owner}/{repo}/actions/runners/{runner_id}/labels,actions/set-custom-labels-for-self-hosted-runner-for-repo,actions/set_custom_labels_for_self_hosted_runner_for_repo,put,,actions,actions,runner_labels,set_custom_labels_for_self_hosted_runner_for_repo,replace,,Set custom labels for a self-hosted runner for a repository -actions.yaml,/repos/{owner}/{repo}/actions/oidc/customization/sub,actions/set-custom-oidc-sub-claim-for-repo,actions/set_custom_oidc_sub_claim_for_repo,put,empty-object,actions,actions,oidc,set_custom_oidc_sub_claim_for_repo,replace,,Set the customization template for an OIDC subject claim for a repository -actions.yaml,/orgs/{org}/actions/permissions/fork-pr-contributor-approval,actions/set-fork-pr-contributor-approval-permissions-organization,actions/set_fork_pr_contributor_approval_permissions_organization,put,,actions,actions,org_fork_pr_contributor_approval_permissions,set_fork_pr_contributor_approval_permissions_organization,replace,,Set fork PR contributor approval permissions for an organization -actions.yaml,/repos/{owner}/{repo}/actions/permissions/fork-pr-contributor-approval,actions/set-fork-pr-contributor-approval-permissions-repository,actions/set_fork_pr_contributor_approval_permissions_repository,put,,actions,actions,fork_pr_contributor_approval_permissions,set_fork_pr_contributor_approval_permissions_repository,replace,,Set fork PR contributor approval permissions for a repository -actions.yaml,/orgs/{org}/actions/permissions/workflow,actions/set-github-actions-default-workflow-permissions-organization,actions/set_github_actions_default_workflow_permissions_organization,put,,actions,actions,default_workflow_permissions,set_github_actions_default_workflow_permissions_organization,replace,,Set default workflow permissions for an organization -actions.yaml,/repos/{owner}/{repo}/actions/permissions/workflow,actions/set-github-actions-default-workflow-permissions-repository,actions/set_github_actions_default_workflow_permissions_repository,put,,actions,actions,default_workflow_permissions,set_github_actions_default_workflow_permissions_repository,replace,,Set default workflow permissions for a repository -actions.yaml,/orgs/{org}/actions/permissions,actions/set-github-actions-permissions-organization,actions/set_github_actions_permissions_organization,put,,actions,actions,permissions,set_github_actions_permissions_organization,replace,,Set GitHub Actions permissions for an organization -actions.yaml,/repos/{owner}/{repo}/actions/permissions,actions/set-github-actions-permissions-repository,actions/set_github_actions_permissions_repository,put,,actions,actions,permissions,set_github_actions_permissions_repository,replace,,Set GitHub Actions permissions for a repository -actions.yaml,/orgs/{org}/actions/permissions/fork-pr-workflows-private-repos,actions/set-private-repo-fork-pr-workflows-settings-organization,actions/set_private_repo_fork_pr_workflows_settings_organization,put,,actions,actions,org_fork_pr_workflows_private_repos_settings,set_private_repo_fork_pr_workflows_settings_organization,replace,,Set private repo fork PR workflow settings for an organization -actions.yaml,/repos/{owner}/{repo}/actions/permissions/fork-pr-workflows-private-repos,actions/set-private-repo-fork-pr-workflows-settings-repository,actions/set_private_repo_fork_pr_workflows_settings_repository,put,,actions,actions,fork_pr_workflows_private_repos_settings,set_private_repo_fork_pr_workflows_settings_repository,replace,,Set private repo fork PR workflow settings for a repository -actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories,actions/set-repo-access-to-self-hosted-runner-group-in-org,actions/set_repo_access_to_self_hosted_runner_group_in_org,put,,actions,actions,org_runner_group_repos,set_repo_access_to_self_hosted_runner_group_in_org,replace,,Set repository access for a self-hosted runner group in an organization -actions.yaml,/orgs/{org}/actions/secrets/{secret_name}/repositories,actions/set-selected-repos-for-org-secret,actions/set_selected_repos_for_org_secret,put,,actions,actions,repos_for_secret,set_selected_repos_for_org_secret,replace,,Set selected repositories for an organization secret -actions.yaml,/orgs/{org}/actions/variables/{name}/repositories,actions/set-selected-repos-for-org-variable,actions/set_selected_repos_for_org_variable,put,,actions,actions,repos_for_org_variable,set_selected_repos_for_org_variable,replace,,Set selected repositories for an organization variable -actions.yaml,/orgs/{org}/actions/permissions/repositories,actions/set-selected-repositories-enabled-github-actions-organization,actions/set_selected_repositories_enabled_github_actions_organization,put,,actions,actions,enabled_repos,set_selected_repositories_enabled_github_actions_organization,replace,,Set selected repositories enabled for GitHub Actions in an organization -actions.yaml,/orgs/{org}/actions/permissions/self-hosted-runners/repositories,actions/set-selected-repositories-self-hosted-runners-organization,actions/set_selected_repositories_self_hosted_runners_organization,put,,actions,actions,org_self_hosted_runner_repo_access,set_selected_repositories_self_hosted_runners_organization,replace,,Set repositories allowed to use self-hosted runners in an organization -actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id}/runners,actions/set-self-hosted-runners-in-group-for-org,actions/set_self_hosted_runners_in_group_for_org,put,,actions,actions,org_runner_group_runners,set_self_hosted_runners_in_group_for_org,replace,,Set self-hosted runners in a group for an organization -actions.yaml,/orgs/{org}/actions/permissions/self-hosted-runners,actions/set-self-hosted-runners-permissions-organization,actions/set_self_hosted_runners_permissions_organization,put,,actions,actions,org_self_hosted_runners_permissions,set_self_hosted_runners_permissions_organization,replace,,Set self-hosted runners settings for an organization -actions.yaml,/repos/{owner}/{repo}/actions/permissions/access,actions/set-workflow-access-to-repository,actions/set_workflow_access_to_repository,put,,actions,actions,workflow_access,set_workflow_access_to_repository,replace,,Set the level of access for workflows outside of the repository -actions.yaml,/repos/{owner}/{repo}/environments/{environment_name}/variables/{name},actions/update-environment-variable,actions/update_environment_variable,patch,,actions,actions,variables,update_environment_variable,update,,Update an environment variable -actions.yaml,/orgs/{org}/actions/hosted-runners/{hosted_runner_id},actions/update-hosted-runner-for-org,actions/update_hosted_runner_for_org,patch,,actions,actions,org_hosted_runners,update_hosted_runner_for_org,update,,Update a GitHub-hosted runner for an organization -actions.yaml,/orgs/{org}/actions/variables/{name},actions/update-org-variable,actions/update_org_variable,patch,,actions,actions,variables,update_org_variable,update,,Update an organization variable -actions.yaml,/repos/{owner}/{repo}/actions/variables/{name},actions/update-repo-variable,actions/update_repo_variable,patch,,actions,actions,variables,update_repo_variable,update,,Update a repository variable -actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id},actions/update-self-hosted-runner-group-for-org,actions/update_self_hosted_runner_group_for_org,patch,,actions,actions,org_runner_groups,update_self_hosted_runner_group_for_org,update,,Update a self-hosted runner group for an organization -activity.yaml,/user/starred/{owner}/{repo},activity/check-repo-is-starred-by-authenticated-user,activity/check_repo_is_starred_by_authenticated_user,get,,activity,activity,starring,check_repo_is_starred_by_authenticated_user,exec,,Check if a repository is starred by the authenticated user -activity.yaml,/repos/{owner}/{repo}/subscription,activity/delete-repo-subscription,activity/delete_repo_subscription,delete,,activity,activity,repo_subscriptions,delete_repo_subscription,delete,,Delete a repository subscription -activity.yaml,/notifications/threads/{thread_id}/subscription,activity/delete-thread-subscription,activity/delete_thread_subscription,delete,,activity,activity,notifications_thread_subscriptions,delete_thread_subscription,delete,,Delete a thread subscription -activity.yaml,/feeds,activity/get-feeds,activity/get_feeds,get,feed,activity,activity,feeds,get_feeds,select,,Get feeds -activity.yaml,/repos/{owner}/{repo}/subscription,activity/get-repo-subscription,activity/get_repo_subscription,get,repository-subscription,activity,activity,repo_subscriptions,get_repo_subscription,select,,Get a repository subscription -activity.yaml,/notifications/threads/{thread_id},activity/get-thread,activity/get_thread,get,thread,activity,activity,notifications,get_thread,select,,Get a thread -activity.yaml,/notifications/threads/{thread_id}/subscription,activity/get-thread-subscription-for-authenticated-user,activity/get_thread_subscription_for_authenticated_user,get,thread-subscription,activity,activity,notifications_thread_subscriptions,get_thread_subscription_for_authenticated_user,select,,Get a thread subscription for the authenticated user -activity.yaml,/users/{username}/events,activity/list-events-for-authenticated-user,activity/list_events_for_authenticated_user,get,event,activity,activity,events,list_events_for_authenticated_user,select,,List events for the authenticated user -activity.yaml,/notifications,activity/list-notifications-for-authenticated-user,activity/list_notifications_for_authenticated_user,get,thread,activity,activity,notifications,list_notifications_for_authenticated_user,select,,List notifications for the authenticated user -activity.yaml,/users/{username}/events/orgs/{org},activity/list-org-events-for-authenticated-user,activity/list_org_events_for_authenticated_user,get,event,activity,activity,events,list_org_events_for_authenticated_user,select,,List organization events for the authenticated user -activity.yaml,/events,activity/list-public-events,activity/list_public_events,get,event,activity,activity,public_events,list_public_events,select,,List public events -activity.yaml,/networks/{owner}/{repo}/events,activity/list-public-events-for-repo-network,activity/list_public_events_for_repo_network,get,event,activity,activity,public_events,list_public_events_for_repo_network,select,,List public events for a network of repositories -activity.yaml,/users/{username}/events/public,activity/list-public-events-for-user,activity/list_public_events_for_user,get,event,activity,activity,public_events,list_public_events_for_user,select,,List public events for a user -activity.yaml,/orgs/{org}/events,activity/list-public-org-events,activity/list_public_org_events,get,event,activity,activity,public_events,list_public_org_events,select,,List public organization events -activity.yaml,/users/{username}/received_events,activity/list-received-events-for-user,activity/list_received_events_for_user,get,event,activity,activity,received_events,list_received_events_for_user,select,,List events received by the authenticated user -activity.yaml,/users/{username}/received_events/public,activity/list-received-public-events-for-user,activity/list_received_public_events_for_user,get,event,activity,activity,received_public_events,list_received_public_events_for_user,select,,List public events received by a user -activity.yaml,/repos/{owner}/{repo}/events,activity/list-repo-events,activity/list_repo_events,get,event,activity,activity,events,list_repo_events,select,,List repository events -activity.yaml,/repos/{owner}/{repo}/notifications,activity/list-repo-notifications-for-authenticated-user,activity/list_repo_notifications_for_authenticated_user,get,thread,activity,activity,notifications,list_repo_notifications_for_authenticated_user,select,,List repository notifications for the authenticated user -activity.yaml,/user/starred,activity/list-repos-starred-by-authenticated-user,activity/list_repos_starred_by_authenticated_user,get,repository,activity,activity,starring,list_repos_starred_by_authenticated_user,select,,List repositories starred by the authenticated user -activity.yaml,/users/{username}/starred,activity/list-repos-starred-by-user,activity/list_repos_starred_by_user,get,starred-repository,activity,activity,starring,list_repos_starred_by_user,select,,List repositories starred by a user -activity.yaml,/users/{username}/subscriptions,activity/list-repos-watched-by-user,activity/list_repos_watched_by_user,get,minimal-repository,activity,activity,watching,list_repos_watched_by_user,select,,List repositories watched by a user -activity.yaml,/repos/{owner}/{repo}/stargazers,activity/list-stargazers-for-repo,activity/list_stargazers_for_repo,get,simple-user,activity,activity,repo_stargazers,list_stargazers_for_repo,select,,List stargazers -activity.yaml,/user/subscriptions,activity/list-watched-repos-for-authenticated-user,activity/list_watched_repos_for_authenticated_user,get,minimal-repository,activity,activity,watching,list_watched_repos_for_authenticated_user,select,,List repositories watched by the authenticated user -activity.yaml,/repos/{owner}/{repo}/subscribers,activity/list-watchers-for-repo,activity/list_watchers_for_repo,get,simple-user,activity,activity,repo_watchers,list_watchers_for_repo,select,,List watchers -activity.yaml,/notifications,activity/mark-notifications-as-read,activity/mark_notifications_as_read,put,,activity,activity,notifications,mark_notifications_as_read,exec,,Mark notifications as read -activity.yaml,/repos/{owner}/{repo}/notifications,activity/mark-repo-notifications-as-read,activity/mark_repo_notifications_as_read,put,,activity,activity,notifications,mark_repo_notifications_as_read,exec,,Mark repository notifications as read -activity.yaml,/notifications/threads/{thread_id},activity/mark-thread-as-done,activity/mark_thread_as_done,delete,,activity,activity,notifications,mark_thread_as_done,delete,,Mark a thread as done -activity.yaml,/notifications/threads/{thread_id},activity/mark-thread-as-read,activity/mark_thread_as_read,patch,,activity,activity,notifications,mark_thread_as_read,update,,Mark a thread as read -activity.yaml,/repos/{owner}/{repo}/subscription,activity/set-repo-subscription,activity/set_repo_subscription,put,repository-subscription,activity,activity,repo_subscriptions,set_repo_subscription,replace,,Set a repository subscription -activity.yaml,/notifications/threads/{thread_id}/subscription,activity/set-thread-subscription,activity/set_thread_subscription,put,thread-subscription,activity,activity,notifications_thread_subscriptions,set_thread_subscription,replace,,Set a thread subscription -activity.yaml,/user/starred/{owner}/{repo},activity/star-repo-for-authenticated-user,activity/star_repo_for_authenticated_user,put,,activity,activity,starring,star_repo_for_authenticated_user,exec,,Star a repository for the authenticated user -activity.yaml,/user/starred/{owner}/{repo},activity/unstar-repo-for-authenticated-user,activity/unstar_repo_for_authenticated_user,delete,,activity,activity,starring,unstar_repo_for_authenticated_user,exec,,Unstar a repository for the authenticated user -agent_tasks.yaml,/agents/repos/{owner}/{repo}/tasks,agent-tasks/create-task,agent_tasks/create_task,post,,agent-tasks,agent_tasks,repo_tasks,create_task,insert,,Create a task -agent_tasks.yaml,/agents/tasks/{task_id},agent-tasks/get-task-by-id,agent_tasks/get_task_by_id,get,,agent-tasks,agent_tasks,tasks,get_task_by_id,select,$.sessions,Get a task by ID -agent_tasks.yaml,/agents/repos/{owner}/{repo}/tasks/{task_id},agent-tasks/get-task-by-repo-and-id,agent_tasks/get_task_by_repo_and_id,get,,agent-tasks,agent_tasks,repo_tasks,get_task_by_repo_and_id,select,$.sessions,Get a task by repo -agent_tasks.yaml,/agents/tasks,agent-tasks/list-tasks,agent_tasks/list_tasks,get,,agent-tasks,agent_tasks,tasks,list_tasks,select,$.tasks,List tasks -agent_tasks.yaml,/agents/repos/{owner}/{repo}/tasks,agent-tasks/list-tasks-for-repo,agent_tasks/list_tasks_for_repo,get,,agent-tasks,agent_tasks,repo_tasks,list_tasks_for_repo,select,$.tasks,List tasks for repository -apps.yaml,/user/installations/{installation_id}/repositories/{repository_id},apps/add-repo-to-installation-for-authenticated-user,apps/add_repo_to_installation_for_authenticated_user,put,,apps,apps,installation_repos,add_repo_to_installation_for_authenticated_user,insert,,Add a repository to an app installation -apps.yaml,/applications/{client_id}/token,apps/check-token,apps/check_token,post,authorization,apps,apps,oauth_applications,check_token,exec,,Check a token -apps.yaml,/app-manifests/{code}/conversions,apps/create-from-manifest,apps/create_from_manifest,post,,apps,apps,apps,create_from_manifest,insert,,Create a GitHub App from a manifest -apps.yaml,/app/installations/{installation_id}/access_tokens,apps/create-installation-access-token,apps/create_installation_access_token,post,installation-token,apps,apps,apps,create_installation_access_token,insert,,Create an installation access token for an app -apps.yaml,/applications/{client_id}/grant,apps/delete-authorization,apps/delete_authorization,delete,,apps,apps,oauth_grants,delete_authorization,delete,,Delete an app authorization -apps.yaml,/app/installations/{installation_id},apps/delete-installation,apps/delete_installation,delete,,apps,apps,apps,delete_installation,delete,,Delete an installation for the authenticated app -apps.yaml,/applications/{client_id}/token,apps/delete-token,apps/delete_token,delete,,apps,apps,oauth_applications,delete_token,delete,,Delete an app token -apps.yaml,/app,apps/get-authenticated,apps/get_authenticated,get,integration,apps,apps,integrations,get_authenticated,select,,Get the authenticated app -apps.yaml,/apps/{app_slug},apps/get-by-slug,apps/get_by_slug,get,integration,apps,apps,integrations,get_by_slug,select,,Get an app -apps.yaml,/app/installations/{installation_id},apps/get-installation,apps/get_installation,get,installation,apps,apps,apps,get_installation,select,,Get an installation for the authenticated app -apps.yaml,/orgs/{org}/installation,apps/get-org-installation,apps/get_org_installation,get,installation,apps,apps,apps,get_org_installation,select,,Get an organization installation for the authenticated app -apps.yaml,/repos/{owner}/{repo}/installation,apps/get-repo-installation,apps/get_repo_installation,get,installation,apps,apps,apps,get_repo_installation,select,,Get a repository installation for the authenticated app -apps.yaml,/marketplace_listing/accounts/{account_id},apps/get-subscription-plan-for-account,apps/get_subscription_plan_for_account,get,marketplace-purchase,apps,apps,marketplace_subs,get_subscription_plan_for_account,select,,Get a subscription plan for an account -apps.yaml,/marketplace_listing/stubbed/accounts/{account_id},apps/get-subscription-plan-for-account-stubbed,apps/get_subscription_plan_for_account_stubbed,get,marketplace-purchase,apps,apps,marketplace_subs_stubbed,get_subscription_plan_for_account_stubbed,select,,Get a subscription plan for an account (stubbed) -apps.yaml,/users/{username}/installation,apps/get-user-installation,apps/get_user_installation,get,installation,apps,apps,apps,get_user_installation,select,,Get a user installation for the authenticated app -apps.yaml,/app/hook/config,apps/get-webhook-config-for-app,apps/get_webhook_config_for_app,get,webhook-config,apps,apps,webhook_config,get_webhook_config_for_app,select,,Get a webhook configuration for an app -apps.yaml,/app/hook/deliveries/{delivery_id},apps/get-webhook-delivery,apps/get_webhook_delivery,get,hook-delivery,apps,apps,webhook_delivery,get_webhook_delivery,select,,Get a delivery for an app webhook -apps.yaml,/marketplace_listing/plans/{plan_id}/accounts,apps/list-accounts-for-plan,apps/list_accounts_for_plan,get,marketplace-purchase,apps,apps,marketplace_subs,list_accounts_for_plan,select,,List accounts for a plan -apps.yaml,/marketplace_listing/stubbed/plans/{plan_id}/accounts,apps/list-accounts-for-plan-stubbed,apps/list_accounts_for_plan_stubbed,get,marketplace-purchase,apps,apps,marketplace_subs_stubbed,list_accounts_for_plan_stubbed,select,,List accounts for a plan (stubbed) -apps.yaml,/user/installations/{installation_id}/repositories,apps/list-installation-repos-for-authenticated-user,apps/list_installation_repos_for_authenticated_user,get,,apps,apps,installation_repos,list_installation_repos_for_authenticated_user,select,$.repositories,List repositories accessible to the user access token -apps.yaml,/app/installation-requests,apps/list-installation-requests-for-authenticated-app,apps/list_installation_requests_for_authenticated_app,get,integration-installation-request,apps,apps,integration_installation_requests,list_installation_requests_for_authenticated_app,select,,List installation requests for the authenticated app -apps.yaml,/app/installations,apps/list-installations,apps/list_installations,get,installation,apps,apps,apps,list_installations,select,,List installations for the authenticated app -apps.yaml,/user/installations,apps/list-installations-for-authenticated-user,apps/list_installations_for_authenticated_user,get,,apps,apps,installations,list_installations_for_authenticated_user,select,$.installations,List app installations accessible to the user access token -apps.yaml,/marketplace_listing/plans,apps/list-plans,apps/list_plans,get,marketplace-listing-plan,apps,apps,marketplace_listings,list_plans,select,,List plans -apps.yaml,/marketplace_listing/stubbed/plans,apps/list-plans-stubbed,apps/list_plans_stubbed,get,marketplace-listing-plan,apps,apps,marketplace_listings_stubbed,list_plans_stubbed,select,,List plans (stubbed) -apps.yaml,/installation/repositories,apps/list-repos-accessible-to-installation,apps/list_repos_accessible_to_installation,get,,apps,apps,installation_repos,list_repos_accessible_to_installation,select,$.repositories,List repositories accessible to the app installation -apps.yaml,/user/marketplace_purchases,apps/list-subscriptions-for-authenticated-user,apps/list_subscriptions_for_authenticated_user,get,user-marketplace-purchase,apps,apps,marketplace_users_subs,list_subscriptions_for_authenticated_user,select,,List subscriptions for the authenticated user -apps.yaml,/user/marketplace_purchases/stubbed,apps/list-subscriptions-for-authenticated-user-stubbed,apps/list_subscriptions_for_authenticated_user_stubbed,get,user-marketplace-purchase,apps,apps,marketplace_users_subs_stubbed,list_subscriptions_for_authenticated_user_stubbed,select,,List subscriptions for the authenticated user (stubbed) -apps.yaml,/app/hook/deliveries,apps/list-webhook-deliveries,apps/list_webhook_deliveries,get,hook-delivery-item,apps,apps,webhook_deliveries,list_webhook_deliveries,select,,List deliveries for an app webhook -apps.yaml,/app/hook/deliveries/{delivery_id}/attempts,apps/redeliver-webhook-delivery,apps/redeliver_webhook_delivery,post,,apps,apps,webhook_delivery,redeliver_webhook_delivery,exec,,Redeliver a delivery for an app webhook -apps.yaml,/user/installations/{installation_id}/repositories/{repository_id},apps/remove-repo-from-installation-for-authenticated-user,apps/remove_repo_from_installation_for_authenticated_user,delete,,apps,apps,installation_repos,remove_repo_from_installation_for_authenticated_user,delete,,Remove a repository from an app installation -apps.yaml,/applications/{client_id}/token,apps/reset-token,apps/reset_token,patch,authorization,apps,apps,oauth_applications,reset_token,exec,,Reset a token -apps.yaml,/installation/token,apps/revoke-installation-access-token,apps/revoke_installation_access_token,delete,,apps,apps,installations,revoke_installation_access_token,delete,,Revoke an installation access token -apps.yaml,/applications/{client_id}/token/scoped,apps/scope-token,apps/scope_token,post,authorization,apps,apps,apps,scope_token,exec,,Create a scoped access token -apps.yaml,/app/installations/{installation_id}/suspended,apps/suspend-installation,apps/suspend_installation,put,,apps,apps,apps,suspend_installation,exec,,Suspend an app installation -apps.yaml,/app/installations/{installation_id}/suspended,apps/unsuspend-installation,apps/unsuspend_installation,delete,,apps,apps,apps,unsuspend_installation,exec,,Unsuspend an app installation -apps.yaml,/app/hook/config,apps/update-webhook-config-for-app,apps/update_webhook_config_for_app,patch,webhook-config,apps,apps,webhook_config,update_webhook_config_for_app,update,,Update a webhook configuration for an app -billing.yaml,/organizations/{org}/settings/billing/budgets/{budget_id},billing/delete-budget-org,billing/delete_budget_org,delete,,billing,billing,org_budgets,delete_budget_org,delete,,Delete a budget for an organization -billing.yaml,/organizations/{org}/settings/billing/budgets,billing/get-all-budgets-org,billing/get_all_budgets_org,get,,billing,billing,org_budgets,get_all_budgets_org,select,,Get all budgets for an organization -billing.yaml,/organizations/{org}/settings/billing/budgets/{budget_id},billing/get-budget-org,billing/get_budget_org,get,,billing,billing,org_budgets,get_budget_org,select,,Get a budget by ID for an organization -billing.yaml,/organizations/{org}/settings/billing/premium_request/usage,billing/get-github-billing-premium-request-usage-report-org,billing/get_github_billing_premium_request_usage_report_org,get,,billing,billing,org_premium_request_usage,get_github_billing_premium_request_usage_report_org,select,,Get billing premium request usage report for an organization -billing.yaml,/users/{username}/settings/billing/premium_request/usage,billing/get-github-billing-premium-request-usage-report-user,billing/get_github_billing_premium_request_usage_report_user,get,,billing,billing,premium_request_usage,get_github_billing_premium_request_usage_report_user,select,,Get billing premium request usage report for a user -billing.yaml,/organizations/{org}/settings/billing/usage,billing/get-github-billing-usage-report-org,billing/get_github_billing_usage_report_org,get,,billing,billing,org_usage,get_github_billing_usage_report_org,select,$.usageItems,Get billing usage report for an organization -billing.yaml,/users/{username}/settings/billing/usage,billing/get-github-billing-usage-report-user,billing/get_github_billing_usage_report_user,get,,billing,billing,usage,get_github_billing_usage_report_user,select,$.usageItems,Get billing usage report for a user -billing.yaml,/organizations/{org}/settings/billing/usage/summary,billing/get-github-billing-usage-summary-report-org,billing/get_github_billing_usage_summary_report_org,get,,billing,billing,org_usage_summary,get_github_billing_usage_summary_report_org,select,,Get billing usage summary for an organization -billing.yaml,/users/{username}/settings/billing/usage/summary,billing/get-github-billing-usage-summary-report-user,billing/get_github_billing_usage_summary_report_user,get,,billing,billing,usage_summary,get_github_billing_usage_summary_report_user,select,,Get billing usage summary for a user -billing.yaml,/organizations/{org}/settings/billing/budgets/{budget_id},billing/update-budget-org,billing/update_budget_org,patch,,billing,billing,org_budgets,update_budget_org,update,,Update a budget for an organization -campaigns.yaml,/orgs/{org}/campaigns,campaigns/create-campaign,campaigns/create_campaign,post,,campaigns,campaigns,org_campaigns,create_campaign,insert,,Create a campaign for an organization -campaigns.yaml,/orgs/{org}/campaigns/{campaign_number},campaigns/delete-campaign,campaigns/delete_campaign,delete,,campaigns,campaigns,org_campaigns,delete_campaign,delete,,Delete a campaign for an organization -campaigns.yaml,/orgs/{org}/campaigns/{campaign_number},campaigns/get-campaign-summary,campaigns/get_campaign_summary,get,,campaigns,campaigns,org_campaigns,get_campaign_summary,select,,Get a campaign for an organization -campaigns.yaml,/orgs/{org}/campaigns,campaigns/list-org-campaigns,campaigns/list_org_campaigns,get,,campaigns,campaigns,org_campaigns,list_org_campaigns,select,,List campaigns for an organization -campaigns.yaml,/orgs/{org}/campaigns/{campaign_number},campaigns/update-campaign,campaigns/update_campaign,patch,,campaigns,campaigns,org_campaigns,update_campaign,update,,Update a campaign -checks.yaml,/repos/{owner}/{repo}/check-runs,checks/create,checks/create,post,check-run,checks,checks,runs,create,insert,,Create a check run -checks.yaml,/repos/{owner}/{repo}/check-suites,checks/create-suite,checks/create_suite,post,check-suite,checks,checks,suites,create_suite,insert,,Create a check suite -checks.yaml,/repos/{owner}/{repo}/check-runs/{check_run_id},checks/get,checks/get,get,check-run,checks,checks,runs,get,select,,Get a check run -checks.yaml,/repos/{owner}/{repo}/check-suites/{check_suite_id},checks/get-suite,checks/get_suite,get,check-suite,checks,checks,suites,get_suite,select,,Get a check suite -checks.yaml,/repos/{owner}/{repo}/check-runs/{check_run_id}/annotations,checks/list-annotations,checks/list_annotations,get,check-annotation,checks,checks,annotations,list_annotations,select,,List check run annotations -checks.yaml,/repos/{owner}/{repo}/commits/{ref}/check-runs,checks/list-for-ref,checks/list_for_ref,get,,checks,checks,runs,list_for_ref,select,$.check_runs,List check runs for a Git reference -checks.yaml,/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs,checks/list-for-suite,checks/list_for_suite,get,,checks,checks,runs,list_for_suite,select,$.check_runs,List check runs in a check suite -checks.yaml,/repos/{owner}/{repo}/commits/{ref}/check-suites,checks/list-suites-for-ref,checks/list_suites_for_ref,get,,checks,checks,suites,list_suites_for_ref,select,$.check_suites,List check suites for a Git reference -checks.yaml,/repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest,checks/rerequest-run,checks/rerequest_run,post,empty-object,checks,checks,runs,rerequest_run,exec,,Rerequest a check run -checks.yaml,/repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest,checks/rerequest-suite,checks/rerequest_suite,post,empty-object,checks,checks,suites,rerequest_suite,exec,,Rerequest a check suite -checks.yaml,/repos/{owner}/{repo}/check-suites/preferences,checks/set-suites-preferences,checks/set_suites_preferences,patch,check-suite-preference,checks,checks,suites,set_suites_preferences,update,,Update repository preferences for check suites -checks.yaml,/repos/{owner}/{repo}/check-runs/{check_run_id},checks/update,checks/update,patch,check-run,checks,checks,runs,update,update,,Update a check run -classroom.yaml,/classrooms/{classroom_id},classroom/get-a-classroom,classroom/get_a_classroom,get,,classroom,classroom,classrooms,get_a_classroom,select,,Get a classroom -classroom.yaml,/assignments/{assignment_id},classroom/get-an-assignment,classroom/get_an_assignment,get,,classroom,classroom,assignments,get_an_assignment,select,,Get an assignment -classroom.yaml,/assignments/{assignment_id}/grades,classroom/get-assignment-grades,classroom/get_assignment_grades,get,,classroom,classroom,assignment_grades,get_assignment_grades,select,,Get assignment grades -classroom.yaml,/assignments/{assignment_id}/accepted_assignments,classroom/list-accepted-assignments-for-an-assignment,classroom/list_accepted_assignments_for_an_assignment,get,,classroom,classroom,assignment_accepted_assignments,list_accepted_assignments_for_an_assignment,select,,List accepted assignments for an assignment -classroom.yaml,/classrooms/{classroom_id}/assignments,classroom/list-assignments-for-a-classroom,classroom/list_assignments_for_a_classroom,get,,classroom,classroom,classroom_assignments,list_assignments_for_a_classroom,select,,List assignments for a classroom -classroom.yaml,/classrooms,classroom/list-classrooms,classroom/list_classrooms,get,,classroom,classroom,classrooms,list_classrooms,select,,List classrooms -code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits,code-scanning/commit-autofix,code_scanning/commit_autofix,post,,code-scanning,code_scanning,alert_autofixes,commit_autofix,exec,,Commit an autofix for a code scanning alert -code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix,code-scanning/create-autofix,code_scanning/create_autofix,post,,code-scanning,code_scanning,alert_autofixes,create_autofix,insert,,Create an autofix for a code scanning alert -code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/codeql/variant-analyses,code-scanning/create-variant-analysis,code_scanning/create_variant_analysis,post,,code-scanning,code_scanning,codeql_variant_analyses,create_variant_analysis,insert,,Create a CodeQL variant analysis -code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id},code-scanning/delete-analysis,code_scanning/delete_analysis,delete,code-scanning-analysis-deletion,code-scanning,code_scanning,analysis,delete_analysis,delete,,Delete a code scanning analysis from a repository -code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/codeql/databases/{language},code-scanning/delete-codeql-database,code_scanning/delete_codeql_database,delete,,code-scanning,code_scanning,codeql_databases,delete_codeql_database,delete,,Delete a CodeQL database -code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/alerts/{alert_number},code-scanning/get-alert,code_scanning/get_alert,get,code-scanning-alert,code-scanning,code_scanning,alerts,get_alert,select,,Get a code scanning alert -code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id},code-scanning/get-analysis,code_scanning/get_analysis,get,code-scanning-analysis,code-scanning,code_scanning,analysis,get_analysis,select,,Get a code scanning analysis for a repository -code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix,code-scanning/get-autofix,code_scanning/get_autofix,get,,code-scanning,code_scanning,alert_autofixes,get_autofix,select,,Get the status of an autofix for a code scanning alert -code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/codeql/databases/{language},code-scanning/get-codeql-database,code_scanning/get_codeql_database,get,code-scanning-codeql-database,code-scanning,code_scanning,codeql_databases,get_codeql_database,select,,Get a CodeQL database for a repository -code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/default-setup,code-scanning/get-default-setup,code_scanning/get_default_setup,get,code-scanning-default-setup,code-scanning,code_scanning,default_setup,get_default_setup,select,,Get a code scanning default setup configuration -code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id},code-scanning/get-sarif,code_scanning/get_sarif,get,code-scanning-sarifs-status,code-scanning,code_scanning,sarifs,get_sarif,select,,Get information about a SARIF upload -code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id},code-scanning/get-variant-analysis,code_scanning/get_variant_analysis,get,,code-scanning,code_scanning,codeql_variant_analyses,get_variant_analysis,select,,Get the summary of a CodeQL variant analysis -code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name},code-scanning/get-variant-analysis-repo-task,code_scanning/get_variant_analysis_repo_task,get,,code-scanning,code_scanning,codeql_variant_analysis_repo_tasks,get_variant_analysis_repo_task,select,,Get the analysis status of a repository in a CodeQL variant analysis -code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances,code-scanning/list-alert-instances,code_scanning/list_alert_instances,get,code-scanning-alert-instance,code-scanning,code_scanning,alert_instances,list_alert_instances,select,,List instances of a code scanning alert -code_scanning.yaml,/orgs/{org}/code-scanning/alerts,code-scanning/list-alerts-for-org,code_scanning/list_alerts_for_org,get,code-scanning-organization-alert-items,code-scanning,code_scanning,alert_items,list_alerts_for_org,select,,List code scanning alerts for an organization -code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/alerts,code-scanning/list-alerts-for-repo,code_scanning/list_alerts_for_repo,get,code-scanning-alert-items,code-scanning,code_scanning,alert_items,list_alerts_for_repo,select,,List code scanning alerts for a repository -code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/codeql/databases,code-scanning/list-codeql-databases,code_scanning/list_codeql_databases,get,code-scanning-codeql-database,code-scanning,code_scanning,codeql_databases,list_codeql_databases,select,,List CodeQL databases for a repository -code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/analyses,code-scanning/list-recent-analyses,code_scanning/list_recent_analyses,get,code-scanning-analysis,code-scanning,code_scanning,analysis,list_recent_analyses,select,,List code scanning analyses for a repository -code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/alerts/{alert_number},code-scanning/update-alert,code_scanning/update_alert,patch,code-scanning-alert,code-scanning,code_scanning,alerts,update_alert,update,,Update a code scanning alert -code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/default-setup,code-scanning/update-default-setup,code_scanning/update_default_setup,patch,empty-object,code-scanning,code_scanning,default_setup,update_default_setup,update,,Update a code scanning default setup configuration -code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/sarifs,code-scanning/upload-sarif,code_scanning/upload_sarif,post,code-scanning-sarifs-receipt,code-scanning,code_scanning,sarifs,upload_sarif,update,,Upload an analysis as SARIF data -code_security.yaml,/orgs/{org}/code-security/configurations/{configuration_id}/attach,code-security/attach-configuration,code_security/attach_configuration,post,,code-security,code_security,code_security_configurations,attach_configuration,insert,,Attach a configuration to repositories -code_security.yaml,/enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach,code-security/attach-enterprise-configuration,code_security/attach_enterprise_configuration,post,,code-security,code_security,code_security_configurations,attach_enterprise_configuration,insert,,Attach an enterprise configuration to repositories -code_security.yaml,/orgs/{org}/code-security/configurations,code-security/create-configuration,code_security/create_configuration,post,,code-security,code_security,code_security_configurations,create_configuration,insert,,Create a code security configuration -code_security.yaml,/enterprises/{enterprise}/code-security/configurations,code-security/create-configuration-for-enterprise,code_security/create_configuration_for_enterprise,post,,code-security,code_security,code_security_configurations,create_configuration_for_enterprise,insert,,Create a code security configuration for an enterprise -code_security.yaml,/orgs/{org}/code-security/configurations/{configuration_id},code-security/delete-configuration,code_security/delete_configuration,delete,,code-security,code_security,code_security_configurations,delete_configuration,delete,,Delete a code security configuration -code_security.yaml,/enterprises/{enterprise}/code-security/configurations/{configuration_id},code-security/delete-configuration-for-enterprise,code_security/delete_configuration_for_enterprise,delete,,code-security,code_security,code_security_configurations,delete_configuration_for_enterprise,delete,,Delete a code security configuration for an enterprise -code_security.yaml,/orgs/{org}/code-security/configurations/detach,code-security/detach-configuration,code_security/detach_configuration,delete,,code-security,code_security,code_security_configurations,detach_configuration,delete,,Detach configurations from repositories -code_security.yaml,/orgs/{org}/code-security/configurations/{configuration_id},code-security/get-configuration,code_security/get_configuration,get,,code-security,code_security,code_security_configurations,get_configuration,select,,Get a code security configuration -code_security.yaml,/repos/{owner}/{repo}/code-security-configuration,code-security/get-configuration-for-repository,code_security/get_configuration_for_repository,get,,code-security,code_security,repo_code_security_configuration,get_configuration_for_repository,select,,Get the code security configuration associated with a repository -code_security.yaml,/enterprises/{enterprise}/code-security/configurations,code-security/get-configurations-for-enterprise,code_security/get_configurations_for_enterprise,get,,code-security,code_security,code_security_configurations,get_configurations_for_enterprise,select,,Get code security configurations for an enterprise -code_security.yaml,/orgs/{org}/code-security/configurations,code-security/get-configurations-for-org,code_security/get_configurations_for_org,get,,code-security,code_security,code_security_configurations,get_configurations_for_org,select,,Get code security configurations for an organization -code_security.yaml,/orgs/{org}/code-security/configurations/defaults,code-security/get-default-configurations,code_security/get_default_configurations,get,,code-security,code_security,code_security_default_configurations,get_default_configurations,select,,Get default code security configurations -code_security.yaml,/enterprises/{enterprise}/code-security/configurations/defaults,code-security/get-default-configurations-for-enterprise,code_security/get_default_configurations_for_enterprise,get,,code-security,code_security,code_security_default_configurations,get_default_configurations_for_enterprise,select,,Get default code security configurations for an enterprise -code_security.yaml,/orgs/{org}/code-security/configurations/{configuration_id}/repositories,code-security/get-repositories-for-configuration,code_security/get_repositories_for_configuration,get,,code-security,code_security,code_security_configuration_repos,get_repositories_for_configuration,select,,Get repositories associated with a code security configuration -code_security.yaml,/enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories,code-security/get-repositories-for-enterprise-configuration,code_security/get_repositories_for_enterprise_configuration,get,,code-security,code_security,code_security_configuration_repos,get_repositories_for_enterprise_configuration,select,,Get repositories associated with an enterprise code security configuration -code_security.yaml,/enterprises/{enterprise}/code-security/configurations/{configuration_id},code-security/get-single-configuration-for-enterprise,code_security/get_single_configuration_for_enterprise,get,,code-security,code_security,code_security_configurations,get_single_configuration_for_enterprise,select,,Retrieve a code security configuration of an enterprise -code_security.yaml,/orgs/{org}/code-security/configurations/{configuration_id}/defaults,code-security/set-configuration-as-default,code_security/set_configuration_as_default,put,,code-security,code_security,code_security_configurations,set_configuration_as_default,replace,,Set a code security configuration as a default for an organization -code_security.yaml,/enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults,code-security/set-configuration-as-default-for-enterprise,code_security/set_configuration_as_default_for_enterprise,put,,code-security,code_security,code_security_configurations,set_configuration_as_default_for_enterprise,replace,,Set a code security configuration as a default for an enterprise -code_security.yaml,/orgs/{org}/code-security/configurations/{configuration_id},code-security/update-configuration,code_security/update_configuration,patch,,code-security,code_security,code_security_configurations,update_configuration,update,,Update a code security configuration -code_security.yaml,/enterprises/{enterprise}/code-security/configurations/{configuration_id},code-security/update-enterprise-configuration,code_security/update_enterprise_configuration,patch,,code-security,code_security,code_security_configurations,update_enterprise_configuration,update,,Update a custom code security configuration for an enterprise -codes_of_conduct.yaml,/codes_of_conduct,codes-of-conduct/get-all-codes-of-conduct,codes_of_conduct/get_all_codes_of_conduct,get,code-of-conduct,codes-of-conduct,codes_of_conduct,codes_of_conduct,get_all_codes_of_conduct,select,,Get all codes of conduct -codes_of_conduct.yaml,/codes_of_conduct/{key},codes-of-conduct/get-conduct-code,codes_of_conduct/get_conduct_code,get,code-of-conduct,codes-of-conduct,codes_of_conduct,codes_of_conduct,get_conduct_code,select,,Get a code of conduct -codespaces.yaml,/user/codespaces/secrets/{secret_name}/repositories/{repository_id},codespaces/add-repository-for-secret-for-authenticated-user,codespaces/add_repository_for_secret_for_authenticated_user,put,,codespaces,codespaces,user_secrets,add_repository_for_secret_for_authenticated_user,insert,,Add a selected repository to a user secret -codespaces.yaml,/orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id},codespaces/add-selected-repo-to-org-secret,codespaces/add_selected_repo_to_org_secret,put,,codespaces,codespaces,org_secrets_repos,add_selected_repo_to_org_secret,insert,,Add selected repository to an organization secret -codespaces.yaml,/repos/{owner}/{repo}/codespaces/permissions_check,codespaces/check-permissions-for-devcontainer,codespaces/check_permissions_for_devcontainer,get,,codespaces,codespaces,devcontainer_permissions,check_permissions_for_devcontainer,select,,Check if permissions defined by a devcontainer have been accepted by the authenticated user -codespaces.yaml,/user/codespaces/{codespace_name}/machines,codespaces/codespace-machines-for-authenticated-user,codespaces/codespace_machines_for_authenticated_user,get,,codespaces,codespaces,machines,codespace_machines_for_authenticated_user,select,,List machine types for a codespace -codespaces.yaml,/user/codespaces,codespaces/create-for-authenticated-user,codespaces/create_for_authenticated_user,post,codespace,codespaces,codespaces,codespaces,create_for_authenticated_user,insert,,Create a codespace for the authenticated user -codespaces.yaml,/orgs/{org}/codespaces/secrets/{secret_name},codespaces/create-or-update-org-secret,codespaces/create_or_update_org_secret,put,empty-object,codespaces,codespaces,organization_secrets,create_or_update_org_secret,insert,,Create or update an organization secret -codespaces.yaml,/repos/{owner}/{repo}/codespaces/secrets/{secret_name},codespaces/create-or-update-repo-secret,codespaces/create_or_update_repo_secret,put,empty-object,codespaces,codespaces,repository_secrets,create_or_update_repo_secret,insert,,Create or update a repository secret -codespaces.yaml,/user/codespaces/secrets/{secret_name},codespaces/create-or-update-secret-for-authenticated-user,codespaces/create_or_update_secret_for_authenticated_user,put,empty-object,codespaces,codespaces,secrets,create_or_update_secret_for_authenticated_user,insert,,Create or update a secret for the authenticated user -codespaces.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/codespaces,codespaces/create-with-pr-for-authenticated-user,codespaces/create_with_pr_for_authenticated_user,post,codespace,codespaces,codespaces,codespaces,create_with_pr_for_authenticated_user,insert,,Create a codespace from a pull request -codespaces.yaml,/repos/{owner}/{repo}/codespaces,codespaces/create-with-repo-for-authenticated-user,codespaces/create_with_repo_for_authenticated_user,post,codespace,codespaces,codespaces,codespaces,create_with_repo_for_authenticated_user,insert,,Create a codespace in a repository -codespaces.yaml,/orgs/{org}/codespaces/access/selected_users,codespaces/delete-codespaces-access-users,codespaces/delete_codespaces_access_users,delete,,codespaces,codespaces,organizations,delete_codespaces_access_users,delete,,Remove users from Codespaces access for an organization -codespaces.yaml,/user/codespaces/{codespace_name},codespaces/delete-for-authenticated-user,codespaces/delete_for_authenticated_user,delete,,codespaces,codespaces,codespaces,delete_for_authenticated_user,delete,,Delete a codespace for the authenticated user -codespaces.yaml,/orgs/{org}/members/{username}/codespaces/{codespace_name},codespaces/delete-from-organization,codespaces/delete_from_organization,delete,,codespaces,codespaces,organizations,delete_from_organization,delete,,Delete a codespace from the organization -codespaces.yaml,/orgs/{org}/codespaces/secrets/{secret_name},codespaces/delete-org-secret,codespaces/delete_org_secret,delete,,codespaces,codespaces,organization_secrets,delete_org_secret,delete,,Delete an organization secret -codespaces.yaml,/repos/{owner}/{repo}/codespaces/secrets/{secret_name},codespaces/delete-repo-secret,codespaces/delete_repo_secret,delete,,codespaces,codespaces,repository_secrets,delete_repo_secret,delete,,Delete a repository secret -codespaces.yaml,/user/codespaces/secrets/{secret_name},codespaces/delete-secret-for-authenticated-user,codespaces/delete_secret_for_authenticated_user,delete,,codespaces,codespaces,secrets,delete_secret_for_authenticated_user,delete,,Delete a secret for the authenticated user -codespaces.yaml,/user/codespaces/{codespace_name}/exports,codespaces/export-for-authenticated-user,codespaces/export_for_authenticated_user,post,codespace-export-details,codespaces,codespaces,codespaces,export_for_authenticated_user,exec,,Export a codespace for the authenticated user -codespaces.yaml,/orgs/{org}/members/{username}/codespaces,codespaces/get-codespaces-for-user-in-org,codespaces/get_codespaces_for_user_in_org,get,,codespaces,codespaces,organizations,get_codespaces_for_user_in_org,select,,List codespaces for a user in organization -codespaces.yaml,/user/codespaces/{codespace_name}/exports/{export_id},codespaces/get-export-details-for-authenticated-user,codespaces/get_export_details_for_authenticated_user,get,codespace-export-details,codespaces,codespaces,codespace_export_details,get_export_details_for_authenticated_user,select,,Get details about a codespace export -codespaces.yaml,/user/codespaces/{codespace_name},codespaces/get-for-authenticated-user,codespaces/get_for_authenticated_user,get,codespace,codespaces,codespaces,codespaces,get_for_authenticated_user,select,,Get a codespace for the authenticated user -codespaces.yaml,/orgs/{org}/codespaces/secrets/public-key,codespaces/get-org-public-key,codespaces/get_org_public_key,get,codespaces-public-key,codespaces,codespaces,public_keys,get_org_public_key,select,,Get an organization public key -codespaces.yaml,/orgs/{org}/codespaces/secrets/{secret_name},codespaces/get-org-secret,codespaces/get_org_secret,get,codespaces-org-secret,codespaces,codespaces,organization_secrets,get_org_secret,select,,Get an organization secret -codespaces.yaml,/user/codespaces/secrets/public-key,codespaces/get-public-key-for-authenticated-user,codespaces/get_public_key_for_authenticated_user,get,codespaces-user-public-key,codespaces,codespaces,user_public_keys,get_public_key_for_authenticated_user,select,,Get public key for the authenticated user -codespaces.yaml,/repos/{owner}/{repo}/codespaces/secrets/public-key,codespaces/get-repo-public-key,codespaces/get_repo_public_key,get,codespaces-public-key,codespaces,codespaces,public_keys,get_repo_public_key,select,,Get a repository public key -codespaces.yaml,/repos/{owner}/{repo}/codespaces/secrets/{secret_name},codespaces/get-repo-secret,codespaces/get_repo_secret,get,repo-codespaces-secret,codespaces,codespaces,repository_secrets,get_repo_secret,select,,Get a repository secret -codespaces.yaml,/user/codespaces/secrets/{secret_name},codespaces/get-secret-for-authenticated-user,codespaces/get_secret_for_authenticated_user,get,codespaces-secret,codespaces,codespaces,secrets,get_secret_for_authenticated_user,select,,Get a secret for the authenticated user -codespaces.yaml,/repos/{owner}/{repo}/codespaces/devcontainers,codespaces/list-devcontainers-in-repository-for-authenticated-user,codespaces/list_devcontainers_in_repository_for_authenticated_user,get,,codespaces,codespaces,devcontainers,list_devcontainers_in_repository_for_authenticated_user,select,$.devcontainers,List devcontainer configurations in a repository for the authenticated user -codespaces.yaml,/user/codespaces,codespaces/list-for-authenticated-user,codespaces/list_for_authenticated_user,get,,codespaces,codespaces,codespaces,list_for_authenticated_user,select,$.codespaces,List codespaces for the authenticated user -codespaces.yaml,/orgs/{org}/codespaces,codespaces/list-in-organization,codespaces/list_in_organization,get,,codespaces,codespaces,organizations,list_in_organization,select,$.codespaces,List codespaces for the organization -codespaces.yaml,/repos/{owner}/{repo}/codespaces,codespaces/list-in-repository-for-authenticated-user,codespaces/list_in_repository_for_authenticated_user,get,,codespaces,codespaces,codespaces,list_in_repository_for_authenticated_user,select,$.codespaces,List codespaces in a repository for the authenticated user -codespaces.yaml,/orgs/{org}/codespaces/secrets,codespaces/list-org-secrets,codespaces/list_org_secrets,get,,codespaces,codespaces,organization_secrets,list_org_secrets,select,$.secrets,List organization secrets -codespaces.yaml,/repos/{owner}/{repo}/codespaces/secrets,codespaces/list-repo-secrets,codespaces/list_repo_secrets,get,,codespaces,codespaces,repository_secrets,list_repo_secrets,select,$.secrets,List repository secrets -codespaces.yaml,/user/codespaces/secrets/{secret_name}/repositories,codespaces/list-repositories-for-secret-for-authenticated-user,codespaces/list_repositories_for_secret_for_authenticated_user,get,,codespaces,codespaces,user_secrets,list_repositories_for_secret_for_authenticated_user,select,$.repositories,List selected repositories for a user secret -codespaces.yaml,/user/codespaces/secrets,codespaces/list-secrets-for-authenticated-user,codespaces/list_secrets_for_authenticated_user,get,,codespaces,codespaces,secrets,list_secrets_for_authenticated_user,select,$.secrets,List secrets for the authenticated user -codespaces.yaml,/orgs/{org}/codespaces/secrets/{secret_name}/repositories,codespaces/list-selected-repos-for-org-secret,codespaces/list_selected_repos_for_org_secret,get,,codespaces,codespaces,org_secrets_repos,list_selected_repos_for_org_secret,select,$.repositories,List selected repositories for an organization secret -codespaces.yaml,/repos/{owner}/{repo}/codespaces/new,codespaces/pre-flight-with-repo-for-authenticated-user,codespaces/pre_flight_with_repo_for_authenticated_user,get,,codespaces,codespaces,codespaces,pre_flight_with_repo_for_authenticated_user,exec,,Get default attributes for a codespace -codespaces.yaml,/user/codespaces/{codespace_name}/publish,codespaces/publish-for-authenticated-user,codespaces/publish_for_authenticated_user,post,codespace-with-full-repository,codespaces,codespaces,codespaces,publish_for_authenticated_user,exec,,Create a repository from an unpublished codespace -codespaces.yaml,/user/codespaces/secrets/{secret_name}/repositories/{repository_id},codespaces/remove-repository-for-secret-for-authenticated-user,codespaces/remove_repository_for_secret_for_authenticated_user,delete,,codespaces,codespaces,user_secrets,remove_repository_for_secret_for_authenticated_user,delete,,Remove a selected repository from a user secret -codespaces.yaml,/orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id},codespaces/remove-selected-repo-from-org-secret,codespaces/remove_selected_repo_from_org_secret,delete,,codespaces,codespaces,org_secrets_repos,remove_selected_repo_from_org_secret,delete,,Remove selected repository from an organization secret -codespaces.yaml,/repos/{owner}/{repo}/codespaces/machines,codespaces/repo-machines-for-authenticated-user,codespaces/repo_machines_for_authenticated_user,get,,codespaces,codespaces,machines,repo_machines_for_authenticated_user,select,,List available machine types for a repository -codespaces.yaml,/orgs/{org}/codespaces/access,codespaces/set-codespaces-access,codespaces/set_codespaces_access,put,,codespaces,codespaces,organizations,set_codespaces_access,replace,,Manage access control for organization codespaces -codespaces.yaml,/orgs/{org}/codespaces/access/selected_users,codespaces/set-codespaces-access-users,codespaces/set_codespaces_access_users,post,,codespaces,codespaces,organizations,set_codespaces_access_users,exec,,Add users to Codespaces access for an organization -codespaces.yaml,/user/codespaces/secrets/{secret_name}/repositories,codespaces/set-repositories-for-secret-for-authenticated-user,codespaces/set_repositories_for_secret_for_authenticated_user,put,,codespaces,codespaces,user_secrets,set_repositories_for_secret_for_authenticated_user,replace,,Set selected repositories for a user secret -codespaces.yaml,/orgs/{org}/codespaces/secrets/{secret_name}/repositories,codespaces/set-selected-repos-for-org-secret,codespaces/set_selected_repos_for_org_secret,put,,codespaces,codespaces,org_secrets_repos,set_selected_repos_for_org_secret,replace,,Set selected repositories for an organization secret -codespaces.yaml,/user/codespaces/{codespace_name}/start,codespaces/start-for-authenticated-user,codespaces/start_for_authenticated_user,post,codespace,codespaces,codespaces,codespaces,start_for_authenticated_user,exec,,Start a codespace for the authenticated user -codespaces.yaml,/user/codespaces/{codespace_name}/stop,codespaces/stop-for-authenticated-user,codespaces/stop_for_authenticated_user,post,codespace,codespaces,codespaces,codespaces,stop_for_authenticated_user,exec,,Stop a codespace for the authenticated user -codespaces.yaml,/orgs/{org}/members/{username}/codespaces/{codespace_name}/stop,codespaces/stop-in-organization,codespaces/stop_in_organization,post,codespace,codespaces,codespaces,organizations,stop_in_organization,exec,,Stop a codespace for an organization user -codespaces.yaml,/user/codespaces/{codespace_name},codespaces/update-for-authenticated-user,codespaces/update_for_authenticated_user,patch,codespace,codespaces,codespaces,codespaces,update_for_authenticated_user,update,,Update a codespace for the authenticated user -copilot.yaml,/orgs/{org}/copilot/billing/selected_teams,copilot/add-copilot-seats-for-teams,copilot/add_copilot_seats_for_teams,post,,copilot,copilot,org_copilot_seats_teams,add_copilot_seats_for_teams,insert,,Add teams to the Copilot subscription for an organization -copilot.yaml,/orgs/{org}/copilot/billing/selected_users,copilot/add-copilot-seats-for-users,copilot/add_copilot_seats_for_users,post,,copilot,copilot,org_copilot_seats_users,add_copilot_seats_for_users,insert,,Add users to the Copilot subscription for an organization -copilot.yaml,/orgs/{org}/copilot/billing/selected_teams,copilot/cancel-copilot-seat-assignment-for-teams,copilot/cancel_copilot_seat_assignment_for_teams,delete,,copilot,copilot,org_seats,cancel_copilot_seat_assignment_for_teams,exec,,Remove teams from the Copilot for Business subscription for an organization -copilot.yaml,/orgs/{org}/copilot/billing/selected_users,copilot/cancel-copilot-seat-assignment-for-users,copilot/cancel_copilot_seat_assignment_for_users,delete,,copilot,copilot,user_seats,cancel_copilot_seat_assignment_for_users,exec,,Remove users from the Copilot for Business subscription for an organization -copilot.yaml,/orgs/{org}/copilot/content_exclusion,copilot/copilot-content-exclusion-for-organization,copilot/copilot_content_exclusion_for_organization,get,,copilot,copilot,org_content_exclusion,copilot_content_exclusion_for_organization,exec,,Get Copilot content exclusion rules for an organization -copilot.yaml,/enterprises/{enterprise}/copilot/metrics/reports/enterprise-1-day,copilot/copilot-enterprise-one-day-usage-metrics,copilot/copilot_enterprise_one_day_usage_metrics,get,,copilot,copilot,copilot_one_day_usage_metrics,copilot_enterprise_one_day_usage_metrics,select,,Get Copilot enterprise usage metrics for a specific day -copilot.yaml,/enterprises/{enterprise}/copilot/metrics/reports/enterprise-28-day/latest,copilot/copilot-enterprise-usage-metrics,copilot/copilot_enterprise_usage_metrics,get,,copilot,copilot,copilot_usage_metrics,copilot_enterprise_usage_metrics,select,,Get Copilot enterprise usage metrics -copilot.yaml,/orgs/{org}/copilot/metrics,copilot/copilot-metrics-for-organization,copilot/copilot_metrics_for_organization,get,,copilot,copilot,org_copilot_metrics,copilot_metrics_for_organization,select,,Get Copilot metrics for an organization -copilot.yaml,/orgs/{org}/team/{team_slug}/copilot/metrics,copilot/copilot-metrics-for-team,copilot/copilot_metrics_for_team,get,,copilot,copilot,copilot_metrics,copilot_metrics_for_team,select,,Get Copilot metrics for a team -copilot.yaml,/orgs/{org}/copilot/metrics/reports/organization-1-day,copilot/copilot-organization-one-day-usage-metrics,copilot/copilot_organization_one_day_usage_metrics,get,,copilot,copilot,org_copilot_one_day_usage_metrics,copilot_organization_one_day_usage_metrics,select,,Get Copilot organization usage metrics for a specific day -copilot.yaml,/orgs/{org}/copilot/metrics/reports/organization-28-day/latest,copilot/copilot-organization-usage-metrics,copilot/copilot_organization_usage_metrics,get,,copilot,copilot,org_copilot_usage_metrics,copilot_organization_usage_metrics,select,,Get Copilot organization usage metrics -copilot.yaml,/orgs/{org}/copilot/metrics/reports/users-1-day,copilot/copilot-organization-users-one-day-usage-metrics,copilot/copilot_organization_users_one_day_usage_metrics,get,,copilot,copilot,org_copilot_user_one_day_usage_metrics,copilot_organization_users_one_day_usage_metrics,select,,Get Copilot organization users usage metrics for a specific day -copilot.yaml,/orgs/{org}/copilot/metrics/reports/users-28-day/latest,copilot/copilot-organization-users-usage-metrics,copilot/copilot_organization_users_usage_metrics,get,,copilot,copilot,org_copilot_user_usage_metrics,copilot_organization_users_usage_metrics,select,,Get Copilot organization users usage metrics -copilot.yaml,/enterprises/{enterprise}/copilot/metrics/reports/users-1-day,copilot/copilot-users-one-day-usage-metrics,copilot/copilot_users_one_day_usage_metrics,get,,copilot,copilot,copilot_user_one_day_usage_metrics,copilot_users_one_day_usage_metrics,select,,Get Copilot users usage metrics for a specific day -copilot.yaml,/enterprises/{enterprise}/copilot/metrics/reports/users-28-day/latest,copilot/copilot-users-usage-metrics,copilot/copilot_users_usage_metrics,get,,copilot,copilot,copilot_user_usage_metrics,copilot_users_usage_metrics,select,,Get Copilot users usage metrics -copilot.yaml,/orgs/{org}/copilot/coding-agent/permissions/repositories/{repository_id},copilot/disable-copilot-coding-agent-for-repository-in-organization,copilot/disable_copilot_coding_agent_for_repository_in_organization,delete,,copilot,copilot,org_coding_agent_repos,disable_copilot_coding_agent_for_repository_in_organization,delete,,Disable a repository for Copilot coding agent in an organization -copilot.yaml,/orgs/{org}/copilot/coding-agent/permissions/repositories/{repository_id},copilot/enable-copilot-coding-agent-for-repository-in-organization,copilot/enable_copilot_coding_agent_for_repository_in_organization,put,,copilot,copilot,org_coding_agent_repos,enable_copilot_coding_agent_for_repository_in_organization,replace,,Enable a repository for Copilot coding agent in an organization -copilot.yaml,/orgs/{org}/copilot/coding-agent/permissions,copilot/get-copilot-coding-agent-permissions-organization,copilot/get_copilot_coding_agent_permissions_organization,get,,copilot,copilot,org_coding_agent_permissions,get_copilot_coding_agent_permissions_organization,select,,Get Copilot coding agent permissions for an organization -copilot.yaml,/orgs/{org}/copilot/billing,copilot/get-copilot-organization-details,copilot/get_copilot_organization_details,get,copilot-organization-details,copilot,copilot,org_details,get_copilot_organization_details,select,,Get Copilot for Business seat information and settings for an organization -copilot.yaml,/orgs/{org}/members/{username}/copilot,copilot/get-copilot-seat-details-for-user,copilot/get_copilot_seat_details_for_user,get,,copilot,copilot,org_member_copilot_seats,get_copilot_seat_details_for_user,select,,Get Copilot seat assignment details for a user -copilot.yaml,/orgs/{org}/copilot/coding-agent/permissions/repositories,copilot/list-copilot-coding-agent-selected-repositories-for-organization,copilot/list_copilot_coding_agent_selected_repositories_for_organization,get,,copilot,copilot,org_coding_agent_repos,list_copilot_coding_agent_selected_repositories_for_organization,select,$.repositories,List repositories enabled for Copilot coding agent in an organization -copilot.yaml,/orgs/{org}/copilot/billing/seats,copilot/list-copilot-seats,copilot/list_copilot_seats,get,,copilot,copilot,org_seats,list_copilot_seats,select,$.seats,List all Copilot for Business seat assignments for an organization -copilot.yaml,/orgs/{org}/copilot/coding-agent/permissions,copilot/set-copilot-coding-agent-permissions-organization,copilot/set_copilot_coding_agent_permissions_organization,put,,copilot,copilot,org_coding_agent_permissions,set_copilot_coding_agent_permissions_organization,replace,,Set Copilot coding agent permissions for an organization -copilot.yaml,/orgs/{org}/copilot/coding-agent/permissions/repositories,copilot/set-copilot-coding-agent-selected-repositories-for-organization,copilot/set_copilot_coding_agent_selected_repositories_for_organization,put,,copilot,copilot,org_coding_agent_repos,set_copilot_coding_agent_selected_repositories_for_organization,replace,,Set selected repositories for Copilot coding agent in an organization -copilot.yaml,/orgs/{org}/copilot/content_exclusion,copilot/set-copilot-content-exclusion-for-organization,copilot/set_copilot_content_exclusion_for_organization,put,,copilot,copilot,org_content_exclusion,set_copilot_content_exclusion_for_organization,replace,,Set Copilot content exclusion rules for an organization -credentials.yaml,/credentials/revoke,credentials/revoke,credentials/revoke,post,,credentials,credentials,credentials,revoke,exec,,Revoke a list of credentials -dependabot.yaml,/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id},dependabot/add-selected-repo-to-org-secret,dependabot/add_selected_repo_to_org_secret,put,,dependabot,dependabot,repos_for_secret,add_selected_repo_to_org_secret,insert,,Add selected repository to an organization secret -dependabot.yaml,/orgs/{org}/dependabot/secrets/{secret_name},dependabot/create-or-update-org-secret,dependabot/create_or_update_org_secret,put,empty-object,dependabot,dependabot,secrets,create_or_update_org_secret,insert,,Create or update an organization secret -dependabot.yaml,/repos/{owner}/{repo}/dependabot/secrets/{secret_name},dependabot/create-or-update-repo-secret,dependabot/create_or_update_repo_secret,put,empty-object,dependabot,dependabot,secrets,create_or_update_repo_secret,insert,,Create or update a repository secret -dependabot.yaml,/orgs/{org}/dependabot/secrets/{secret_name},dependabot/delete-org-secret,dependabot/delete_org_secret,delete,,dependabot,dependabot,secrets,delete_org_secret,delete,,Delete an organization secret -dependabot.yaml,/repos/{owner}/{repo}/dependabot/secrets/{secret_name},dependabot/delete-repo-secret,dependabot/delete_repo_secret,delete,,dependabot,dependabot,secrets,delete_repo_secret,delete,,Delete a repository secret -dependabot.yaml,/repos/{owner}/{repo}/dependabot/alerts/{alert_number},dependabot/get-alert,dependabot/get_alert,get,dependabot-alert,dependabot,dependabot,alerts,get_alert,select,,Get a Dependabot alert -dependabot.yaml,/orgs/{org}/dependabot/secrets/public-key,dependabot/get-org-public-key,dependabot/get_org_public_key,get,dependabot-public-key,dependabot,dependabot,public_keys,get_org_public_key,select,,Get an organization public key -dependabot.yaml,/orgs/{org}/dependabot/secrets/{secret_name},dependabot/get-org-secret,dependabot/get_org_secret,get,organization-dependabot-secret,dependabot,dependabot,secrets,get_org_secret,select,,Get an organization secret -dependabot.yaml,/repos/{owner}/{repo}/dependabot/secrets/public-key,dependabot/get-repo-public-key,dependabot/get_repo_public_key,get,dependabot-public-key,dependabot,dependabot,public_keys,get_repo_public_key,select,,Get a repository public key -dependabot.yaml,/repos/{owner}/{repo}/dependabot/secrets/{secret_name},dependabot/get-repo-secret,dependabot/get_repo_secret,get,dependabot-secret,dependabot,dependabot,secrets,get_repo_secret,select,,Get a repository secret -dependabot.yaml,/enterprises/{enterprise}/dependabot/alerts,dependabot/list-alerts-for-enterprise,dependabot/list_alerts_for_enterprise,get,dependabot-alert-with-repository,dependabot,dependabot,alerts,list_alerts_for_enterprise,select,,List Dependabot alerts for an enterprise -dependabot.yaml,/orgs/{org}/dependabot/alerts,dependabot/list-alerts-for-org,dependabot/list_alerts_for_org,get,dependabot-alert-with-repository,dependabot,dependabot,alerts,list_alerts_for_org,select,,List Dependabot alerts for an organization -dependabot.yaml,/repos/{owner}/{repo}/dependabot/alerts,dependabot/list-alerts-for-repo,dependabot/list_alerts_for_repo,get,dependabot-alert,dependabot,dependabot,alerts,list_alerts_for_repo,select,,List Dependabot alerts for a repository -dependabot.yaml,/orgs/{org}/dependabot/secrets,dependabot/list-org-secrets,dependabot/list_org_secrets,get,,dependabot,dependabot,secrets,list_org_secrets,select,$.secrets,List organization secrets -dependabot.yaml,/repos/{owner}/{repo}/dependabot/secrets,dependabot/list-repo-secrets,dependabot/list_repo_secrets,get,,dependabot,dependabot,secrets,list_repo_secrets,select,$.secrets,List repository secrets -dependabot.yaml,/orgs/{org}/dependabot/secrets/{secret_name}/repositories,dependabot/list-selected-repos-for-org-secret,dependabot/list_selected_repos_for_org_secret,get,,dependabot,dependabot,repos_for_secret,list_selected_repos_for_org_secret,select,$.repositories,List selected repositories for an organization secret -dependabot.yaml,/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id},dependabot/remove-selected-repo-from-org-secret,dependabot/remove_selected_repo_from_org_secret,delete,,dependabot,dependabot,repos_for_secret,remove_selected_repo_from_org_secret,delete,,Remove selected repository from an organization secret -dependabot.yaml,/organizations/{org}/dependabot/repository-access,dependabot/repository-access-for-org,dependabot/repository_access_for_org,get,,dependabot,dependabot,org_dependabot_repository_access,repository_access_for_org,select,,Lists the repositories Dependabot can access in an organization -dependabot.yaml,/organizations/{org}/dependabot/repository-access/default-level,dependabot/set-repository-access-default-level,dependabot/set_repository_access_default_level,put,,dependabot,dependabot,org_dependabot_repository_access,set_repository_access_default_level,replace,,Set the default repository access level for Dependabot -dependabot.yaml,/orgs/{org}/dependabot/secrets/{secret_name}/repositories,dependabot/set-selected-repos-for-org-secret,dependabot/set_selected_repos_for_org_secret,put,,dependabot,dependabot,repos_for_secret,set_selected_repos_for_org_secret,replace,,Set selected repositories for an organization secret -dependabot.yaml,/repos/{owner}/{repo}/dependabot/alerts/{alert_number},dependabot/update-alert,dependabot/update_alert,patch,dependabot-alert,dependabot,dependabot,alerts,update_alert,update,,Update a Dependabot alert -dependabot.yaml,/organizations/{org}/dependabot/repository-access,dependabot/update-repository-access-for-org,dependabot/update_repository_access_for_org,patch,,dependabot,dependabot,org_dependabot_repository_access,update_repository_access_for_org,update,,Updates Dependabot's repository access list for an organization -dependency_graph.yaml,/repos/{owner}/{repo}/dependency-graph/snapshots,dependency-graph/create-repository-snapshot,dependency_graph/create_repository_snapshot,post,,dependency-graph,dependency_graph,dependency_submission,create_repository_snapshot,insert,,Create a snapshot of dependencies for a repository -dependency_graph.yaml,/repos/{owner}/{repo}/dependency-graph/compare/{basehead},dependency-graph/diff-range,dependency_graph/diff_range,get,dependency-graph-diff,dependency-graph,dependency_graph,dependency_review,diff_range,select,,Get a diff of the dependencies between commits -dependency_graph.yaml,/repos/{owner}/{repo}/dependency-graph/sbom,dependency-graph/export-sbom,dependency_graph/export_sbom,get,dependency-graph-spdx-sbom,dependency-graph,dependency_graph,sboms,export_sbom,select,$.sbom,Export a software bill of materials (SBOM) for a repository. -emojis.yaml,/emojis,emojis/get,emojis/get,get,,emojis,emojis,emojis,get_emojis,exec,,Get emojis -enterprise_team_memberships.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/memberships/{username},enterprise-team-memberships/add,enterprise_team_memberships/add,put,,enterprise-team-memberships,enterprise_team_memberships,enterprise_team_memberships,add,replace,,Add team member -enterprise_team_memberships.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/memberships/add,enterprise-team-memberships/bulk-add,enterprise_team_memberships/bulk_add,post,,enterprise-team-memberships,enterprise_team_memberships,enterprise_team_membership_bulk_additions,bulk_add,insert,,Bulk add team members -enterprise_team_memberships.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/memberships/remove,enterprise-team-memberships/bulk-remove,enterprise_team_memberships/bulk_remove,post,,enterprise-team-memberships,enterprise_team_memberships,enterprise_team_membership_bulk_removals,bulk_remove,insert,,Bulk remove team members -enterprise_team_memberships.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/memberships/{username},enterprise-team-memberships/get,enterprise_team_memberships/get,get,,enterprise-team-memberships,enterprise_team_memberships,enterprise_team_memberships,get,select,,Get enterprise team membership -enterprise_team_memberships.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/memberships,enterprise-team-memberships/list,enterprise_team_memberships/list,get,,enterprise-team-memberships,enterprise_team_memberships,enterprise_team_memberships,list,select,,List members in an enterprise team -enterprise_team_memberships.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/memberships/{username},enterprise-team-memberships/remove,enterprise_team_memberships/remove,delete,,enterprise-team-memberships,enterprise_team_memberships,enterprise_team_memberships,remove,delete,,Remove team membership -enterprise_team_organizations.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/organizations/{org},enterprise-team-organizations/add,enterprise_team_organizations/add,put,,enterprise-team-organizations,enterprise_team_organizations,enterprise_team_organizations,add,replace,,Add an organization assignment -enterprise_team_organizations.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/organizations/add,enterprise-team-organizations/bulk-add,enterprise_team_organizations/bulk_add,post,,enterprise-team-organizations,enterprise_team_organizations,enterprise_team_organization_bulk_additions,bulk_add,insert,,Add organization assignments -enterprise_team_organizations.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/organizations/remove,enterprise-team-organizations/bulk-remove,enterprise_team_organizations/bulk_remove,post,,enterprise-team-organizations,enterprise_team_organizations,enterprise_team_organization_bulk_removals,bulk_remove,insert,,Remove organization assignments -enterprise_team_organizations.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/organizations/{org},enterprise-team-organizations/delete,enterprise_team_organizations/delete,delete,,enterprise-team-organizations,enterprise_team_organizations,enterprise_team_organizations,delete,delete,,Delete an organization assignment -enterprise_team_organizations.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/organizations/{org},enterprise-team-organizations/get-assignment,enterprise_team_organizations/get_assignment,get,,enterprise-team-organizations,enterprise_team_organizations,enterprise_team_organizations,get_assignment,select,,Get organization assignment -enterprise_team_organizations.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/organizations,enterprise-team-organizations/get-assignments,enterprise_team_organizations/get_assignments,get,,enterprise-team-organizations,enterprise_team_organizations,enterprise_team_organizations,get_assignments,select,,Get organization assignments -enterprise_teams.yaml,/enterprises/{enterprise}/teams,enterprise-teams/create,enterprise_teams/create,post,,enterprise-teams,enterprise_teams,enterprise_teams,create,insert,,Create an enterprise team -enterprise_teams.yaml,/enterprises/{enterprise}/teams/{team_slug},enterprise-teams/delete,enterprise_teams/delete,delete,,enterprise-teams,enterprise_teams,enterprise_teams,delete,delete,,Delete an enterprise team -enterprise_teams.yaml,/enterprises/{enterprise}/teams/{team_slug},enterprise-teams/get,enterprise_teams/get,get,,enterprise-teams,enterprise_teams,enterprise_teams,get,select,,Get an enterprise team -enterprise_teams.yaml,/enterprises/{enterprise}/teams,enterprise-teams/list,enterprise_teams/list,get,,enterprise-teams,enterprise_teams,enterprise_teams,list,select,,List enterprise teams -enterprise_teams.yaml,/enterprises/{enterprise}/teams/{team_slug},enterprise-teams/update,enterprise_teams/update,patch,,enterprise-teams,enterprise_teams,enterprise_teams,update,update,,Update an enterprise team -gists.yaml,/gists/{gist_id}/star,gists/check-is-starred,gists/check_is_starred,get,,gists,gists,gists,check_is_starred,exec,,Check if a gist is starred -gists.yaml,/gists,gists/create,gists/create,post,gist-simple,gists,gists,gists,create,insert,,Create a gist -gists.yaml,/gists/{gist_id}/comments,gists/create-comment,gists/create_comment,post,gist-comment,gists,gists,comments,create_comment,insert,,Create a gist comment -gists.yaml,/gists/{gist_id},gists/delete,gists/delete,delete,,gists,gists,gists,delete,delete,,Delete a gist -gists.yaml,/gists/{gist_id}/comments/{comment_id},gists/delete-comment,gists/delete_comment,delete,,gists,gists,comments,delete_comment,delete,,Delete a gist comment -gists.yaml,/gists/{gist_id}/forks,gists/fork,gists/fork,post,base-gist,gists,gists,gists,fork,insert,,Fork a gist -gists.yaml,/gists/{gist_id},gists/get,gists/get,get,gist-simple,gists,gists,gists,get,select,,Get a gist -gists.yaml,/gists/{gist_id}/comments/{comment_id},gists/get-comment,gists/get_comment,get,gist-comment,gists,gists,comments,get_comment,select,,Get a gist comment -gists.yaml,/gists/{gist_id}/{sha},gists/get-revision,gists/get_revision,get,gist-simple,gists,gists,revisions,get_revision,select,,Get a gist revision -gists.yaml,/gists,gists/list,gists/list,get,base-gist,gists,gists,gists,list,select,,List gists for the authenticated user -gists.yaml,/gists/{gist_id}/comments,gists/list-comments,gists/list_comments,get,gist-comment,gists,gists,comments,list_comments,select,,List gist comments -gists.yaml,/gists/{gist_id}/commits,gists/list-commits,gists/list_commits,get,gist-commit,gists,gists,commits,list_commits,select,,List gist commits -gists.yaml,/users/{username}/gists,gists/list-for-user,gists/list_for_user,get,base-gist,gists,gists,gists,list_for_user,select,,List gists for a user -gists.yaml,/gists/{gist_id}/forks,gists/list-forks,gists/list_forks,get,gist-simple,gists,gists,forks,list_forks,select,,List gist forks -gists.yaml,/gists/public,gists/list-public,gists/list_public,get,base-gist,gists,gists,public_gists,list_public,select,,List public gists -gists.yaml,/gists/starred,gists/list-starred,gists/list_starred,get,base-gist,gists,gists,starred_gists,list_starred,select,,List starred gists -gists.yaml,/gists/{gist_id}/star,gists/star,gists/star,put,,gists,gists,gists,star,exec,,Star a gist -gists.yaml,/gists/{gist_id}/star,gists/unstar,gists/unstar,delete,,gists,gists,gists,unstar,exec,,Unstar a gist -gists.yaml,/gists/{gist_id},gists/update,gists/update,patch,gist-simple,gists,gists,gists,update,update,,Update a gist -gists.yaml,/gists/{gist_id}/comments/{comment_id},gists/update-comment,gists/update_comment,patch,gist-comment,gists,gists,comments,update_comment,update,,Update a gist comment -git.yaml,/repos/{owner}/{repo}/git/blobs,git/create-blob,git/create_blob,post,short-blob,git,git,blobs,create_blob,insert,,Create a blob -git.yaml,/repos/{owner}/{repo}/git/commits,git/create-commit,git/create_commit,post,git-commit,git,git,commits,create_commit,insert,,Create a commit -git.yaml,/repos/{owner}/{repo}/git/refs,git/create-ref,git/create_ref,post,git-ref,git,git,refs,create_ref,insert,,Create a reference -git.yaml,/repos/{owner}/{repo}/git/tags,git/create-tag,git/create_tag,post,git-tag,git,git,tags,create_tag,insert,,Create a tag object -git.yaml,/repos/{owner}/{repo}/git/trees,git/create-tree,git/create_tree,post,git-tree,git,git,trees,create_tree,insert,,Create a tree -git.yaml,/repos/{owner}/{repo}/git/refs/{ref},git/delete-ref,git/delete_ref,delete,,git,git,refs,delete_ref,delete,,Delete a reference -git.yaml,/repos/{owner}/{repo}/git/blobs/{file_sha},git/get-blob,git/get_blob,get,blob,git,git,blobs,get_blob,select,,Get a blob -git.yaml,/repos/{owner}/{repo}/git/commits/{commit_sha},git/get-commit,git/get_commit,get,git-commit,git,git,commits,get_commit,select,,Get a commit object -git.yaml,/repos/{owner}/{repo}/git/ref/{ref},git/get-ref,git/get_ref,get,git-ref,git,git,ref,get_ref,select,,Get a reference -git.yaml,/repos/{owner}/{repo}/git/tags/{tag_sha},git/get-tag,git/get_tag,get,git-tag,git,git,tags,get_tag,select,,Get a tag -git.yaml,/repos/{owner}/{repo}/git/trees/{tree_sha},git/get-tree,git/get_tree,get,git-tree,git,git,trees,get_tree,select,,Get a tree -git.yaml,/repos/{owner}/{repo}/git/matching-refs/{ref},git/list-matching-refs,git/list_matching_refs,get,git-ref,git,git,refs,list_matching_refs,select,,List matching references -git.yaml,/repos/{owner}/{repo}/git/refs/{ref},git/update-ref,git/update_ref,patch,git-ref,git,git,refs,update_ref,update,,Update a reference -gitignore.yaml,/gitignore/templates,gitignore/get-all-templates,gitignore/get_all_templates,get,,gitignore,gitignore,gitignore,get_all_templates,select,,Get all gitignore templates -gitignore.yaml,/gitignore/templates/{name},gitignore/get-template,gitignore/get_template,get,gitignore-template,gitignore,gitignore,gitignore,get_template,select,,Get a gitignore template -hosted_compute.yaml,/orgs/{org}/settings/network-configurations,hosted-compute/create-network-configuration-for-org,hosted_compute/create_network_configuration_for_org,post,,hosted-compute,hosted_compute,org_network_configurations,create_network_configuration_for_org,insert,,Create a hosted compute network configuration for an organization -hosted_compute.yaml,/orgs/{org}/settings/network-configurations/{network_configuration_id},hosted-compute/delete-network-configuration-from-org,hosted_compute/delete_network_configuration_from_org,delete,,hosted-compute,hosted_compute,org_network_configurations,delete_network_configuration_from_org,delete,,Delete a hosted compute network configuration from an organization -hosted_compute.yaml,/orgs/{org}/settings/network-configurations/{network_configuration_id},hosted-compute/get-network-configuration-for-org,hosted_compute/get_network_configuration_for_org,get,,hosted-compute,hosted_compute,org_network_configurations,get_network_configuration_for_org,select,,Get a hosted compute network configuration for an organization -hosted_compute.yaml,/orgs/{org}/settings/network-settings/{network_settings_id},hosted-compute/get-network-settings-for-org,hosted_compute/get_network_settings_for_org,get,,hosted-compute,hosted_compute,org_network_settings,get_network_settings_for_org,select,,Get a hosted compute network settings resource for an organization -hosted_compute.yaml,/orgs/{org}/settings/network-configurations,hosted-compute/list-network-configurations-for-org,hosted_compute/list_network_configurations_for_org,get,,hosted-compute,hosted_compute,org_network_configurations,list_network_configurations_for_org,select,$.network_configurations,List hosted compute network configurations for an organization -hosted_compute.yaml,/orgs/{org}/settings/network-configurations/{network_configuration_id},hosted-compute/update-network-configuration-for-org,hosted_compute/update_network_configuration_for_org,patch,,hosted-compute,hosted_compute,org_network_configurations,update_network_configuration_for_org,update,,Update a hosted compute network configuration for an organization -interactions.yaml,/user/interaction-limits,interactions/get-restrictions-for-authenticated-user,interactions/get_restrictions_for_authenticated_user,get,interaction-limit-response,interactions,interactions,user,get_restrictions_for_authenticated_user,select,,Get interaction restrictions for your public repositories -interactions.yaml,/orgs/{org}/interaction-limits,interactions/get-restrictions-for-org,interactions/get_restrictions_for_org,get,interaction-limit-response,interactions,interactions,orgs,get_restrictions_for_org,select,,Get interaction restrictions for an organization -interactions.yaml,/repos/{owner}/{repo}/interaction-limits,interactions/get-restrictions-for-repo,interactions/get_restrictions_for_repo,get,interaction-limit-response,interactions,interactions,repos,get_restrictions_for_repo,select,,Get interaction restrictions for a repository -interactions.yaml,/user/interaction-limits,interactions/remove-restrictions-for-authenticated-user,interactions/remove_restrictions_for_authenticated_user,delete,,interactions,interactions,user,remove_restrictions_for_authenticated_user,delete,,Remove interaction restrictions from your public repositories -interactions.yaml,/orgs/{org}/interaction-limits,interactions/remove-restrictions-for-org,interactions/remove_restrictions_for_org,delete,,interactions,interactions,orgs,remove_restrictions_for_org,delete,,Remove interaction restrictions for an organization -interactions.yaml,/repos/{owner}/{repo}/interaction-limits,interactions/remove-restrictions-for-repo,interactions/remove_restrictions_for_repo,delete,,interactions,interactions,repos,remove_restrictions_for_repo,delete,,Remove interaction restrictions for a repository -interactions.yaml,/user/interaction-limits,interactions/set-restrictions-for-authenticated-user,interactions/set_restrictions_for_authenticated_user,put,interaction-limit-response,interactions,interactions,user,set_restrictions_for_authenticated_user,replace,,Set interaction restrictions for your public repositories -interactions.yaml,/orgs/{org}/interaction-limits,interactions/set-restrictions-for-org,interactions/set_restrictions_for_org,put,interaction-limit-response,interactions,interactions,orgs,set_restrictions_for_org,replace,,Set interaction restrictions for an organization -interactions.yaml,/repos/{owner}/{repo}/interaction-limits,interactions/set-restrictions-for-repo,interactions/set_restrictions_for_repo,put,interaction-limit-response,interactions,interactions,repos,set_restrictions_for_repo,replace,,Set interaction restrictions for a repository -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/assignees,issues/add-assignees,issues/add_assignees,post,issue,issues,issues,assignees,add_assignees,insert,,Add assignees to an issue -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by,issues/add-blocked-by-dependency,issues/add_blocked_by_dependency,post,,issues,issues,issue_blocked_by_dependencies,add_blocked_by_dependency,insert,,Add a dependency an issue is blocked by -issues.yaml,/repositories/{repository_id}/issues/{issue_number}/issue-field-values,issues/add-issue-field-values,issues/add_issue_field_values,post,,issues,issues,issue_field_values,add_issue_field_values,insert,,Add issue field values to an issue -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/labels,issues/add-labels,issues/add_labels,post,label,issues,issues,labels,add_labels,insert,,Add labels to an issue -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/sub_issues,issues/add-sub-issue,issues/add_sub_issue,post,,issues,issues,issue_sub_issues,add_sub_issue,insert,,Add sub-issue -issues.yaml,/repos/{owner}/{repo}/assignees/{assignee},issues/check-user-can-be-assigned,issues/check_user_can_be_assigned,get,,issues,issues,assignees,check_user_can_be_assigned,exec,,Check if a user can be assigned -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee},issues/check-user-can-be-assigned-to-issue,issues/check_user_can_be_assigned_to_issue,get,,issues,issues,assignees,check_user_can_be_assigned_to_issue,exec,,Check if a user can be assigned to a issue -issues.yaml,/repos/{owner}/{repo}/issues,issues/create,issues/create,post,issue,issues,issues,issues,create,insert,,Create an issue -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/comments,issues/create-comment,issues/create_comment,post,issue-comment,issues,issues,comments,create_comment,insert,,Create an issue comment -issues.yaml,/repos/{owner}/{repo}/labels,issues/create-label,issues/create_label,post,label,issues,issues,labels,create_label,insert,,Create a label -issues.yaml,/repos/{owner}/{repo}/milestones,issues/create-milestone,issues/create_milestone,post,milestone,issues,issues,milestones,create_milestone,insert,,Create a milestone -issues.yaml,/repos/{owner}/{repo}/issues/comments/{comment_id},issues/delete-comment,issues/delete_comment,delete,,issues,issues,comments,delete_comment,delete,,Delete an issue comment -issues.yaml,/repositories/{repository_id}/issues/{issue_number}/issue-field-values/{issue_field_id},issues/delete-issue-field-value,issues/delete_issue_field_value,delete,,issues,issues,issue_field_values,delete_issue_field_value,delete,,Delete an issue field value from an issue -issues.yaml,/repos/{owner}/{repo}/labels/{name},issues/delete-label,issues/delete_label,delete,,issues,issues,labels,delete_label,delete,,Delete a label -issues.yaml,/repos/{owner}/{repo}/milestones/{milestone_number},issues/delete-milestone,issues/delete_milestone,delete,,issues,issues,milestones,delete_milestone,delete,,Delete a milestone -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number},issues/get,issues/get,get,issue,issues,issues,issues,get,select,,Get an issue -issues.yaml,/repos/{owner}/{repo}/issues/comments/{comment_id},issues/get-comment,issues/get_comment,get,issue-comment,issues,issues,comments,get_comment,select,,Get an issue comment -issues.yaml,/repos/{owner}/{repo}/issues/events/{event_id},issues/get-event,issues/get_event,get,issue-event,issues,issues,events,get_event,select,,Get an issue event -issues.yaml,/repos/{owner}/{repo}/labels/{name},issues/get-label,issues/get_label,get,label,issues,issues,labels,get_label,select,,Get a label -issues.yaml,/repos/{owner}/{repo}/milestones/{milestone_number},issues/get-milestone,issues/get_milestone,get,milestone,issues,issues,milestones,get_milestone,select,,Get a milestone -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/parent,issues/get-parent,issues/get_parent,get,,issues,issues,issue_parent,get_parent,select,,Get parent issue -issues.yaml,/issues,issues/list,issues/list,get,issue,issues,issues,issues,list,select,,List issues assigned to the authenticated user -issues.yaml,/repos/{owner}/{repo}/assignees,issues/list-assignees,issues/list_assignees,get,simple-user,issues,issues,assignees,list_assignees,select,,List assignees -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/comments,issues/list-comments,issues/list_comments,get,issue-comment,issues,issues,comments,list_comments,select,,List issue comments -issues.yaml,/repos/{owner}/{repo}/issues/comments,issues/list-comments-for-repo,issues/list_comments_for_repo,get,issue-comment,issues,issues,comments,list_comments_for_repo,select,,List issue comments for a repository -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by,issues/list-dependencies-blocked-by,issues/list_dependencies_blocked_by,get,,issues,issues,issue_blocked_by_dependencies,list_dependencies_blocked_by,select,,List dependencies an issue is blocked by -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking,issues/list-dependencies-blocking,issues/list_dependencies_blocking,get,,issues,issues,issue_blocking_dependencies,list_dependencies_blocking,select,,List dependencies an issue is blocking -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/events,issues/list-events,issues/list_events,get,issue-event-for-issue,issues,issues,events,list_events,select,,List issue events -issues.yaml,/repos/{owner}/{repo}/issues/events,issues/list-events-for-repo,issues/list_events_for_repo,get,issue-event,issues,issues,events,list_events_for_repo,select,,List issue events for a repository -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/timeline,issues/list-events-for-timeline,issues/list_events_for_timeline,get,timeline-issue-events,issues,issues,timeline,list_events_for_timeline,select,,List timeline events for an issue -issues.yaml,/user/issues,issues/list-for-authenticated-user,issues/list_for_authenticated_user,get,issue,issues,issues,user_issues,list_for_authenticated_user,select,,List user account issues assigned to the authenticated user -issues.yaml,/orgs/{org}/issues,issues/list-for-org,issues/list_for_org,get,issue,issues,issues,issues,list_for_org,select,,List organization issues assigned to the authenticated user -issues.yaml,/repos/{owner}/{repo}/issues,issues/list-for-repo,issues/list_for_repo,get,issue,issues,issues,issues,list_for_repo,select,,List repository issues -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/issue-field-values,issues/list-issue-field-values-for-issue,issues/list_issue_field_values_for_issue,get,,issues,issues,issue_field_values,list_issue_field_values_for_issue,select,,List issue field values for an issue -issues.yaml,/repos/{owner}/{repo}/milestones/{milestone_number}/labels,issues/list-labels-for-milestone,issues/list_labels_for_milestone,get,label,issues,issues,labels,list_labels_for_milestone,select,,List labels for issues in a milestone -issues.yaml,/repos/{owner}/{repo}/labels,issues/list-labels-for-repo,issues/list_labels_for_repo,get,label,issues,issues,labels,list_labels_for_repo,select,,List labels for a repository -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/labels,issues/list-labels-on-issue,issues/list_labels_on_issue,get,label,issues,issues,labels,list_labels_on_issue,select,,List labels for an issue -issues.yaml,/repos/{owner}/{repo}/milestones,issues/list-milestones,issues/list_milestones,get,milestone,issues,issues,milestones,list_milestones,select,,List milestones -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/sub_issues,issues/list-sub-issues,issues/list_sub_issues,get,,issues,issues,issue_sub_issues,list_sub_issues,select,,List sub-issues -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/lock,issues/lock,issues/lock,put,,issues,issues,issues,lock,exec,,Lock an issue -issues.yaml,/repos/{owner}/{repo}/issues/comments/{comment_id}/pin,issues/pin-comment,issues/pin_comment,put,,issues,issues,issue_comment_pins,pin_comment,replace,,Pin an issue comment -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/labels,issues/remove-all-labels,issues/remove_all_labels,delete,,issues,issues,labels,remove_all_labels,delete,,Remove all labels from an issue -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/assignees,issues/remove-assignees,issues/remove_assignees,delete,issue,issues,issues,assignees,remove_assignees,delete,,Remove assignees from an issue -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id},issues/remove-dependency-blocked-by,issues/remove_dependency_blocked_by,delete,,issues,issues,issue_blocked_by_dependencies,remove_dependency_blocked_by,delete,,Remove dependency an issue is blocked by -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/labels/{name},issues/remove-label,issues/remove_label,delete,label,issues,issues,labels,remove_label,delete,,Remove a label from an issue -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/sub_issue,issues/remove-sub-issue,issues/remove_sub_issue,delete,,issues,issues,issue_sub_issues,remove_sub_issue,delete,,Remove sub-issue -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority,issues/reprioritize-sub-issue,issues/reprioritize_sub_issue,patch,,issues,issues,issue_sub_issues,reprioritize_sub_issue,update,,Reprioritize sub-issue -issues.yaml,/repositories/{repository_id}/issues/{issue_number}/issue-field-values,issues/set-issue-field-values,issues/set_issue_field_values,put,,issues,issues,issue_field_values,set_issue_field_values,replace,,Set issue field values for an issue -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/labels,issues/set-labels,issues/set_labels,put,label,issues,issues,labels,set_labels,replace,,Set labels for an issue -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/lock,issues/unlock,issues/unlock,delete,,issues,issues,issues,unlock,exec,,Unlock an issue -issues.yaml,/repos/{owner}/{repo}/issues/comments/{comment_id}/pin,issues/unpin-comment,issues/unpin_comment,delete,,issues,issues,issue_comment_pins,unpin_comment,delete,,Unpin an issue comment -issues.yaml,/repos/{owner}/{repo}/issues/{issue_number},issues/update,issues/update,patch,issue,issues,issues,issues,update,update,,Update an issue -issues.yaml,/repos/{owner}/{repo}/issues/comments/{comment_id},issues/update-comment,issues/update_comment,patch,issue-comment,issues,issues,comments,update_comment,update,,Update an issue comment -issues.yaml,/repos/{owner}/{repo}/labels/{name},issues/update-label,issues/update_label,patch,label,issues,issues,labels,update_label,update,,Update a label -issues.yaml,/repos/{owner}/{repo}/milestones/{milestone_number},issues/update-milestone,issues/update_milestone,patch,milestone,issues,issues,milestones,update_milestone,update,,Update a milestone -licenses.yaml,/licenses/{license},licenses/get,licenses/get,get,license,licenses,licenses,licenses,get,select,,Get a license -licenses.yaml,/licenses,licenses/get-all-commonly-used,licenses/get_all_commonly_used,get,license-simple,licenses,licenses,licenses,get_all_commonly_used,select,,Get all commonly used licenses -licenses.yaml,/repos/{owner}/{repo}/license,licenses/get-for-repo,licenses/get_for_repo,get,license-content,licenses,licenses,licenses,get_for_repo,select,,Get the license for a repository -markdown.yaml,/markdown,markdown/render,markdown/render,post,,markdown,markdown,rendered_markdown,render,insert,,Render a Markdown document -markdown.yaml,/markdown/raw,markdown/render-raw,markdown/render_raw,post,,markdown,markdown,rendered_markdown_raw,render_raw,insert,,Render a Markdown document in raw mode -meta.yaml,/meta,meta/get,meta/get,get,,meta,meta,meta,get,select,,Get GitHub meta information -meta.yaml,/versions,meta/get-all-versions,meta/get_all_versions,get,,meta,meta,versions,get_all_versions,select,,Get all API versions -meta.yaml,/octocat,meta/get-octocat,meta/get_octocat,get,,meta,meta,octocat,get_octocat,exec,,Get Octocat -meta.yaml,/zen,meta/get-zen,meta/get_zen,get,,meta,meta,zen,get_zen,exec,,Get the Zen of GitHub -meta.yaml,/,meta/root,meta/root,get,,meta,meta,root,root,select,,GitHub API Root -migrations.yaml,/repos/{owner}/{repo}/import,migrations/cancel-import,migrations/cancel_import,delete,,migrations,migrations,source_imports,cancel_import,exec,,Cancel an import -migrations.yaml,/user/migrations/{migration_id}/archive,migrations/delete-archive-for-authenticated-user,migrations/delete_archive_for_authenticated_user,delete,,migrations,migrations,users,delete_archive_for_authenticated_user,delete,,Delete a user migration archive -migrations.yaml,/orgs/{org}/migrations/{migration_id}/archive,migrations/delete-archive-for-org,migrations/delete_archive_for_org,delete,,migrations,migrations,orgs,delete_archive_for_org,delete,,Delete an organization migration archive -migrations.yaml,/repos/{owner}/{repo}/import/authors,migrations/get-commit-authors,migrations/get_commit_authors,get,porter-author,migrations,migrations,commit_authors,get_commit_authors,select,,Get commit authors -migrations.yaml,/repos/{owner}/{repo}/import,migrations/get-import-status,migrations/get_import_status,get,import,migrations,migrations,source_imports,get_import_status,select,,Get an import status -migrations.yaml,/repos/{owner}/{repo}/import/large_files,migrations/get-large-files,migrations/get_large_files,get,porter-large-file,migrations,migrations,lfs,get_large_files,select,,Get large files -migrations.yaml,/user/migrations/{migration_id},migrations/get-status-for-authenticated-user,migrations/get_status_for_authenticated_user,get,migration,migrations,migrations,migrations,get_status_for_authenticated_user,select,,Get a user migration status -migrations.yaml,/orgs/{org}/migrations/{migration_id},migrations/get-status-for-org,migrations/get_status_for_org,get,migration,migrations,migrations,migrations,get_status_for_org,select,,Get an organization migration status -migrations.yaml,/user/migrations,migrations/list-for-authenticated-user,migrations/list_for_authenticated_user,get,migration,migrations,migrations,migrations,list_for_authenticated_user,select,,List user migrations -migrations.yaml,/orgs/{org}/migrations,migrations/list-for-org,migrations/list_for_org,get,migration,migrations,migrations,migrations,list_for_org,select,,List organization migrations -migrations.yaml,/user/migrations/{migration_id}/repositories,migrations/list-repos-for-authenticated-user,migrations/list_repos_for_authenticated_user,get,minimal-repository,migrations,migrations,repos,list_repos_for_authenticated_user,select,,List repositories for a user migration -migrations.yaml,/orgs/{org}/migrations/{migration_id}/repositories,migrations/list-repos-for-org,migrations/list_repos_for_org,get,minimal-repository,migrations,migrations,repos,list_repos_for_org,select,,List repositories in an organization migration -migrations.yaml,/repos/{owner}/{repo}/import/authors/{author_id},migrations/map-commit-author,migrations/map_commit_author,patch,porter-author,migrations,migrations,commit_authors,map_commit_author,update,,Map a commit author -migrations.yaml,/orgs/{org}/migrations/{migration_id}/archive,migrations/download-archive-for-org,migrations/download_archive_for_org,get,,migrations,migrations,skip_this_resource,migrations/download_archive_for_org,exec,,Download an organization migration archive -migrations.yaml,/user/migrations/{migration_id}/archive,migrations/get-archive-for-authenticated-user,migrations/get_archive_for_authenticated_user,get,,migrations,migrations,skip_this_resource,migrations/get_archive_for_authenticated_user,exec,,Download a user migration archive -migrations.yaml,/repos/{owner}/{repo}/import/lfs,migrations/set-lfs-preference,migrations/set_lfs_preference,patch,import,migrations,migrations,lfs,set_lfs_preference,update,,Update Git LFS preference -migrations.yaml,/user/migrations,migrations/start-for-authenticated-user,migrations/start_for_authenticated_user,post,migration,migrations,migrations,migrations,start_for_authenticated_user,exec,,Start a user migration -migrations.yaml,/orgs/{org}/migrations,migrations/start-for-org,migrations/start_for_org,post,migration,migrations,migrations,migrations,start_for_org,exec,,Start an organization migration -migrations.yaml,/repos/{owner}/{repo}/import,migrations/start-import,migrations/start_import,put,import,migrations,migrations,source_imports,start_import,exec,,Start an import -migrations.yaml,/user/migrations/{migration_id}/repos/{repo_name}/lock,migrations/unlock-repo-for-authenticated-user,migrations/unlock_repo_for_authenticated_user,delete,,migrations,migrations,repos,unlock_repo_for_authenticated_user,delete,,Unlock a user repository -migrations.yaml,/orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock,migrations/unlock-repo-for-org,migrations/unlock_repo_for_org,delete,,migrations,migrations,repos,unlock_repo_for_org,delete,,Unlock an organization repository -migrations.yaml,/repos/{owner}/{repo}/import,migrations/update-import,migrations/update_import,patch,import,migrations,migrations,source_imports,update_import,update,,Update an import -oidc.yaml,/enterprises/{enterprise}/actions/oidc/customization/properties/repo,oidc/create-oidc-custom-property-inclusion-for-enterprise,oidc/create_oidc_custom_property_inclusion_for_enterprise,post,,oidc,oidc,oidc_custom_property_inclusions,create_oidc_custom_property_inclusion_for_enterprise,insert,,Create an OIDC custom property inclusion for an enterprise -oidc.yaml,/orgs/{org}/actions/oidc/customization/properties/repo,oidc/create-oidc-custom-property-inclusion-for-org,oidc/create_oidc_custom_property_inclusion_for_org,post,,oidc,oidc,org_oidc_custom_property_inclusions,create_oidc_custom_property_inclusion_for_org,insert,,Create an OIDC custom property inclusion for an organization -oidc.yaml,/enterprises/{enterprise}/actions/oidc/customization/properties/repo/{custom_property_name},oidc/delete-oidc-custom-property-inclusion-for-enterprise,oidc/delete_oidc_custom_property_inclusion_for_enterprise,delete,,oidc,oidc,oidc_custom_property_inclusions,delete_oidc_custom_property_inclusion_for_enterprise,delete,,Delete an OIDC custom property inclusion for an enterprise -oidc.yaml,/orgs/{org}/actions/oidc/customization/properties/repo/{custom_property_name},oidc/delete-oidc-custom-property-inclusion-for-org,oidc/delete_oidc_custom_property_inclusion_for_org,delete,,oidc,oidc,org_oidc_custom_property_inclusions,delete_oidc_custom_property_inclusion_for_org,delete,,Delete an OIDC custom property inclusion for an organization -oidc.yaml,/orgs/{org}/actions/oidc/customization/sub,oidc/get-oidc-custom-sub-template-for-org,oidc/get_oidc_custom_sub_template_for_org,get,oidc-custom-sub,oidc,oidc,oidc,get_oidc_custom_sub_template_for_org,select,$.include_claim_keys,Get the customization template for an OIDC subject claim for an organization -oidc.yaml,/enterprises/{enterprise}/actions/oidc/customization/properties/repo,oidc/list-oidc-custom-property-inclusions-for-enterprise,oidc/list_oidc_custom_property_inclusions_for_enterprise,get,,oidc,oidc,oidc_custom_property_inclusions,list_oidc_custom_property_inclusions_for_enterprise,select,,List OIDC custom property inclusions for an enterprise -oidc.yaml,/orgs/{org}/actions/oidc/customization/properties/repo,oidc/list-oidc-custom-property-inclusions-for-org,oidc/list_oidc_custom_property_inclusions_for_org,get,,oidc,oidc,org_oidc_custom_property_inclusions,list_oidc_custom_property_inclusions_for_org,select,,List OIDC custom property inclusions for an organization -oidc.yaml,/orgs/{org}/actions/oidc/customization/sub,oidc/update-oidc-custom-sub-template-for-org,oidc/update_oidc_custom_sub_template_for_org,put,empty-object,oidc,oidc,oidc,update_oidc_custom_sub_template_for_org,replace,,Set the customization template for an OIDC subject claim for an organization -orgs.yaml,/orgs/{org}/security-managers/teams/{team_slug},orgs/add-security-manager-team,orgs/add_security_manager_team,put,,orgs,orgs,security_managers,add_security_manager_team,insert,,Add a security manager team -orgs.yaml,/orgs/{org}/organization-roles/teams/{team_slug}/{role_id},orgs/assign-team-to-org-role,orgs/assign_team_to_org_role,put,,orgs,orgs,role_team_assignments,assign_team_to_org_role,replace,,Assign an organization role to a team -orgs.yaml,/orgs/{org}/organization-roles/users/{username}/{role_id},orgs/assign-user-to-org-role,orgs/assign_user_to_org_role,put,,orgs,orgs,role_user_assignments,assign_user_to_org_role,replace,,Assign an organization role to a user -orgs.yaml,/orgs/{org}/blocks/{username},orgs/block-user,orgs/block_user,put,,orgs,orgs,blocking,block_user,exec,,Block a user from an organization -orgs.yaml,/orgs/{org}/invitations/{invitation_id},orgs/cancel-invitation,orgs/cancel_invitation,delete,,orgs,orgs,invitations,cancel_invitation,delete,,Cancel an organization invitation -orgs.yaml,/orgs/{org}/blocks/{username},orgs/check-blocked-user,orgs/check_blocked_user,get,,orgs,orgs,blocking,check_blocked_user,exec,,Check if a user is blocked by an organization -orgs.yaml,/orgs/{org}/members/{username},orgs/check-membership-for-user,orgs/check_membership_for_user,get,,orgs,orgs,memberships,check_membership_for_user,exec,,Check organization membership for a user -orgs.yaml,/orgs/{org}/public_members/{username},orgs/check-public-membership-for-user,orgs/check_public_membership_for_user,get,,orgs,orgs,public_members,check_public_membership_for_user,exec,,Check public organization membership for a user -orgs.yaml,/orgs/{org}/outside_collaborators/{username},orgs/convert-member-to-outside-collaborator,orgs/convert_member_to_outside_collaborator,put,,orgs,orgs,outside_collaborators,convert_member_to_outside_collaborator,exec,,Convert an organization member to outside collaborator -orgs.yaml,/orgs/{org}/artifacts/metadata/deployment-record,orgs/create-artifact-deployment-record,orgs/create_artifact_deployment_record,post,,orgs,orgs,artifact_deployment_records,create_artifact_deployment_record,insert,,Create an artifact deployment record -orgs.yaml,/orgs/{org}/artifacts/metadata/storage-record,orgs/create-artifact-storage-record,orgs/create_artifact_storage_record,post,,orgs,orgs,artifact_storage_records,create_artifact_storage_record,insert,,Create artifact metadata storage record -orgs.yaml,/orgs/{org}/invitations,orgs/create-invitation,orgs/create_invitation,post,organization-invitation,orgs,orgs,invitations,create_invitation,insert,,Create an organization invitation -orgs.yaml,/orgs/{org}/issue-fields,orgs/create-issue-field,orgs/create_issue_field,post,,orgs,orgs,issue_fields,create_issue_field,insert,,Create issue field for an organization -orgs.yaml,/orgs/{org}/issue-types,orgs/create-issue-type,orgs/create_issue_type,post,,orgs,orgs,issue_types,create_issue_type,insert,,Create issue type for an organization -orgs.yaml,/orgs/{org}/hooks,orgs/create-webhook,orgs/create_webhook,post,org-hook,orgs,orgs,webhooks,create_webhook,insert,,Create an organization webhook -orgs.yaml,/orgs/{org}/properties/schema/{custom_property_name},orgs/custom-properties-for-repos-create-or-update-organization-definition,orgs/custom_properties_for_repos_create_or_update_organization_definition,put,,orgs,orgs,custom_properties,custom_properties_for_repos_create_or_update_organization_definition,replace,,Create or update a custom property for an organization -orgs.yaml,/orgs/{org}/properties/schema,orgs/custom-properties-for-repos-create-or-update-organization-definitions,orgs/custom_properties_for_repos_create_or_update_organization_definitions,patch,,orgs,orgs,custom_properties,custom_properties_for_repos_create_or_update_organization_definitions,update,,Create or update custom properties for an organization -orgs.yaml,/orgs/{org}/properties/values,orgs/custom-properties-for-repos-create-or-update-organization-values,orgs/custom_properties_for_repos_create_or_update_organization_values,patch,,orgs,orgs,custom_property_values,custom_properties_for_repos_create_or_update_organization_values,update,,Create or update custom property values for organization repositories -orgs.yaml,/orgs/{org}/properties/schema/{custom_property_name},orgs/custom-properties-for-repos-delete-organization-definition,orgs/custom_properties_for_repos_delete_organization_definition,delete,,orgs,orgs,custom_properties,custom_properties_for_repos_delete_organization_definition,delete,,Remove a custom property for an organization -orgs.yaml,/orgs/{org}/properties/schema/{custom_property_name},orgs/custom-properties-for-repos-get-organization-definition,orgs/custom_properties_for_repos_get_organization_definition,get,,orgs,orgs,custom_properties,custom_properties_for_repos_get_organization_definition,select,,Get a custom property for an organization -orgs.yaml,/orgs/{org}/properties/schema,orgs/custom-properties-for-repos-get-organization-definitions,orgs/custom_properties_for_repos_get_organization_definitions,get,,orgs,orgs,custom_properties,custom_properties_for_repos_get_organization_definitions,select,,Get all custom properties for an organization -orgs.yaml,/orgs/{org}/properties/values,orgs/custom-properties-for-repos-get-organization-values,orgs/custom_properties_for_repos_get_organization_values,get,,orgs,orgs,custom_property_values,custom_properties_for_repos_get_organization_values,select,,List custom property values for organization repositories -orgs.yaml,/orgs/{org},orgs/delete,orgs/delete,delete,,orgs,orgs,orgs,delete,delete,,Delete an organization -orgs.yaml,/orgs/{org}/attestations/delete-request,orgs/delete-attestations-bulk,orgs/delete_attestations_bulk,post,,orgs,orgs,attestations,delete_attestations_bulk,exec,,Delete attestations in bulk -orgs.yaml,/orgs/{org}/attestations/{attestation_id},orgs/delete-attestations-by-id,orgs/delete_attestations_by_id,delete,,orgs,orgs,attestations,delete_attestations_by_id,delete,,Delete attestations by ID -orgs.yaml,/orgs/{org}/attestations/digest/{subject_digest},orgs/delete-attestations-by-subject-digest,orgs/delete_attestations_by_subject_digest,delete,,orgs,orgs,attestations,delete_attestations_by_subject_digest,delete,,Delete attestations by subject digest -orgs.yaml,/orgs/{org}/issue-fields/{issue_field_id},orgs/delete-issue-field,orgs/delete_issue_field,delete,,orgs,orgs,issue_fields,delete_issue_field,delete,,Delete issue field for an organization -orgs.yaml,/orgs/{org}/issue-types/{issue_type_id},orgs/delete-issue-type,orgs/delete_issue_type,delete,,orgs,orgs,issue_types,delete_issue_type,delete,,Delete issue type for an organization -orgs.yaml,/orgs/{org}/hooks/{hook_id},orgs/delete-webhook,orgs/delete_webhook,delete,,orgs,orgs,webhooks,delete_webhook,delete,,Delete an organization webhook -orgs.yaml,/orgs/{org}/settings/immutable-releases/repositories/{repository_id},orgs/disable-selected-repository-immutable-releases-organization,orgs/disable_selected_repository_immutable_releases_organization,delete,,orgs,orgs,immutable_releases_repos,disable_selected_repository_immutable_releases_organization,delete,,Disable a selected repository for immutable releases in an organization -orgs.yaml,/orgs/{org}/{security_product}/{enablement},orgs/enable-or-disable-security-product-on-all-org-repos,orgs/enable_or_disable_security_product_on_all_org_repos,post,,orgs,orgs,orgs,enable_or_disable_security_product_on_all_org_repos,exec,,Enable or disable a security feature for an organization -orgs.yaml,/orgs/{org}/settings/immutable-releases/repositories/{repository_id},orgs/enable-selected-repository-immutable-releases-organization,orgs/enable_selected_repository_immutable_releases_organization,put,,orgs,orgs,immutable_releases_repos,enable_selected_repository_immutable_releases_organization,replace,,Enable a selected repository for immutable releases in an organization -orgs.yaml,/orgs/{org},orgs/get,orgs/get,get,organization-full,orgs,orgs,orgs,get,select,,Get an organization -orgs.yaml,/orgs/{org}/settings/immutable-releases,orgs/get-immutable-releases-settings,orgs/get_immutable_releases_settings,get,,orgs,orgs,immutable_releases_settings,get_immutable_releases_settings,select,,Get immutable releases settings for an organization -orgs.yaml,/orgs/{org}/settings/immutable-releases/repositories,orgs/get-immutable-releases-settings-repositories,orgs/get_immutable_releases_settings_repositories,get,,orgs,orgs,immutable_releases_repos,get_immutable_releases_settings_repositories,select,,List selected repositories for immutable releases enforcement -orgs.yaml,/user/memberships/orgs/{org},orgs/get-membership-for-authenticated-user,orgs/get_membership_for_authenticated_user,get,org-membership,orgs,orgs,memberships,get_membership_for_authenticated_user,select,,Get an organization membership for the authenticated user -orgs.yaml,/orgs/{org}/memberships/{username},orgs/get-membership-for-user,orgs/get_membership_for_user,get,org-membership,orgs,orgs,memberships,get_membership_for_user,select,,Get organization membership for a user -orgs.yaml,/orgs/{org}/organization-roles/{role_id},orgs/get-org-role,orgs/get_org_role,get,,orgs,orgs,roles,get_org_role,select,,Get an organization role -orgs.yaml,/orgs/{org}/rulesets/{ruleset_id}/history,orgs/get-org-ruleset-history,orgs/get_org_ruleset_history,get,,orgs,orgs,ruleset_history,get_org_ruleset_history,select,,Get organization ruleset history -orgs.yaml,/orgs/{org}/rulesets/{ruleset_id}/history/{version_id},orgs/get-org-ruleset-version,orgs/get_org_ruleset_version,get,,orgs,orgs,ruleset_history,get_org_ruleset_version,select,,Get organization ruleset version -orgs.yaml,/orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id},api-insights/get-route-stats-by-actor,api_insights/get_route_stats_by_actor,get,,orgs,orgs,api_insights_route_stats,get_route_stats_by_actor,select,,Get route stats by actor -orgs.yaml,/orgs/{org}/insights/api/subject-stats,api-insights/get-subject-stats,api_insights/get_subject_stats,get,,orgs,orgs,api_insights_subject_stats,get_subject_stats,select,,Get subject stats -orgs.yaml,/orgs/{org}/insights/api/summary-stats,api-insights/get-summary-stats,api_insights/get_summary_stats,get,,orgs,orgs,api_insights_summary_stats,get_summary_stats,select,,Get summary stats -orgs.yaml,/orgs/{org}/insights/api/summary-stats/{actor_type}/{actor_id},api-insights/get-summary-stats-by-actor,api_insights/get_summary_stats_by_actor,get,,orgs,orgs,api_insights_summary_stats,get_summary_stats_by_actor,select,,Get summary stats by actor -orgs.yaml,/orgs/{org}/insights/api/summary-stats/users/{user_id},api-insights/get-summary-stats-by-user,api_insights/get_summary_stats_by_user,get,,orgs,orgs,api_insights_summary_stats,get_summary_stats_by_user,select,,Get summary stats by user -orgs.yaml,/orgs/{org}/insights/api/time-stats,api-insights/get-time-stats,api_insights/get_time_stats,get,,orgs,orgs,api_insights_time_stats,get_time_stats,select,,Get time stats -orgs.yaml,/orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id},api-insights/get-time-stats-by-actor,api_insights/get_time_stats_by_actor,get,,orgs,orgs,api_insights_time_stats,get_time_stats_by_actor,select,,Get time stats by actor -orgs.yaml,/orgs/{org}/insights/api/time-stats/users/{user_id},api-insights/get-time-stats-by-user,api_insights/get_time_stats_by_user,get,,orgs,orgs,api_insights_time_stats,get_time_stats_by_user,select,,Get time stats by user -orgs.yaml,/orgs/{org}/insights/api/user-stats/{user_id},api-insights/get-user-stats,api_insights/get_user_stats,get,,orgs,orgs,api_insights_user_stats,get_user_stats,select,,Get user stats -orgs.yaml,/orgs/{org}/hooks/{hook_id},orgs/get-webhook,orgs/get_webhook,get,org-hook,orgs,orgs,webhooks,get_webhook,select,,Get an organization webhook -orgs.yaml,/orgs/{org}/hooks/{hook_id}/config,orgs/get-webhook-config-for-org,orgs/get_webhook_config_for_org,get,webhook-config,orgs,orgs,webhook_config,get_webhook_config_for_org,select,,Get a webhook configuration for an organization -orgs.yaml,/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id},orgs/get-webhook-delivery,orgs/get_webhook_delivery,get,hook-delivery,orgs,orgs,webhook_delivery,get_webhook_delivery,select,,Get a webhook delivery for an organization webhook -orgs.yaml,/organizations,orgs/list,orgs/list,get,organization-simple,orgs,orgs,orgs,list,select,,List organizations -orgs.yaml,/orgs/{org}/installations,orgs/list-app-installations,orgs/list_app_installations,get,,orgs,orgs,app_installations,list_app_installations,select,$.installations,List app installations for an organization -orgs.yaml,/orgs/{org}/artifacts/{subject_digest}/metadata/deployment-records,orgs/list-artifact-deployment-records,orgs/list_artifact_deployment_records,get,,orgs,orgs,artifact_deployment_records,list_artifact_deployment_records,select,$.deployment_records,List artifact deployment records -orgs.yaml,/orgs/{org}/artifacts/{subject_digest}/metadata/storage-records,orgs/list-artifact-storage-records,orgs/list_artifact_storage_records,get,,orgs,orgs,artifact_storage_records,list_artifact_storage_records,select,$.storage_records,List artifact storage records -orgs.yaml,/orgs/{org}/attestations/repositories,orgs/list-attestation-repositories,orgs/list_attestation_repositories,get,,orgs,orgs,attestation_repositories,list_attestation_repositories,select,,List attestation repositories -orgs.yaml,/orgs/{org}/attestations/{subject_digest},orgs/list-attestations,orgs/list_attestations,get,,orgs,orgs,attestations,list_attestations,select,$.attestations,List attestations -orgs.yaml,/orgs/{org}/attestations/bulk-list,orgs/list-attestations-bulk,orgs/list_attestations_bulk,post,,orgs,orgs,attestations,list_attestations_bulk,exec,,List attestations by bulk subject digests -orgs.yaml,/orgs/{org}/blocks,orgs/list-blocked-users,orgs/list_blocked_users,get,simple-user,orgs,orgs,blocking,list_blocked_users,select,,List users blocked by an organization -orgs.yaml,/orgs/{org}/failed_invitations,orgs/list-failed-invitations,orgs/list_failed_invitations,get,organization-invitation,orgs,orgs,failed_invitations,list_failed_invitations,select,,List failed organization invitations -orgs.yaml,/user/orgs,orgs/list-for-authenticated-user,orgs/list_for_authenticated_user,get,organization-simple,orgs,orgs,orgs_for_user,list_for_authenticated_user,select,,List organizations for the authenticated user -orgs.yaml,/users/{username}/orgs,orgs/list-for-user,orgs/list_for_user,get,organization-simple,orgs,orgs,orgs,list_for_user,select,,List organizations for a user -orgs.yaml,/orgs/{org}/invitations/{invitation_id}/teams,orgs/list-invitation-teams,orgs/list_invitation_teams,get,team,orgs,orgs,invitation_teams,list_invitation_teams,select,,List organization invitation teams -orgs.yaml,/orgs/{org}/issue-fields,orgs/list-issue-fields,orgs/list_issue_fields,get,,orgs,orgs,issue_fields,list_issue_fields,select,,List issue fields for an organization -orgs.yaml,/orgs/{org}/issue-types,orgs/list-issue-types,orgs/list_issue_types,get,,orgs,orgs,issue_types,list_issue_types,select,,List issue types for an organization -orgs.yaml,/orgs/{org}/members,orgs/list-members,orgs/list_members,get,simple-user,orgs,orgs,members,list_members,select,,List organization members -orgs.yaml,/user/memberships/orgs,orgs/list-memberships-for-authenticated-user,orgs/list_memberships_for_authenticated_user,get,org-membership,orgs,orgs,memberships,list_memberships_for_authenticated_user,select,,List organization memberships for the authenticated user -orgs.yaml,/orgs/{org}/organization-roles/{role_id}/teams,orgs/list-org-role-teams,orgs/list_org_role_teams,get,,orgs,orgs,role_team_assignments,list_org_role_teams,select,,List teams that are assigned to an organization role -orgs.yaml,/orgs/{org}/organization-roles/{role_id}/users,orgs/list-org-role-users,orgs/list_org_role_users,get,,orgs,orgs,role_user_assignments,list_org_role_users,select,,List users that are assigned to an organization role -orgs.yaml,/orgs/{org}/organization-roles,orgs/list-org-roles,orgs/list_org_roles,get,,orgs,orgs,roles,list_org_roles,select,$.roles,Get all organization roles for an organization -orgs.yaml,/orgs/{org}/outside_collaborators,orgs/list-outside-collaborators,orgs/list_outside_collaborators,get,simple-user,orgs,orgs,outside_collaborators,list_outside_collaborators,select,,List outside collaborators for an organization -orgs.yaml,/orgs/{org}/personal-access-tokens/{pat_id}/repositories,orgs/list-pat-grant-repositories,orgs/list_pat_grant_repositories,get,minimal-repository,orgs,orgs,repos_for_pat_grants,list_pat_grant_repositories,select,,List repositories a fine-grained personal access token has access to -orgs.yaml,/orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories,orgs/list-pat-grant-request-repositories,orgs/list_pat_grant_request_repositories,get,minimal-repository,orgs,orgs,repos_for_pat_grant_requests,list_pat_grant_request_repositories,select,,List repositories requested to be accessed by a fine-grained personal access token -orgs.yaml,/orgs/{org}/personal-access-token-requests,orgs/list-pat-grant-requests,orgs/list_pat_grant_requests,get,organization-programmatic-access-grant-request,orgs,orgs,pat_grant_requests,list_pat_grant_requests,select,,List requests to access organization resources with fine-grained personal access tokens -orgs.yaml,/orgs/{org}/personal-access-tokens,orgs/list-pat-grants,orgs/list_pat_grants,get,organization-programmatic-access-grant,orgs,orgs,pat_grants,list_pat_grants,select,,List fine-grained personal access tokens with access to organization resources -orgs.yaml,/orgs/{org}/invitations,orgs/list-pending-invitations,orgs/list_pending_invitations,get,organization-invitation,orgs,orgs,invitations,list_pending_invitations,select,,List pending organization invitations -orgs.yaml,/orgs/{org}/public_members,orgs/list-public-members,orgs/list_public_members,get,simple-user,orgs,orgs,public_members,list_public_members,select,,List public organization members -orgs.yaml,/orgs/{org}/security-managers,orgs/list-security-manager-teams,orgs/list_security_manager_teams,get,team-simple,orgs,orgs,security_managers,list_security_manager_teams,select,,List security manager teams -orgs.yaml,/orgs/{org}/hooks/{hook_id}/deliveries,orgs/list-webhook-deliveries,orgs/list_webhook_deliveries,get,hook-delivery-item,orgs,orgs,webhook_deliveries,list_webhook_deliveries,select,,List deliveries for an organization webhook -orgs.yaml,/orgs/{org}/hooks,orgs/list-webhooks,orgs/list_webhooks,get,org-hook,orgs,orgs,webhooks,list_webhooks,select,,List organization webhooks -orgs.yaml,/orgs/{org}/hooks/{hook_id}/pings,orgs/ping-webhook,orgs/ping_webhook,post,,orgs,orgs,webhooks,ping_webhook,exec,,Ping an organization webhook -orgs.yaml,/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts,orgs/redeliver-webhook-delivery,orgs/redeliver_webhook_delivery,post,,orgs,orgs,webhook_delivery,redeliver_webhook_delivery,exec,,Redeliver a delivery for an organization webhook -orgs.yaml,/orgs/{org}/members/{username},orgs/remove-member,orgs/remove_member,delete,,orgs,orgs,members,remove_member,delete,,Remove an organization member -orgs.yaml,/orgs/{org}/memberships/{username},orgs/remove-membership-for-user,orgs/remove_membership_for_user,delete,,orgs,orgs,memberships,remove_membership_for_user,delete,,Remove organization membership for a user -orgs.yaml,/orgs/{org}/outside_collaborators/{username},orgs/remove-outside-collaborator,orgs/remove_outside_collaborator,delete,,orgs,orgs,outside_collaborators,remove_outside_collaborator,delete,,Remove outside collaborator from an organization -orgs.yaml,/orgs/{org}/public_members/{username},orgs/remove-public-membership-for-authenticated-user,orgs/remove_public_membership_for_authenticated_user,delete,,orgs,orgs,public_members,remove_public_membership_for_authenticated_user,delete,,Remove public organization membership for the authenticated user -orgs.yaml,/orgs/{org}/security-managers/teams/{team_slug},orgs/remove-security-manager-team,orgs/remove_security_manager_team,delete,,orgs,orgs,security_managers,remove_security_manager_team,delete,,Remove a security manager team -orgs.yaml,/orgs/{org}/personal-access-token-requests/{pat_request_id},orgs/review-pat-grant-request,orgs/review_pat_grant_request,post,,orgs,orgs,pat_grant_requests,review_pat_grant_request,exec,,Review a request to access organization resources with a fine-grained personal access token -orgs.yaml,/orgs/{org}/personal-access-token-requests,orgs/review-pat-grant-requests-in-bulk,orgs/review_pat_grant_requests_in_bulk,post,,orgs,orgs,pat_grant_requests,review_pat_grant_requests_in_bulk,exec,,Review requests to access organization resources with fine-grained personal access tokens -orgs.yaml,/orgs/{org}/organization-roles/teams/{team_slug},orgs/revoke-all-org-roles-team,orgs/revoke_all_org_roles_team,delete,,orgs,orgs,role_team_assignments,revoke_all_org_roles_team,delete,,Remove all organization roles for a team -orgs.yaml,/orgs/{org}/organization-roles/users/{username},orgs/revoke-all-org-roles-user,orgs/revoke_all_org_roles_user,delete,,orgs,orgs,role_user_assignments,revoke_all_org_roles_user,delete,,Remove all organization roles for a user -orgs.yaml,/orgs/{org}/organization-roles/teams/{team_slug}/{role_id},orgs/revoke-org-role-team,orgs/revoke_org_role_team,delete,,orgs,orgs,role_team_assignments,revoke_org_role_team,delete,,Remove an organization role from a team -orgs.yaml,/orgs/{org}/organization-roles/users/{username}/{role_id},orgs/revoke-org-role-user,orgs/revoke_org_role_user,delete,,orgs,orgs,role_user_assignments,revoke_org_role_user,delete,,Remove an organization role from a user -orgs.yaml,/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster},orgs/set-cluster-deployment-records,orgs/set_cluster_deployment_records,post,,orgs,orgs,artifact_deployment_records,set_cluster_deployment_records,insert,,Set cluster deployment records -orgs.yaml,/orgs/{org}/settings/immutable-releases,orgs/set-immutable-releases-settings,orgs/set_immutable_releases_settings,put,,orgs,orgs,immutable_releases_settings,set_immutable_releases_settings,replace,,Set immutable releases settings for an organization -orgs.yaml,/orgs/{org}/settings/immutable-releases/repositories,orgs/set-immutable-releases-settings-repositories,orgs/set_immutable_releases_settings_repositories,put,,orgs,orgs,immutable_releases_repos,set_immutable_releases_settings_repositories,replace,,Set selected repositories for immutable releases enforcement -orgs.yaml,/orgs/{org}/memberships/{username},orgs/set-membership-for-user,orgs/set_membership_for_user,put,org-membership,orgs,orgs,memberships,set_membership_for_user,replace,,Set organization membership for a user -orgs.yaml,/orgs/{org}/public_members/{username},orgs/set-public-membership-for-authenticated-user,orgs/set_public_membership_for_authenticated_user,put,,orgs,orgs,public_members,set_public_membership_for_authenticated_user,replace,,Set public organization membership for the authenticated user -orgs.yaml,/orgs/{org}/blocks/{username},orgs/unblock-user,orgs/unblock_user,delete,,orgs,orgs,blocking,unblock_user,exec,,Unblock a user from an organization -orgs.yaml,/orgs/{org},orgs/update,orgs/update,patch,organization-full,orgs,orgs,orgs,update,update,,Update an organization -orgs.yaml,/orgs/{org}/issue-fields/{issue_field_id},orgs/update-issue-field,orgs/update_issue_field,patch,,orgs,orgs,issue_fields,update_issue_field,update,,Update issue field for an organization -orgs.yaml,/orgs/{org}/issue-types/{issue_type_id},orgs/update-issue-type,orgs/update_issue_type,put,,orgs,orgs,issue_types,update_issue_type,replace,,Update issue type for an organization -orgs.yaml,/user/memberships/orgs/{org},orgs/update-membership-for-authenticated-user,orgs/update_membership_for_authenticated_user,patch,org-membership,orgs,orgs,memberships,update_membership_for_authenticated_user,update,,Update an organization membership for the authenticated user -orgs.yaml,/orgs/{org}/personal-access-tokens/{pat_id},orgs/update-pat-access,orgs/update_pat_access,post,,orgs,orgs,pat_grants,update_pat_access,exec,,Update the access a fine-grained personal access token has to organization resources -orgs.yaml,/orgs/{org}/personal-access-tokens,orgs/update-pat-accesses,orgs/update_pat_accesses,post,,orgs,orgs,pat_grants,update_pat_accesses,exec,,Update the access to organization resources via fine-grained personal access tokens -orgs.yaml,/orgs/{org}/hooks/{hook_id},orgs/update-webhook,orgs/update_webhook,patch,org-hook,orgs,orgs,webhooks,update_webhook,update,,Update an organization webhook -orgs.yaml,/orgs/{org}/hooks/{hook_id}/config,orgs/update-webhook-config-for-org,orgs/update_webhook_config_for_org,patch,webhook-config,orgs,orgs,webhook_config,update_webhook_config_for_org,update,,Update a webhook configuration for an organization -packages.yaml,/user/packages/{package_type}/{package_name},packages/delete-package-for-authenticated-user,packages/delete_package_for_authenticated_user,delete,,packages,packages,packages,delete_package_for_authenticated_user,delete,,Delete a package for the authenticated user -packages.yaml,/orgs/{org}/packages/{package_type}/{package_name},packages/delete-package-for-org,packages/delete_package_for_org,delete,,packages,packages,packages,delete_package_for_org,delete,,Delete a package for an organization -packages.yaml,/users/{username}/packages/{package_type}/{package_name},packages/delete-package-for-user,packages/delete_package_for_user,delete,,packages,packages,packages,delete_package_for_user,delete,,Delete a package for a user -packages.yaml,/user/packages/{package_type}/{package_name}/versions/{package_version_id},packages/delete-package-version-for-authenticated-user,packages/delete_package_version_for_authenticated_user,delete,,packages,packages,package_versions,delete_package_version_for_authenticated_user,delete,,Delete a package version for the authenticated user -packages.yaml,/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id},packages/delete-package-version-for-org,packages/delete_package_version_for_org,delete,,packages,packages,package_versions,delete_package_version_for_org,delete,,Delete package version for an organization -packages.yaml,/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id},packages/delete-package-version-for-user,packages/delete_package_version_for_user,delete,,packages,packages,package_versions,delete_package_version_for_user,delete,,Delete package version for a user -packages.yaml,/user/packages/{package_type}/{package_name}/versions,packages/get-all-package-versions-for-package-owned-by-authenticated-user,packages/get_all_package_versions_for_package_owned_by_authenticated_user,get,package-version,packages,packages,package_versions,get_all_package_versions_for_package_owned_by_authenticated_user,select,,List package versions for a package owned by the authenticated user -packages.yaml,/orgs/{org}/packages/{package_type}/{package_name}/versions,packages/get-all-package-versions-for-package-owned-by-org,packages/get_all_package_versions_for_package_owned_by_org,get,package-version,packages,packages,package_versions,get_all_package_versions_for_package_owned_by_org,select,,List package versions for a package owned by an organization -packages.yaml,/users/{username}/packages/{package_type}/{package_name}/versions,packages/get-all-package-versions-for-package-owned-by-user,packages/get_all_package_versions_for_package_owned_by_user,get,package-version,packages,packages,package_versions,get_all_package_versions_for_package_owned_by_user,select,,List package versions for a package owned by a user -packages.yaml,/user/packages/{package_type}/{package_name},packages/get-package-for-authenticated-user,packages/get_package_for_authenticated_user,get,package,packages,packages,packages,get_package_for_authenticated_user,select,,Get a package for the authenticated user -packages.yaml,/orgs/{org}/packages/{package_type}/{package_name},packages/get-package-for-organization,packages/get_package_for_organization,get,package,packages,packages,packages,get_package_for_organization,select,,Get a package for an organization -packages.yaml,/users/{username}/packages/{package_type}/{package_name},packages/get-package-for-user,packages/get_package_for_user,get,package,packages,packages,packages,get_package_for_user,select,,Get a package for a user -packages.yaml,/user/packages/{package_type}/{package_name}/versions/{package_version_id},packages/get-package-version-for-authenticated-user,packages/get_package_version_for_authenticated_user,get,package-version,packages,packages,package_versions,get_package_version_for_authenticated_user,select,,Get a package version for the authenticated user -packages.yaml,/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id},packages/get-package-version-for-organization,packages/get_package_version_for_organization,get,package-version,packages,packages,package_versions,get_package_version_for_organization,select,,Get a package version for an organization -packages.yaml,/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id},packages/get-package-version-for-user,packages/get_package_version_for_user,get,package-version,packages,packages,package_versions,get_package_version_for_user,select,,Get a package version for a user -packages.yaml,/user/docker/conflicts,packages/list-docker-migration-conflicting-packages-for-authenticated-user,packages/list_docker_migration_conflicting_packages_for_authenticated_user,get,package,packages,packages,docker_migration_packages,list_docker_migration_conflicting_packages_for_authenticated_user,select,,Get list of conflicting packages during Docker migration for authenticated-user -packages.yaml,/orgs/{org}/docker/conflicts,packages/list-docker-migration-conflicting-packages-for-organization,packages/list_docker_migration_conflicting_packages_for_organization,get,package,packages,packages,docker_migration_packages,list_docker_migration_conflicting_packages_for_organization,select,,Get list of conflicting packages during Docker migration for organization -packages.yaml,/users/{username}/docker/conflicts,packages/list-docker-migration-conflicting-packages-for-user,packages/list_docker_migration_conflicting_packages_for_user,get,package,packages,packages,docker_migration_packages,list_docker_migration_conflicting_packages_for_user,select,,Get list of conflicting packages during Docker migration for user -packages.yaml,/user/packages,packages/list-packages-for-authenticated-user,packages/list_packages_for_authenticated_user,get,package,packages,packages,packages,list_packages_for_authenticated_user,select,,List packages for the authenticated user's namespace -packages.yaml,/orgs/{org}/packages,packages/list-packages-for-organization,packages/list_packages_for_organization,get,package,packages,packages,packages,list_packages_for_organization,select,,List packages for an organization -packages.yaml,/users/{username}/packages,packages/list-packages-for-user,packages/list_packages_for_user,get,package,packages,packages,packages,list_packages_for_user,select,,List packages for a user -packages.yaml,/user/packages/{package_type}/{package_name}/restore,packages/restore-package-for-authenticated-user,packages/restore_package_for_authenticated_user,post,,packages,packages,packages,restore_package_for_authenticated_user,exec,,Restore a package for the authenticated user -packages.yaml,/orgs/{org}/packages/{package_type}/{package_name}/restore,packages/restore-package-for-org,packages/restore_package_for_org,post,,packages,packages,packages,restore_package_for_org,exec,,Restore a package for an organization -packages.yaml,/users/{username}/packages/{package_type}/{package_name}/restore,packages/restore-package-for-user,packages/restore_package_for_user,post,,packages,packages,packages,restore_package_for_user,exec,,Restore a package for a user -packages.yaml,/user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore,packages/restore-package-version-for-authenticated-user,packages/restore_package_version_for_authenticated_user,post,,packages,packages,package_versions,restore_package_version_for_authenticated_user,exec,,Restore a package version for the authenticated user -packages.yaml,/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore,packages/restore-package-version-for-org,packages/restore_package_version_for_org,post,,packages,packages,package_versions,restore_package_version_for_org,exec,,Restore package version for an organization -packages.yaml,/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore,packages/restore-package-version-for-user,packages/restore_package_version_for_user,post,,packages,packages,package_versions,restore_package_version_for_user,exec,,Restore package version for a user -private_registries.yaml,/orgs/{org}/private-registries,private-registries/create-org-private-registry,private_registries/create_org_private_registry,post,,private-registries,private_registries,private_registries,create_org_private_registry,insert,,Create a private registry for an organization -private_registries.yaml,/orgs/{org}/private-registries/{secret_name},private-registries/delete-org-private-registry,private_registries/delete_org_private_registry,delete,,private-registries,private_registries,private_registries,delete_org_private_registry,delete,,Delete a private registry for an organization -private_registries.yaml,/orgs/{org}/private-registries/{secret_name},private-registries/get-org-private-registry,private_registries/get_org_private_registry,get,,private-registries,private_registries,private_registries,get_org_private_registry,select,,Get a private registry for an organization -private_registries.yaml,/orgs/{org}/private-registries/public-key,private-registries/get-org-public-key,private_registries/get_org_public_key,get,,private-registries,private_registries,private_registry_public_key,get_org_public_key,select,,Get private registries public key for an organization -private_registries.yaml,/orgs/{org}/private-registries,private-registries/list-org-private-registries,private_registries/list_org_private_registries,get,,private-registries,private_registries,private_registries,list_org_private_registries,select,$.configurations,List private registries for an organization -private_registries.yaml,/orgs/{org}/private-registries/{secret_name},private-registries/update-org-private-registry,private_registries/update_org_private_registry,patch,,private-registries,private_registries,private_registries,update_org_private_registry,update,,Update a private registry for an organization -projects.yaml,/orgs/{org}/projectsV2/{project_number}/fields,projects/add-field-for-org,projects/add_field_for_org,post,,projects,projects,project_fields,add_field_for_org,insert,,Add a field to an organization-owned project. -projects.yaml,/users/{username}/projectsV2/{project_number}/fields,projects/add-field-for-user,projects/add_field_for_user,post,,projects,projects,project_fields,add_field_for_user,insert,,Add field to user owned project -projects.yaml,/orgs/{org}/projectsV2/{project_number}/items,projects/add-item-for-org,projects/add_item_for_org,post,,projects,projects,project_items,add_item_for_org,insert,,Add item to organization owned project -projects.yaml,/users/{username}/projectsV2/{project_number}/items,projects/add-item-for-user,projects/add_item_for_user,post,,projects,projects,project_items,add_item_for_user,insert,,Add item to user owned project -projects.yaml,/user/{user_id}/projectsV2/{project_number}/drafts,projects/create-draft-item-for-authenticated-user,projects/create_draft_item_for_authenticated_user,post,,projects,projects,project_items,create_draft_item_for_authenticated_user,insert,,Create draft item for user owned project -projects.yaml,/orgs/{org}/projectsV2/{project_number}/drafts,projects/create-draft-item-for-org,projects/create_draft_item_for_org,post,,projects,projects,project_draft_items,create_draft_item_for_org,insert,,Create draft item for organization owned project -projects.yaml,/orgs/{org}/projectsV2/{project_number}/views,projects/create-view-for-org,projects/create_view_for_org,post,,projects,projects,project_views,create_view_for_org,insert,,Create a view for an organization-owned project -projects.yaml,/users/{user_id}/projectsV2/{project_number}/views,projects/create-view-for-user,projects/create_view_for_user,post,,projects,projects,project_views,create_view_for_user,insert,,Create a view for a user-owned project -projects.yaml,/orgs/{org}/projectsV2/{project_number}/items/{item_id},projects/delete-item-for-org,projects/delete_item_for_org,delete,,projects,projects,project_items,delete_item_for_org,delete,,Delete project item for organization -projects.yaml,/users/{username}/projectsV2/{project_number}/items/{item_id},projects/delete-item-for-user,projects/delete_item_for_user,delete,,projects,projects,project_items,delete_item_for_user,delete,,Delete project item for user -projects.yaml,/orgs/{org}/projectsV2/{project_number}/fields/{field_id},projects/get-field-for-org,projects/get_field_for_org,get,,projects,projects,project_fields,get_field_for_org,select,,Get project field for organization -projects.yaml,/users/{username}/projectsV2/{project_number}/fields/{field_id},projects/get-field-for-user,projects/get_field_for_user,get,,projects,projects,project_fields,get_field_for_user,select,,Get project field for user -projects.yaml,/orgs/{org}/projectsV2/{project_number},projects/get-for-org,projects/get_for_org,get,,projects,projects,projects,get_for_org,select,,Get project for organization -projects.yaml,/users/{username}/projectsV2/{project_number},projects/get-for-user,projects/get_for_user,get,,projects,projects,projects,get_for_user,select,,Get project for user -projects.yaml,/orgs/{org}/projectsV2/{project_number}/items/{item_id},projects/get-org-item,projects/get_org_item,get,,projects,projects,project_items,get_org_item,select,,Get an item for an organization owned project -projects.yaml,/users/{username}/projectsV2/{project_number}/items/{item_id},projects/get-user-item,projects/get_user_item,get,,projects,projects,project_items,get_user_item,select,,Get an item for a user owned project -projects.yaml,/orgs/{org}/projectsV2/{project_number}/fields,projects/list-fields-for-org,projects/list_fields_for_org,get,,projects,projects,project_fields,list_fields_for_org,select,,List project fields for organization -projects.yaml,/users/{username}/projectsV2/{project_number}/fields,projects/list-fields-for-user,projects/list_fields_for_user,get,,projects,projects,project_fields,list_fields_for_user,select,,List project fields for user -projects.yaml,/orgs/{org}/projectsV2,projects/list-for-org,projects/list_for_org,get,project,projects,projects,projects,list_for_org,select,,List organization projects -projects.yaml,/users/{username}/projectsV2,projects/list-for-user,projects/list_for_user,get,project,projects,projects,projects,list_for_user,select,,List user projects -projects.yaml,/orgs/{org}/projectsV2/{project_number}/items,projects/list-items-for-org,projects/list_items_for_org,get,,projects,projects,project_items,list_items_for_org,select,,List items for an organization owned project -projects.yaml,/users/{username}/projectsV2/{project_number}/items,projects/list-items-for-user,projects/list_items_for_user,get,,projects,projects,project_items,list_items_for_user,select,,List items for a user owned project -projects.yaml,/orgs/{org}/projectsV2/{project_number}/views/{view_number}/items,projects/list-view-items-for-org,projects/list_view_items_for_org,get,,projects,projects,project_view_items,list_view_items_for_org,select,,List items for an organization project view -projects.yaml,/users/{username}/projectsV2/{project_number}/views/{view_number}/items,projects/list-view-items-for-user,projects/list_view_items_for_user,get,,projects,projects,project_view_items,list_view_items_for_user,select,,List items for a user project view -projects.yaml,/orgs/{org}/projectsV2/{project_number}/items/{item_id},projects/update-item-for-org,projects/update_item_for_org,patch,,projects,projects,project_items,update_item_for_org,update,,Update project item for organization -projects.yaml,/users/{username}/projectsV2/{project_number}/items/{item_id},projects/update-item-for-user,projects/update_item_for_user,patch,,projects,projects,project_items,update_item_for_user,update,,Update project item for user -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/merge,pulls/check-if-merged,pulls/check_if_merged,get,,pulls,pulls,pull_request,check_if_merged,exec,,Check if a pull request has been merged -pulls.yaml,/repos/{owner}/{repo}/pulls,pulls/create,pulls/create,post,pull-request,pulls,pulls,pull_request,create,insert,,Create a pull request -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies,pulls/create-reply-for-review-comment,pulls/create_reply_for_review_comment,post,pull-request-review-comment,pulls,pulls,comments,create_reply_for_review_comment,insert,,Create a reply for a review comment -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/reviews,pulls/create-review,pulls/create_review,post,pull-request-review,pulls,pulls,reviews,create_review,insert,,Create a review for a pull request -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/comments,pulls/create-review-comment,pulls/create_review_comment,post,pull-request-review-comment,pulls,pulls,comments,create_review_comment,insert,,Create a review comment for a pull request -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id},pulls/delete-pending-review,pulls/delete_pending_review,delete,pull-request-review,pulls,pulls,reviews,delete_pending_review,delete,,Delete a pending review for a pull request -pulls.yaml,/repos/{owner}/{repo}/pulls/comments/{comment_id},pulls/delete-review-comment,pulls/delete_review_comment,delete,,pulls,pulls,comments,delete_review_comment,delete,,Delete a review comment for a pull request -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals,pulls/dismiss-review,pulls/dismiss_review,put,pull-request-review,pulls,pulls,reviews,dismiss_review,exec,,Dismiss a review for a pull request -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number},pulls/get,pulls/get,get,pull-request,pulls,pulls,pull_request,get,select,,Get a pull request -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id},pulls/get-review,pulls/get_review,get,pull-request-review,pulls,pulls,reviews,get_review,select,,Get a review for a pull request -pulls.yaml,/repos/{owner}/{repo}/pulls/comments/{comment_id},pulls/get-review-comment,pulls/get_review_comment,get,pull-request-review-comment,pulls,pulls,comments,get_review_comment,select,,Get a review comment for a pull request -pulls.yaml,/repos/{owner}/{repo}/pulls,pulls/list,pulls/list,get,pull-request-simple,pulls,pulls,pull_requests,list,select,,List pull requests -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments,pulls/list-comments-for-review,pulls/list_comments_for_review,get,review-comment,pulls,pulls,comments_for_review,list_comments_for_review,select,,List comments for a pull request review -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/commits,pulls/list-commits,pulls/list_commits,get,commit,pulls,pulls,commits,list_commits,select,,List commits on a pull request -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/files,pulls/list-files,pulls/list_files,get,diff-entry,pulls,pulls,files,list_files,select,,List pull requests files -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers,pulls/list-requested-reviewers,pulls/list_requested_reviewers,get,pull-request-review-request,pulls,pulls,review_requests,list_requested_reviewers,select,,Get all requested reviewers for a pull request -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/comments,pulls/list-review-comments,pulls/list_review_comments,get,pull-request-review-comment,pulls,pulls,comments,list_review_comments,select,,List review comments on a pull request -pulls.yaml,/repos/{owner}/{repo}/pulls/comments,pulls/list-review-comments-for-repo,pulls/list_review_comments_for_repo,get,pull-request-review-comment,pulls,pulls,comments,list_review_comments_for_repo,select,,List review comments in a repository -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/reviews,pulls/list-reviews,pulls/list_reviews,get,pull-request-review,pulls,pulls,reviews,list_reviews,select,,List reviews for a pull request -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/merge,pulls/merge,pulls/merge,put,pull-request-merge-result,pulls,pulls,pull_request,merge,exec,,Merge a pull request -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers,pulls/remove-requested-reviewers,pulls/remove_requested_reviewers,delete,pull-request-simple,pulls,pulls,review_requests,remove_requested_reviewers,delete,,Remove requested reviewers from a pull request -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers,pulls/request-reviewers,pulls/request_reviewers,post,pull-request-simple,pulls,pulls,review_requests,request_reviewers,insert,,Request reviewers for a pull request -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events,pulls/submit-review,pulls/submit_review,post,pull-request-review,pulls,pulls,reviews,submit_review,exec,,Submit a review for a pull request -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number},pulls/update,pulls/update,patch,pull-request,pulls,pulls,pull_request,update,update,,Update a pull request -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/update-branch,pulls/update-branch,pulls/update_branch,put,,pulls,pulls,pull_request,update_branch,exec,,Update a pull request branch -pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id},pulls/update-review,pulls/update_review,put,pull-request-review,pulls,pulls,reviews,update_review,replace,,Update a review for a pull request -pulls.yaml,/repos/{owner}/{repo}/pulls/comments/{comment_id},pulls/update-review-comment,pulls/update_review_comment,patch,pull-request-review-comment,pulls,pulls,comments,update_review_comment,update,,Update a review comment for a pull request -rate_limit.yaml,/rate_limit,rate-limit/get,rate_limit/get,get,rate-limit-overview,rate-limit,rate_limit,rate_limit,get,select,,Get rate limit status for the authenticated user -reactions.yaml,/repos/{owner}/{repo}/comments/{comment_id}/reactions,reactions/create-for-commit-comment,reactions/create_for_commit_comment,post,reaction,reactions,reactions,commit_comments,create_for_commit_comment,insert,,Create reaction for a commit comment -reactions.yaml,/repos/{owner}/{repo}/issues/{issue_number}/reactions,reactions/create-for-issue,reactions/create_for_issue,post,reaction,reactions,reactions,issue_comments,create_for_issue,insert,,Create reaction for an issue -reactions.yaml,/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions,reactions/create-for-issue-comment,reactions/create_for_issue_comment,post,reaction,reactions,reactions,issue_comments,create_for_issue_comment,insert,,Create reaction for an issue comment -reactions.yaml,/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions,reactions/create-for-pull-request-review-comment,reactions/create_for_pull_request_review_comment,post,reaction,reactions,reactions,pr_comments,create_for_pull_request_review_comment,insert,,Create reaction for a pull request review comment -reactions.yaml,/repos/{owner}/{repo}/releases/{release_id}/reactions,reactions/create-for-release,reactions/create_for_release,post,reaction,reactions,reactions,release_comments,create_for_release,insert,,Create reaction for a release -reactions.yaml,/repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id},reactions/delete-for-commit-comment,reactions/delete_for_commit_comment,delete,,reactions,reactions,commit_comments,delete_for_commit_comment,delete,,Delete a commit comment reaction -reactions.yaml,/repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id},reactions/delete-for-issue,reactions/delete_for_issue,delete,,reactions,reactions,issue_comments,delete_for_issue,delete,,Delete an issue reaction -reactions.yaml,/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id},reactions/delete-for-issue-comment,reactions/delete_for_issue_comment,delete,,reactions,reactions,issue_comments,delete_for_issue_comment,delete,,Delete an issue comment reaction -reactions.yaml,/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id},reactions/delete-for-pull-request-comment,reactions/delete_for_pull_request_comment,delete,,reactions,reactions,pr_comments,delete_for_pull_request_comment,delete,,Delete a pull request comment reaction -reactions.yaml,/repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id},reactions/delete-for-release,reactions/delete_for_release,delete,,reactions,reactions,release_comments,delete_for_release,delete,,Delete a release reaction -reactions.yaml,/repos/{owner}/{repo}/comments/{comment_id}/reactions,reactions/list-for-commit-comment,reactions/list_for_commit_comment,get,reaction,reactions,reactions,commit_comments,list_for_commit_comment,select,,List reactions for a commit comment -reactions.yaml,/repos/{owner}/{repo}/issues/{issue_number}/reactions,reactions/list-for-issue,reactions/list_for_issue,get,reaction,reactions,reactions,issue_comments,list_for_issue,select,,List reactions for an issue -reactions.yaml,/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions,reactions/list-for-issue-comment,reactions/list_for_issue_comment,get,reaction,reactions,reactions,issue_comments,list_for_issue_comment,select,,List reactions for an issue comment -reactions.yaml,/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions,reactions/list-for-pull-request-review-comment,reactions/list_for_pull_request_review_comment,get,reaction,reactions,reactions,pr_comments,list_for_pull_request_review_comment,select,,List reactions for a pull request review comment -reactions.yaml,/repos/{owner}/{repo}/releases/{release_id}/reactions,reactions/list-for-release,reactions/list_for_release,get,reaction,reactions,reactions,release_comments,list_for_release,select,,List reactions for a release -repos.yaml,/user/repository_invitations/{invitation_id},repos/accept-invitation-for-authenticated-user,repos/accept_invitation_for_authenticated_user,patch,,repos,repos,invitations,accept_invitation_for_authenticated_user,exec,,Accept a repository invitation -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps,repos/add-app-access-restrictions,repos/add_app_access_restrictions,post,integration,repos,repos,app_access_restrictions,add_app_access_restrictions,insert,,Add app access restrictions -repos.yaml,/repos/{owner}/{repo}/collaborators/{username},repos/add-collaborator,repos/add_collaborator,put,repository-invitation,repos,repos,collaborators,add_collaborator,insert,,Add a repository collaborator -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts,repos/add-status-check-contexts,repos/add_status_check_contexts,post,,repos,repos,status_check_contexts,add_status_check_contexts,insert,,Add status check contexts -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams,repos/add-team-access-restrictions,repos/add_team_access_restrictions,post,team,repos,repos,team_access_restrictions,add_team_access_restrictions,insert,,Add team access restrictions -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users,repos/add-user-access-restrictions,repos/add_user_access_restrictions,post,simple-user,repos,repos,user_access_restrictions,add_user_access_restrictions,insert,,Add user access restrictions -repos.yaml,/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel,repos/cancel-pages-deployment,repos/cancel_pages_deployment,post,,repos,repos,repo_pages_deployments,cancel_pages_deployment,insert,,Cancel a GitHub Pages deployment -repos.yaml,/repos/{owner}/{repo}/automated-security-fixes,repos/check-automated-security-fixes,repos/check_automated_security_fixes,get,check-automated-security-fixes,repos,repos,security_fixes,check_automated_security_fixes,select,,Check if automated security fixes are enabled for a repository -repos.yaml,/repos/{owner}/{repo}/collaborators/{username},repos/check-collaborator,repos/check_collaborator,get,,repos,repos,collaborators,check_collaborator,exec,,Check if a user is a repository collaborator -repos.yaml,/repos/{owner}/{repo}/immutable-releases,repos/check-immutable-releases,repos/check_immutable_releases,get,,repos,repos,repo_immutable_releases,check_immutable_releases,select,,Check if immutable releases are enabled for a repository -repos.yaml,/repos/{owner}/{repo}/private-vulnerability-reporting,repos/check-private-vulnerability-reporting,repos/check_private_vulnerability_reporting,get,,repos,repos,private_vulnerability_reporting,check_private_vulnerability_reporting,select,,Check if private vulnerability reporting is enabled for a repository -repos.yaml,/repos/{owner}/{repo}/vulnerability-alerts,repos/check-vulnerability-alerts,repos/check_vulnerability_alerts,get,,repos,repos,vulnerability_alerts,check_vulnerability_alerts,exec,,Check if vulnerability alerts are enabled for a repository -repos.yaml,/repos/{owner}/{repo}/codeowners/errors,repos/codeowners-errors,repos/codeowners_errors,get,codeowners-errors,repos,repos,codeowners,codeowners_errors,select,$.errors,List CODEOWNERS errors -repos.yaml,/repos/{owner}/{repo}/compare/{basehead},repos/compare-commits,repos/compare_commits,get,commit-comparison,repos,repos,commits,compare_commits,select,,Compare two commits -repos.yaml,/repos/{owner}/{repo}/attestations,repos/create-attestation,repos/create_attestation,post,,repos,repos,attestations,create_attestation,insert,,Create an attestation -repos.yaml,/repos/{owner}/{repo}/autolinks,repos/create-autolink,repos/create_autolink,post,autolink,repos,repos,autolinks,create_autolink,insert,,Create an autolink reference for a repository -repos.yaml,/repos/{owner}/{repo}/commits/{commit_sha}/comments,repos/create-commit-comment,repos/create_commit_comment,post,commit-comment,repos,repos,comments,create_commit_comment,insert,,Create a commit comment -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures,repos/create-commit-signature-protection,repos/create_commit_signature_protection,post,protected-branch-admin-enforced,repos,repos,commit_signature_protection,create_commit_signature_protection,insert,,Create commit signature protection -repos.yaml,/repos/{owner}/{repo}/statuses/{sha},repos/create-commit-status,repos/create_commit_status,post,status,repos,repos,status_commits,create_commit_status,insert,,Create a commit status -repos.yaml,/repos/{owner}/{repo}/keys,repos/create-deploy-key,repos/create_deploy_key,post,deploy-key,repos,repos,deploy_keys,create_deploy_key,insert,,Create a deploy key -repos.yaml,/repos/{owner}/{repo}/deployments,repos/create-deployment,repos/create_deployment,post,deployment,repos,repos,deployments,create_deployment,insert,,Create a deployment -repos.yaml,/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies,repos/create-deployment-branch-policy,repos/create_deployment_branch_policy,post,deployment-branch-policy,repos,repos,branch_policies,create_deployment_branch_policy,insert,,Create a deployment branch policy -repos.yaml,/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules,repos/create-deployment-protection-rule,repos/create_deployment_protection_rule,post,deployment-protection-rule,repos,repos,protection_rules,create_deployment_protection_rule,insert,,Create a custom deployment protection rule on an environment -repos.yaml,/repos/{owner}/{repo}/deployments/{deployment_id}/statuses,repos/create-deployment-status,repos/create_deployment_status,post,deployment-status,repos,repos,status_deployments,create_deployment_status,insert,,Create a deployment status -repos.yaml,/repos/{owner}/{repo}/dispatches,repos/create-dispatch-event,repos/create_dispatch_event,post,,repos,repos,repository_dispatches,create_dispatch_event,insert,,Create a repository dispatch event -repos.yaml,/user/repos,repos/create-for-authenticated-user,repos/create_for_authenticated_user,post,repository,repos,repos,repos_for_auth_user,create_for_authenticated_user,insert,,Create a repository for the authenticated user -repos.yaml,/repos/{owner}/{repo}/forks,repos/create-fork,repos/create_fork,post,full-repository,repos,repos,forks,create_fork,insert,,Create a fork -repos.yaml,/orgs/{org}/repos,repos/create-in-org,repos/create_in_org,post,repository,repos,repos,repos,create_in_org,insert,,Create an organization repository -repos.yaml,/repos/{owner}/{repo}/environments/{environment_name},repos/create-or-update-environment,repos/create_or_update_environment,put,environment,repos,repos,environments,create_or_update_environment,insert,,Create or update an environment -repos.yaml,/repos/{owner}/{repo}/contents/{path},repos/create-or-update-file-contents,repos/create_or_update_file_contents,put,file-commit,repos,repos,contents,create_or_update_file_contents,insert,,Create or update file contents -repos.yaml,/orgs/{org}/rulesets,repos/create-org-ruleset,repos/create_org_ruleset,post,repository-ruleset,repos,repos,rules,create_org_ruleset,insert,,Create an organization repository ruleset -repos.yaml,/repos/{owner}/{repo}/pages/deployments,repos/create-pages-deployment,repos/create_pages_deployment,post,page-deployment,repos,repos,page_builds,create_pages_deployment,insert,,Create a GitHub Pages deployment -repos.yaml,/repos/{owner}/{repo}/pages,repos/create-pages-site,repos/create_pages_site,post,page,repos,repos,pages,create_pages_site,insert,,Create a GitHub Pages site -repos.yaml,/repos/{owner}/{repo}/releases,repos/create-release,repos/create_release,post,release,repos,repos,releases,create_release,insert,,Create a release -repos.yaml,/repos/{owner}/{repo}/rulesets,repos/create-repo-ruleset,repos/create_repo_ruleset,post,repository-ruleset,repos,repos,rules,create_repo_ruleset,insert,,Create a repository ruleset -repos.yaml,/repos/{template_owner}/{template_repo}/generate,repos/create-using-template,repos/create_using_template,post,repository,repos,repos,repos,create_using_template,insert,,Create a repository using a template -repos.yaml,/repos/{owner}/{repo}/hooks,repos/create-webhook,repos/create_webhook,post,hook,repos,repos,webhooks,create_webhook,insert,,Create a repository webhook -repos.yaml,/repos/{owner}/{repo}/properties/values,repos/custom-properties-for-repos-create-or-update-repository-values,repos/custom_properties_for_repos_create_or_update_repository_values,patch,,repos,repos,custom_property_values,custom_properties_for_repos_create_or_update_repository_values,update,,Create or update custom property values for a repository -repos.yaml,/repos/{owner}/{repo}/properties/values,repos/custom-properties-for-repos-get-repository-values,repos/custom_properties_for_repos_get_repository_values,get,,repos,repos,custom_property_values,custom_properties_for_repos_get_repository_values,select,,Get all custom property values for a repository -repos.yaml,/user/repository_invitations/{invitation_id},repos/decline-invitation-for-authenticated-user,repos/decline_invitation_for_authenticated_user,delete,,repos,repos,invitations,decline_invitation_for_authenticated_user,exec,,Decline a repository invitation -repos.yaml,/repos/{owner}/{repo},repos/delete,repos/delete,delete,,repos,repos,repos,delete,delete,,Delete a repository -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions,repos/delete-access-restrictions,repos/delete_access_restrictions,delete,,repos,repos,branch_restrictions,delete_access_restrictions,delete,,Delete access restrictions -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins,repos/delete-admin-branch-protection,repos/delete_admin_branch_protection,delete,,repos,repos,admin_branch_protection,delete_admin_branch_protection,delete,,Delete admin branch protection -repos.yaml,/repos/{owner}/{repo}/environments/{environment_name},repos/delete-an-environment,repos/delete_an_environment,delete,,repos,repos,environments,delete_an_environment,delete,,Delete an environment -repos.yaml,/repos/{owner}/{repo}/autolinks/{autolink_id},repos/delete-autolink,repos/delete_autolink,delete,,repos,repos,autolinks,delete_autolink,delete,,Delete an autolink reference from a repository -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection,repos/delete-branch-protection,repos/delete_branch_protection,delete,,repos,repos,branch_protection,delete_branch_protection,delete,,Delete branch protection -repos.yaml,/repos/{owner}/{repo}/comments/{comment_id},repos/delete-commit-comment,repos/delete_commit_comment,delete,,repos,repos,comments,delete_commit_comment,delete,,Delete a commit comment -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures,repos/delete-commit-signature-protection,repos/delete_commit_signature_protection,delete,,repos,repos,commit_signature_protection,delete_commit_signature_protection,delete,,Delete commit signature protection -repos.yaml,/repos/{owner}/{repo}/keys/{key_id},repos/delete-deploy-key,repos/delete_deploy_key,delete,,repos,repos,deploy_keys,delete_deploy_key,delete,,Delete a deploy key -repos.yaml,/repos/{owner}/{repo}/deployments/{deployment_id},repos/delete-deployment,repos/delete_deployment,delete,,repos,repos,deployments,delete_deployment,delete,,Delete a deployment -repos.yaml,/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id},repos/delete-deployment-branch-policy,repos/delete_deployment_branch_policy,delete,,repos,repos,branch_policies,delete_deployment_branch_policy,delete,,Delete a deployment branch policy -repos.yaml,/repos/{owner}/{repo}/contents/{path},repos/delete-file,repos/delete_file,delete,file-commit,repos,repos,contents,delete_file,delete,,Delete a file -repos.yaml,/repos/{owner}/{repo}/invitations/{invitation_id},repos/delete-invitation,repos/delete_invitation,delete,,repos,repos,invitations,delete_invitation,delete,,Delete a repository invitation -repos.yaml,/orgs/{org}/rulesets/{ruleset_id},repos/delete-org-ruleset,repos/delete_org_ruleset,delete,,repos,repos,rules,delete_org_ruleset,delete,,Delete an organization repository ruleset -repos.yaml,/repos/{owner}/{repo}/pages,repos/delete-pages-site,repos/delete_pages_site,delete,,repos,repos,pages,delete_pages_site,delete,,Delete a GitHub Pages site -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews,repos/delete-pull-request-review-protection,repos/delete_pull_request_review_protection,delete,,repos,repos,pr_review_protection,delete_pull_request_review_protection,delete,,Delete pull request review protection -repos.yaml,/repos/{owner}/{repo}/releases/{release_id},repos/delete-release,repos/delete_release,delete,,repos,repos,releases,delete_release,delete,,Delete a release -repos.yaml,/repos/{owner}/{repo}/releases/assets/{asset_id},repos/delete-release-asset,repos/delete_release_asset,delete,,repos,repos,assets,delete_release_asset,delete,,Delete a release asset -repos.yaml,/repos/{owner}/{repo}/rulesets/{ruleset_id},repos/delete-repo-ruleset,repos/delete_repo_ruleset,delete,,repos,repos,rules,delete_repo_ruleset,delete,,Delete a repository ruleset -repos.yaml,/repos/{owner}/{repo}/hooks/{hook_id},repos/delete-webhook,repos/delete_webhook,delete,,repos,repos,webhooks,delete_webhook,delete,,Delete a repository webhook -repos.yaml,/repos/{owner}/{repo}/automated-security-fixes,repos/disable-automated-security-fixes,repos/disable_automated_security_fixes,delete,,repos,repos,security_fixes,disable_automated_security_fixes,exec,,Disable automated security fixes -repos.yaml,/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id},repos/disable-deployment-protection-rule,repos/disable_deployment_protection_rule,delete,,repos,repos,protection_rules,disable_deployment_protection_rule,delete,,Disable a custom protection rule for an environment -repos.yaml,/repos/{owner}/{repo}/immutable-releases,repos/disable-immutable-releases,repos/disable_immutable_releases,delete,,repos,repos,repo_immutable_releases,disable_immutable_releases,delete,,Disable immutable releases -repos.yaml,/repos/{owner}/{repo}/private-vulnerability-reporting,repos/disable-private-vulnerability-reporting,repos/disable_private_vulnerability_reporting,delete,,repos,repos,private_vulnerability_reporting,disable_private_vulnerability_reporting,exec,,Disable private vulnerability reporting for a repository -repos.yaml,/repos/{owner}/{repo}/vulnerability-alerts,repos/disable-vulnerability-alerts,repos/disable_vulnerability_alerts,delete,,repos,repos,vulnerability_alerts,disable_vulnerability_alerts,exec,,Disable vulnerability alerts -repos.yaml,/repos/{owner}/{repo}/automated-security-fixes,repos/enable-automated-security-fixes,repos/enable_automated_security_fixes,put,,repos,repos,security_fixes,enable_automated_security_fixes,exec,,Enable automated security fixes -repos.yaml,/repos/{owner}/{repo}/immutable-releases,repos/enable-immutable-releases,repos/enable_immutable_releases,put,,repos,repos,repo_immutable_releases,enable_immutable_releases,replace,,Enable immutable releases -repos.yaml,/repos/{owner}/{repo}/private-vulnerability-reporting,repos/enable-private-vulnerability-reporting,repos/enable_private_vulnerability_reporting,put,,repos,repos,private_vulnerability_reporting,enable_private_vulnerability_reporting,exec,,Enable private vulnerability reporting for a repository -repos.yaml,/repos/{owner}/{repo}/vulnerability-alerts,repos/enable-vulnerability-alerts,repos/enable_vulnerability_alerts,put,,repos,repos,vulnerability_alerts,enable_vulnerability_alerts,exec,,Enable vulnerability alerts -repos.yaml,/repos/{owner}/{repo}/releases/generate-notes,repos/generate-release-notes,repos/generate_release_notes,post,release-notes-content,repos,repos,releases,generate_release_notes,exec,,Generate release notes content for a release -repos.yaml,/repos/{owner}/{repo},repos/get,repos/get,get,full-repository,repos,repos,details,get,select,,Get a repository -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions,repos/get-access-restrictions,repos/get_access_restrictions,get,branch-restriction-policy,repos,repos,branch_restrictions,get_access_restrictions,select,,Get access restrictions -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins,repos/get-admin-branch-protection,repos/get_admin_branch_protection,get,protected-branch-admin-enforced,repos,repos,admin_branch_protection,get_admin_branch_protection,select,,Get admin branch protection -repos.yaml,/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules,repos/get-all-deployment-protection-rules,repos/get_all_deployment_protection_rules,get,,repos,repos,protection_rules,get_all_deployment_protection_rules,select,,Get all deployment protection rules for an environment -repos.yaml,/repos/{owner}/{repo}/environments,repos/get-all-environments,repos/get_all_environments,get,,repos,repos,environments,get_all_environments,select,,List environments -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts,repos/get-all-status-check-contexts,repos/get_all_status_check_contexts,get,,repos,repos,status_check_contexts,get_all_status_check_contexts,select,,Get all status check contexts -repos.yaml,/repos/{owner}/{repo}/topics,repos/get-all-topics,repos/get_all_topics,get,topic,repos,repos,topics,get_all_topics,select,$.names,Get all repository topics -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps,repos/get-apps-with-access-to-protected-branch,repos/get_apps_with_access_to_protected_branch,get,integration,repos,repos,app_access_restrictions,get_apps_with_access_to_protected_branch,select,,Get apps with access to the protected branch -repos.yaml,/repos/{owner}/{repo}/autolinks/{autolink_id},repos/get-autolink,repos/get_autolink,get,autolink,repos,repos,autolinks,get_autolink,select,,Get an autolink reference of a repository -repos.yaml,/repos/{owner}/{repo}/branches/{branch},repos/get-branch,repos/get_branch,get,branch-with-protection,repos,repos,branch,get_branch,select,,Get a branch -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection,repos/get-branch-protection,repos/get_branch_protection,get,branch-protection,repos,repos,branch_protection,get_branch_protection,select,,Get branch protection -repos.yaml,/repos/{owner}/{repo}/rules/branches/{branch},repos/get-branch-rules,repos/get_branch_rules,get,repository-rule-detailed,repos,repos,rules,get_branch_rules,select,,Get rules for a branch -repos.yaml,/repos/{owner}/{repo}/traffic/clones,repos/get-clones,repos/get_clones,get,clone-traffic,repos,repos,clone_traffic,get_clones,select,,Get repository clones -repos.yaml,/repos/{owner}/{repo}/stats/code_frequency,repos/get-code-frequency-stats,repos/get_code_frequency_stats,get,code-frequency-stat,repos,repos,stats_code_frequency,get_code_frequency_stats,select,,Get the weekly commit activity -repos.yaml,/repos/{owner}/{repo}/collaborators/{username}/permission,repos/get-collaborator-permission-level,repos/get_collaborator_permission_level,get,repository-collaborator-permission,repos,repos,collaborator_permissions,get_collaborator_permission_level,select,,Get repository permissions for a user -repos.yaml,/repos/{owner}/{repo}/commits/{ref}/status,repos/get-combined-status-for-ref,repos/get_combined_status_for_ref,get,combined-commit-status,repos,repos,status_combined,get_combined_status_for_ref,select,,Get the combined status for a specific reference -repos.yaml,/repos/{owner}/{repo}/commits/{ref},repos/get-commit,repos/get_commit,get,commit,repos,repos,commits,get_commit,select,,Get a commit -repos.yaml,/repos/{owner}/{repo}/stats/commit_activity,repos/get-commit-activity-stats,repos/get_commit_activity_stats,get,commit-activity,repos,repos,stats_commit_activity,get_commit_activity_stats,select,,Get the last year of commit activity -repos.yaml,/repos/{owner}/{repo}/comments/{comment_id},repos/get-commit-comment,repos/get_commit_comment,get,commit-comment,repos,repos,comments,get_commit_comment,select,,Get a commit comment -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures,repos/get-commit-signature-protection,repos/get_commit_signature_protection,get,protected-branch-admin-enforced,repos,repos,commit_signature_protection,get_commit_signature_protection,select,,Get commit signature protection -repos.yaml,/repos/{owner}/{repo}/community/profile,repos/get-community-profile-metrics,repos/get_community_profile_metrics,get,community-profile,repos,repos,community,get_community_profile_metrics,select,,Get community profile metrics -repos.yaml,/repos/{owner}/{repo}/contents/{path},repos/get-content,repos/get_content,get,,repos,repos,content_tree,get_content,select,,Get repository content -repos.yaml,/repos/{owner}/{repo}/stats/contributors,repos/get-contributors-stats,repos/get_contributors_stats,get,contributor-activity,repos,repos,stats_contributors,get_contributors_stats,select,,Get all contributor commit activity -repos.yaml,/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id},repos/get-custom-deployment-protection-rule,repos/get_custom_deployment_protection_rule,get,deployment-protection-rule,repos,repos,protection_rules,get_custom_deployment_protection_rule,select,,Get a custom deployment protection rule -repos.yaml,/repos/{owner}/{repo}/keys/{key_id},repos/get-deploy-key,repos/get_deploy_key,get,deploy-key,repos,repos,deploy_keys,get_deploy_key,select,,Get a deploy key -repos.yaml,/repos/{owner}/{repo}/deployments/{deployment_id},repos/get-deployment,repos/get_deployment,get,deployment,repos,repos,deployments,get_deployment,select,,Get a deployment -repos.yaml,/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id},repos/get-deployment-branch-policy,repos/get_deployment_branch_policy,get,deployment-branch-policy,repos,repos,branch_policies,get_deployment_branch_policy,select,,Get a deployment branch policy -repos.yaml,/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id},repos/get-deployment-status,repos/get_deployment_status,get,deployment-status,repos,repos,status_deployments,get_deployment_status,select,,Get a deployment status -repos.yaml,/repos/{owner}/{repo}/environments/{environment_name},repos/get-environment,repos/get_environment,get,environment,repos,repos,environments,get_environment,select,,Get an environment -repos.yaml,/repos/{owner}/{repo}/pages/builds/latest,repos/get-latest-pages-build,repos/get_latest_pages_build,get,page-build,repos,repos,page_build_latest,get_latest_pages_build,select,,Get latest Pages build -repos.yaml,/repos/{owner}/{repo}/releases/latest,repos/get-latest-release,repos/get_latest_release,get,release,repos,repos,releases_latest,get_latest_release,select,,Get the latest release -repos.yaml,/orgs/{org}/rulesets/rule-suites/{rule_suite_id},repos/get-org-rule-suite,repos/get_org_rule_suite,get,,repos,repos,rule_suites,get_org_rule_suite,select,,Get an organization rule suite -repos.yaml,/orgs/{org}/rulesets/rule-suites,repos/get-org-rule-suites,repos/get_org_rule_suites,get,,repos,repos,rule_suites,get_org_rule_suites,select,,List organization rule suites -repos.yaml,/orgs/{org}/rulesets/{ruleset_id},repos/get-org-ruleset,repos/get_org_ruleset,get,repository-ruleset,repos,repos,rules,get_org_ruleset,select,,Get an organization repository ruleset -repos.yaml,/orgs/{org}/rulesets,repos/get-org-rulesets,repos/get_org_rulesets,get,repository-ruleset,repos,repos,rules,get_org_rulesets,select,,Get all organization repository rulesets -repos.yaml,/repos/{owner}/{repo}/pages,repos/get-pages,repos/get_pages,get,page,repos,repos,pages,get_pages,select,,Get a GitHub Pages site -repos.yaml,/repos/{owner}/{repo}/pages/builds/{build_id},repos/get-pages-build,repos/get_pages_build,get,page-build,repos,repos,page_builds,get_pages_build,select,,Get GitHub Pages build -repos.yaml,/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id},repos/get-pages-deployment,repos/get_pages_deployment,get,,repos,repos,repo_pages_deployments,get_pages_deployment,select,,Get the status of a GitHub Pages deployment -repos.yaml,/repos/{owner}/{repo}/pages/health,repos/get-pages-health-check,repos/get_pages_health_check,get,pages-health-check,repos,repos,pages_health_check,get_pages_health_check,select,,Get a DNS health check for GitHub Pages -repos.yaml,/repos/{owner}/{repo}/stats/participation,repos/get-participation-stats,repos/get_participation_stats,get,participation-stats,repos,repos,stats_participation,get_participation_stats,select,,Get the weekly commit count -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews,repos/get-pull-request-review-protection,repos/get_pull_request_review_protection,get,protected-branch-pull-request-review,repos,repos,pr_review_protection,get_pull_request_review_protection,select,,Get pull request review protection -repos.yaml,/repos/{owner}/{repo}/stats/punch_card,repos/get-punch-card-stats,repos/get_punch_card_stats,get,code-frequency-stat,repos,repos,stats_punch_cards,get_punch_card_stats,select,,Get the hourly commit count for each day -repos.yaml,/repos/{owner}/{repo}/readme,repos/get-readme,repos/get_readme,get,content-file,repos,repos,contents,get_readme,select,,Get a repository README -repos.yaml,/repos/{owner}/{repo}/readme/{dir},repos/get-readme-in-directory,repos/get_readme_in_directory,get,content-file,repos,repos,contents,get_readme_in_directory,select,,Get a repository README for a directory -repos.yaml,/repos/{owner}/{repo}/releases/{release_id},repos/get-release,repos/get_release,get,release,repos,repos,releases,get_release,select,,Get a release -repos.yaml,/repos/{owner}/{repo}/releases/assets/{asset_id},repos/get-release-asset,repos/get_release_asset,get,release-asset,repos,repos,assets,get_release_asset,select,,Get a release asset -repos.yaml,/repos/{owner}/{repo}/releases/tags/{tag},repos/get-release-by-tag,repos/get_release_by_tag,get,release,repos,repos,releases,get_release_by_tag,select,,Get a release by tag name -repos.yaml,/repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id},repos/get-repo-rule-suite,repos/get_repo_rule_suite,get,,repos,repos,rule_suites,get_repo_rule_suite,select,,Get a repository rule suite -repos.yaml,/repos/{owner}/{repo}/rulesets/rule-suites,repos/get-repo-rule-suites,repos/get_repo_rule_suites,get,,repos,repos,rule_suites,get_repo_rule_suites,select,,List repository rule suites -repos.yaml,/repos/{owner}/{repo}/rulesets/{ruleset_id},repos/get-repo-ruleset,repos/get_repo_ruleset,get,repository-ruleset,repos,repos,rules,get_repo_ruleset,select,,Get a repository ruleset -repos.yaml,/repos/{owner}/{repo}/rulesets/{ruleset_id}/history,repos/get-repo-ruleset-history,repos/get_repo_ruleset_history,get,,repos,repos,ruleset_history,get_repo_ruleset_history,select,,Get repository ruleset history -repos.yaml,/repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id},repos/get-repo-ruleset-version,repos/get_repo_ruleset_version,get,,repos,repos,ruleset_history,get_repo_ruleset_version,select,$.state,Get repository ruleset version -repos.yaml,/repos/{owner}/{repo}/rulesets,repos/get-repo-rulesets,repos/get_repo_rulesets,get,repository-ruleset,repos,repos,rules,get_repo_rulesets,select,,Get all repository rulesets -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks,repos/get-status-checks-protection,repos/get_status_checks_protection,get,status-check-policy,repos,repos,status_check_protection,get_status_checks_protection,select,,Get status checks protection -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams,repos/get-teams-with-access-to-protected-branch,repos/get_teams_with_access_to_protected_branch,get,team,repos,repos,team_access_restrictions,get_teams_with_access_to_protected_branch,select,,Get teams with access to the protected branch -repos.yaml,/repos/{owner}/{repo}/traffic/popular/paths,repos/get-top-paths,repos/get_top_paths,get,content-traffic,repos,repos,content_traffic,get_top_paths,select,,Get top referral paths -repos.yaml,/repos/{owner}/{repo}/traffic/popular/referrers,repos/get-top-referrers,repos/get_top_referrers,get,referrer-traffic,repos,repos,referrer_traffic,get_top_referrers,select,,Get top referral sources -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users,repos/get-users-with-access-to-protected-branch,repos/get_users_with_access_to_protected_branch,get,simple-user,repos,repos,user_access_restrictions,get_users_with_access_to_protected_branch,select,,Get users with access to the protected branch -repos.yaml,/repos/{owner}/{repo}/traffic/views,repos/get-views,repos/get_views,get,view-traffic,repos,repos,view_traffic,get_views,select,,Get page views -repos.yaml,/repos/{owner}/{repo}/hooks/{hook_id},repos/get-webhook,repos/get_webhook,get,hook,repos,repos,webhooks,get_webhook,select,,Get a repository webhook -repos.yaml,/repos/{owner}/{repo}/hooks/{hook_id}/config,repos/get-webhook-config-for-repo,repos/get_webhook_config_for_repo,get,webhook-config,repos,repos,webhook_config,get_webhook_config_for_repo,select,,Get a webhook configuration for a repository -repos.yaml,/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id},repos/get-webhook-delivery,repos/get_webhook_delivery,get,hook-delivery,repos,repos,webhook_delivery,get_webhook_delivery,select,,Get a delivery for a repository webhook -repos.yaml,/repos/{owner}/{repo}/activity,repos/list-activities,repos/list_activities,get,activity,repos,repos,activities,list_activities,select,,List repository activities -repos.yaml,/repos/{owner}/{repo}/attestations/{subject_digest},repos/list-attestations,repos/list_attestations,get,,repos,repos,attestations,list_attestations,select,$.attestations,List attestations -repos.yaml,/repos/{owner}/{repo}/autolinks,repos/list-autolinks,repos/list_autolinks,get,autolink,repos,repos,autolinks,list_autolinks,select,,List all autolinks of a repository -repos.yaml,/repos/{owner}/{repo}/branches,repos/list-branches,repos/list_branches,get,short-branch,repos,repos,branches,list_branches,select,,List branches -repos.yaml,/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head,repos/list-branches-for-head-commit,repos/list_branches_for_head_commit,get,branch-short,repos,repos,head_commit_branches,list_branches_for_head_commit,select,,List branches for HEAD commit -repos.yaml,/repos/{owner}/{repo}/collaborators,repos/list-collaborators,repos/list_collaborators,get,collaborator,repos,repos,collaborators,list_collaborators,select,,List repository collaborators -repos.yaml,/repos/{owner}/{repo}/commits/{commit_sha}/comments,repos/list-comments-for-commit,repos/list_comments_for_commit,get,commit-comment,repos,repos,comments,list_comments_for_commit,select,,List commit comments -repos.yaml,/repos/{owner}/{repo}/comments,repos/list-commit-comments-for-repo,repos/list_commit_comments_for_repo,get,commit-comment,repos,repos,comments,list_commit_comments_for_repo,select,,List commit comments for a repository -repos.yaml,/repos/{owner}/{repo}/commits/{ref}/statuses,repos/list-commit-statuses-for-ref,repos/list_commit_statuses_for_ref,get,status,repos,repos,status_commits,list_commit_statuses_for_ref,select,,List commit statuses for a reference -repos.yaml,/repos/{owner}/{repo}/commits,repos/list-commits,repos/list_commits,get,commit,repos,repos,commits,list_commits,select,,List commits -repos.yaml,/repos/{owner}/{repo}/contributors,repos/list-contributors,repos/list_contributors,get,contributor,repos,repos,contributors,list_contributors,select,,List repository contributors -repos.yaml,/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps,repos/list-custom-deployment-rule-integrations,repos/list_custom_deployment_rule_integrations,get,,repos,repos,deployment_rule_integrations,list_custom_deployment_rule_integrations,select,$.available_custom_deployment_protection_rule_integrations,List custom deployment rule integrations available for an environment -repos.yaml,/repos/{owner}/{repo}/keys,repos/list-deploy-keys,repos/list_deploy_keys,get,deploy-key,repos,repos,deploy_keys,list_deploy_keys,select,,List deploy keys -repos.yaml,/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies,repos/list-deployment-branch-policies,repos/list_deployment_branch_policies,get,,repos,repos,branch_policies,list_deployment_branch_policies,select,$.branch_policies,List deployment branch policies -repos.yaml,/repos/{owner}/{repo}/deployments/{deployment_id}/statuses,repos/list-deployment-statuses,repos/list_deployment_statuses,get,deployment-status,repos,repos,status_deployments,list_deployment_statuses,select,,List deployment statuses -repos.yaml,/repos/{owner}/{repo}/deployments,repos/list-deployments,repos/list_deployments,get,deployment,repos,repos,deployments,list_deployments,select,,List deployments -repos.yaml,/user/repos,repos/list-for-authenticated-user,repos/list_for_authenticated_user,get,repository,repos,repos,repos_for_auth_user,list_for_authenticated_user,select,,List repositories for the authenticated user -repos.yaml,/orgs/{org}/repos,repos/list-for-org,repos/list_for_org,get,minimal-repository,repos,repos,repos,list_for_org,select,,List organization repositories -repos.yaml,/users/{username}/repos,repos/list-for-user,repos/list_for_user,get,minimal-repository,repos,repos,repos,list_for_user,select,,List repositories for a user -repos.yaml,/repos/{owner}/{repo}/forks,repos/list-forks,repos/list_forks,get,minimal-repository,repos,repos,forks,list_forks,select,,List forks -repos.yaml,/repos/{owner}/{repo}/invitations,repos/list-invitations,repos/list_invitations,get,repository-invitation,repos,repos,invitations,list_invitations,select,,List repository invitations -repos.yaml,/user/repository_invitations,repos/list-invitations-for-authenticated-user,repos/list_invitations_for_authenticated_user,get,repository-invitation,repos,repos,invitations,list_invitations_for_authenticated_user,select,,List repository invitations for the authenticated user -repos.yaml,/repos/{owner}/{repo}/languages,repos/list-languages,repos/list_languages,get,language,repos,repos,repos,list_languages,exec,,List repository languages -repos.yaml,/repos/{owner}/{repo}/pages/builds,repos/list-pages-builds,repos/list_pages_builds,get,page-build,repos,repos,page_builds,list_pages_builds,select,,List GitHub Pages builds -repos.yaml,/repositories,repos/list-public,repos/list_public,get,minimal-repository,repos,repos,repos,list_public,select,,List public repositories -repos.yaml,/repos/{owner}/{repo}/commits/{commit_sha}/pulls,repos/list-pull-requests-associated-with-commit,repos/list_pull_requests_associated_with_commit,get,pull-request-simple,repos,repos,commit_pr_branches,list_pull_requests_associated_with_commit,select,,List pull requests associated with a commit -repos.yaml,/repos/{owner}/{repo}/releases/{release_id}/assets,repos/list-release-assets,repos/list_release_assets,get,release-asset,repos,repos,assets,list_release_assets,select,,List release assets -repos.yaml,/repos/{owner}/{repo}/releases,repos/list-releases,repos/list_releases,get,release,repos,repos,releases,list_releases,select,,List releases -repos.yaml,/repos/{owner}/{repo}/tags,repos/list-tags,repos/list_tags,get,tag,repos,repos,tags,list_tags,select,,List repository tags -repos.yaml,/repos/{owner}/{repo}/teams,repos/list-teams,repos/list_teams,get,team,repos,repos,teams,list_teams,select,,List repository teams -repos.yaml,/repos/{owner}/{repo}/hooks/{hook_id}/deliveries,repos/list-webhook-deliveries,repos/list_webhook_deliveries,get,hook-delivery-item,repos,repos,webhook_deliveries,list_webhook_deliveries,select,,List deliveries for a repository webhook -repos.yaml,/repos/{owner}/{repo}/hooks,repos/list-webhooks,repos/list_webhooks,get,hook,repos,repos,webhooks,list_webhooks,select,,List repository webhooks -repos.yaml,/repos/{owner}/{repo}/merges,repos/merge,repos/merge,post,commit,repos,repos,branch,merge,exec,,Merge a branch -repos.yaml,/repos/{owner}/{repo}/merge-upstream,repos/merge-upstream,repos/merge_upstream,post,merged-upstream,repos,repos,branch,merge_upstream,exec,,Sync a fork branch with the upstream repository -repos.yaml,/repos/{owner}/{repo}/hooks/{hook_id}/pings,repos/ping-webhook,repos/ping_webhook,post,,repos,repos,webhooks,ping_webhook,exec,,Ping a repository webhook -repos.yaml,/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts,repos/redeliver-webhook-delivery,repos/redeliver_webhook_delivery,post,,repos,repos,webhook_delivery,redeliver_webhook_delivery,exec,,Redeliver a delivery for a repository webhook -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps,repos/remove-app-access-restrictions,repos/remove_app_access_restrictions,delete,integration,repos,repos,app_access_restrictions,remove_app_access_restrictions,delete,,Remove app access restrictions -repos.yaml,/repos/{owner}/{repo}/collaborators/{username},repos/remove-collaborator,repos/remove_collaborator,delete,,repos,repos,collaborators,remove_collaborator,delete,,Remove a repository collaborator -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts,repos/remove-status-check-contexts,repos/remove_status_check_contexts,delete,,repos,repos,status_check_contexts,remove_status_check_contexts,delete,,Remove status check contexts -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks,repos/remove-status-check-protection,repos/remove_status_check_protection,delete,,repos,repos,status_check_protection,remove_status_check_protection,delete,,Remove status check protection -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams,repos/remove-team-access-restrictions,repos/remove_team_access_restrictions,delete,team,repos,repos,team_access_restrictions,remove_team_access_restrictions,delete,,Remove team access restrictions -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users,repos/remove-user-access-restrictions,repos/remove_user_access_restrictions,delete,simple-user,repos,repos,user_access_restrictions,remove_user_access_restrictions,delete,,Remove user access restrictions -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/rename,repos/rename-branch,repos/rename_branch,post,branch-with-protection,repos,repos,branch,rename_branch,exec,,Rename a branch -repos.yaml,/repos/{owner}/{repo}/topics,repos/replace-all-topics,repos/replace_all_topics,put,topic,repos,repos,topics,replace_all_topics,replace,,Replace all repository topics -repos.yaml,/repos/{owner}/{repo}/tarball/{ref},repos/download-tarball-archive,repos/download_tarball_archive,get,,repos,repos,skip_this_resource,repos/download_tarball_archive,exec,,Download a repository archive (tar) -repos.yaml,/repos/{owner}/{repo}/zipball/{ref},repos/download-zipball-archive,repos/download_zipball_archive,get,,repos,repos,skip_this_resource,repos/download_zipball_archive,exec,,Download a repository archive (zip) -repos.yaml,/repos/{owner}/{repo}/pages/builds,repos/request-pages-build,repos/request_pages_build,post,page-build-status,repos,repos,page_builds,request_pages_build,exec,,Request a GitHub Pages build -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins,repos/set-admin-branch-protection,repos/set_admin_branch_protection,post,protected-branch-admin-enforced,repos,repos,admin_branch_protection,set_admin_branch_protection,replace,,Set admin branch protection -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps,repos/set-app-access-restrictions,repos/set_app_access_restrictions,put,integration,repos,repos,app_access_restrictions,set_app_access_restrictions,replace,,Set app access restrictions -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts,repos/set-status-check-contexts,repos/set_status_check_contexts,put,,repos,repos,status_check_contexts,set_status_check_contexts,replace,,Set status check contexts -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams,repos/set-team-access-restrictions,repos/set_team_access_restrictions,put,team,repos,repos,team_access_restrictions,set_team_access_restrictions,replace,,Set team access restrictions -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users,repos/set-user-access-restrictions,repos/set_user_access_restrictions,put,simple-user,repos,repos,user_access_restrictions,set_user_access_restrictions,replace,,Set user access restrictions -repos.yaml,/repos/{owner}/{repo}/hooks/{hook_id}/tests,repos/test-push-webhook,repos/test_push_webhook,post,,repos,repos,webhooks,test_push_webhook,exec,,Test the push repository webhook -repos.yaml,/repos/{owner}/{repo}/transfer,repos/transfer,repos/transfer,post,minimal-repository,repos,repos,repos,transfer,exec,,Transfer a repository -repos.yaml,/repos/{owner}/{repo},repos/update,repos/update,patch,full-repository,repos,repos,repos,update,update,,Update a repository -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection,repos/update-branch-protection,repos/update_branch_protection,put,protected-branch,repos,repos,branch_protection,update_branch_protection,replace,,Update branch protection -repos.yaml,/repos/{owner}/{repo}/comments/{comment_id},repos/update-commit-comment,repos/update_commit_comment,patch,commit-comment,repos,repos,comments,update_commit_comment,update,,Update a commit comment -repos.yaml,/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id},repos/update-deployment-branch-policy,repos/update_deployment_branch_policy,put,deployment-branch-policy,repos,repos,branch_policies,update_deployment_branch_policy,replace,,Update a deployment branch policy -repos.yaml,/repos/{owner}/{repo}/pages,repos/update-information-about-pages-site,repos/update_information_about_pages_site,put,,repos,repos,pages,update_information_about_pages_site,replace,,Update information about a GitHub Pages site -repos.yaml,/repos/{owner}/{repo}/invitations/{invitation_id},repos/update-invitation,repos/update_invitation,patch,repository-invitation,repos,repos,invitations,update_invitation,update,,Update a repository invitation -repos.yaml,/orgs/{org}/rulesets/{ruleset_id},repos/update-org-ruleset,repos/update_org_ruleset,put,repository-ruleset,repos,repos,rules,update_org_ruleset,replace,,Update an organization repository ruleset -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews,repos/update-pull-request-review-protection,repos/update_pull_request_review_protection,patch,protected-branch-pull-request-review,repos,repos,pr_review_protection,update_pull_request_review_protection,update,,Update pull request review protection -repos.yaml,/repos/{owner}/{repo}/releases/{release_id},repos/update-release,repos/update_release,patch,release,repos,repos,releases,update_release,update,,Update a release -repos.yaml,/repos/{owner}/{repo}/releases/assets/{asset_id},repos/update-release-asset,repos/update_release_asset,patch,release-asset,repos,repos,assets,update_release_asset,update,,Update a release asset -repos.yaml,/repos/{owner}/{repo}/rulesets/{ruleset_id},repos/update-repo-ruleset,repos/update_repo_ruleset,put,repository-ruleset,repos,repos,rules,update_repo_ruleset,replace,,Update a repository ruleset -repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks,repos/update-status-check-protection,repos/update_status_check_protection,patch,status-check-policy,repos,repos,status_check_protection,update_status_check_protection,update,,Update status check protection -repos.yaml,/repos/{owner}/{repo}/hooks/{hook_id},repos/update-webhook,repos/update_webhook,patch,hook,repos,repos,webhooks,update_webhook,update,,Update a repository webhook -repos.yaml,/repos/{owner}/{repo}/hooks/{hook_id}/config,repos/update-webhook-config-for-repo,repos/update_webhook_config_for_repo,patch,webhook-config,repos,repos,webhook_config,update_webhook_config_for_repo,update,,Update a webhook configuration for a repository -repos.yaml,/repos/{owner}/{repo}/releases/{release_id}/assets,repos/upload-release-asset,repos/upload_release_asset,post,release-asset,repos,repos,assets,upload_release_asset,insert,,Upload a release asset -search.yaml,/search/code,search/code,search/code,get,,search,search,code,code,select,,Search code -search.yaml,/search/commits,search/commits,search/commits,get,,search,search,commits,commits,select,,Search commits -search.yaml,/search/issues,search/issues-and-pull-requests,search/issues_and_pull_requests,get,,search,search,issues_and_pull_requests,issues_and_pull_requests,select,,Search issues and pull requests -search.yaml,/search/labels,search/labels,search/labels,get,,search,search,labels,labels,select,,Search labels -search.yaml,/search/repositories,search/repos,search/repos,get,,search,search,repos,repos,select,,Search repositories -search.yaml,/search/topics,search/topics,search/topics,get,,search,search,topics,topics,select,,Search topics -search.yaml,/search/users,search/users,search/users,get,,search,search,users,users,select,,Search users -secret_scanning.yaml,/repos/{owner}/{repo}/secret-scanning/push-protection-bypasses,secret-scanning/create-push-protection-bypass,secret_scanning/create_push_protection_bypass,post,,secret-scanning,secret_scanning,repo_push_protection_bypasses,create_push_protection_bypass,insert,,Create a push protection bypass -secret_scanning.yaml,/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number},secret-scanning/get-alert,secret_scanning/get_alert,get,secret-scanning-alert,secret-scanning,secret_scanning,alerts,get_alert,select,,Get a secret scanning alert -secret_scanning.yaml,/repos/{owner}/{repo}/secret-scanning/scan-history,secret-scanning/get-scan-history,secret_scanning/get_scan_history,get,,secret-scanning,secret_scanning,repo_secret_scan_history,get_scan_history,select,,Get secret scanning scan history for a repository -secret_scanning.yaml,/orgs/{org}/secret-scanning/alerts,secret-scanning/list-alerts-for-org,secret_scanning/list_alerts_for_org,get,organization-secret-scanning-alert,secret-scanning,secret_scanning,alerts,list_alerts_for_org,select,,List secret scanning alerts for an organization -secret_scanning.yaml,/repos/{owner}/{repo}/secret-scanning/alerts,secret-scanning/list-alerts-for-repo,secret_scanning/list_alerts_for_repo,get,secret-scanning-alert,secret-scanning,secret_scanning,alerts,list_alerts_for_repo,select,,List secret scanning alerts for a repository -secret_scanning.yaml,/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations,secret-scanning/list-locations-for-alert,secret_scanning/list_locations_for_alert,get,secret-scanning-location,secret-scanning,secret_scanning,locations,list_locations_for_alert,select,,List locations for a secret scanning alert -secret_scanning.yaml,/orgs/{org}/secret-scanning/pattern-configurations,secret-scanning/list-org-pattern-configs,secret_scanning/list_org_pattern_configs,get,,secret-scanning,secret_scanning,org_secret_scanning_pattern_configurations,list_org_pattern_configs,select,,List organization pattern configurations -secret_scanning.yaml,/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number},secret-scanning/update-alert,secret_scanning/update_alert,patch,secret-scanning-alert,secret-scanning,secret_scanning,alerts,update_alert,update,,Update a secret scanning alert -secret_scanning.yaml,/orgs/{org}/secret-scanning/pattern-configurations,secret-scanning/update-org-pattern-configs,secret_scanning/update_org_pattern_configs,patch,,secret-scanning,secret_scanning,org_secret_scanning_pattern_configurations,update_org_pattern_configs,update,,Update organization pattern configurations -security_advisories.yaml,/repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks,security-advisories/create-fork,security_advisories/create_fork,post,,security-advisories,security_advisories,security_advisory_forks,create_fork,insert,,Create a temporary private fork -security_advisories.yaml,/repos/{owner}/{repo}/security-advisories/reports,security-advisories/create-private-vulnerability-report,security_advisories/create_private_vulnerability_report,post,repository-advisory,security-advisories,security_advisories,private_vulnerability_reports,create_private_vulnerability_report,insert,,Privately report a security vulnerability -security_advisories.yaml,/repos/{owner}/{repo}/security-advisories,security-advisories/create-repository-advisory,security_advisories/create_repository_advisory,post,repository-advisory,security-advisories,security_advisories,repository_advisories,create_repository_advisory,insert,,Create a repository security advisory -security_advisories.yaml,/repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve,security-advisories/create-repository-advisory-cve-request,security_advisories/create_repository_advisory_cve_request,post,,security-advisories,security_advisories,repository_advisories,create_repository_advisory_cve_request,insert,,Request a CVE for a repository security advisory -security_advisories.yaml,/advisories/{ghsa_id},security-advisories/get-global-advisory,security_advisories/get_global_advisory,get,global-advisory,security-advisories,security_advisories,global_advisories,get_global_advisory,select,,Get a global security advisory -security_advisories.yaml,/repos/{owner}/{repo}/security-advisories/{ghsa_id},security-advisories/get-repository-advisory,security_advisories/get_repository_advisory,get,repository-advisory,security-advisories,security_advisories,repository_advisories,get_repository_advisory,select,,Get a repository security advisory -security_advisories.yaml,/advisories,security-advisories/list-global-advisories,security_advisories/list_global_advisories,get,global-advisory,security-advisories,security_advisories,global_advisories,list_global_advisories,select,,List global security advisories -security_advisories.yaml,/orgs/{org}/security-advisories,security-advisories/list-org-repository-advisories,security_advisories/list_org_repository_advisories,get,repository-advisory,security-advisories,security_advisories,repository_advisories,list_org_repository_advisories,select,,List repository security advisories for an organization -security_advisories.yaml,/repos/{owner}/{repo}/security-advisories,security-advisories/list-repository-advisories,security_advisories/list_repository_advisories,get,repository-advisory,security-advisories,security_advisories,repository_advisories,list_repository_advisories,select,,List repository security advisories -security_advisories.yaml,/repos/{owner}/{repo}/security-advisories/{ghsa_id},security-advisories/update-repository-advisory,security_advisories/update_repository_advisory,patch,repository-advisory,security-advisories,security_advisories,repository_advisories,update_repository_advisory,update,,Update a repository security advisory -teams.yaml,/teams/{team_id}/members/{username},teams/add-member-legacy,teams/add_member_legacy,put,,teams,teams,members,add_member_legacy,replace,,Add team member (Legacy) -teams.yaml,/orgs/{org}/teams/{team_slug}/memberships/{username},teams/add-or-update-membership-for-user-in-org,teams/add_or_update_membership_for_user_in_org,put,team-membership,teams,teams,membership,add_or_update_membership_for_user_in_org,replace,,Add or update team membership for a user -teams.yaml,/teams/{team_id}/memberships/{username},teams/add-or-update-membership-for-user-legacy,teams/add_or_update_membership_for_user_legacy,put,team-membership,teams,teams,membership,add_or_update_membership_for_user_legacy,replace,,Add or update team membership for a user (Legacy) -teams.yaml,/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo},teams/add-or-update-repo-permissions-in-org,teams/add_or_update_repo_permissions_in_org,put,,teams,teams,permissions,add_or_update_repo_permissions_in_org,replace,,Add or update team repository permissions -teams.yaml,/teams/{team_id}/repos/{owner}/{repo},teams/add-or-update-repo-permissions-legacy,teams/add_or_update_repo_permissions_legacy,put,,teams,teams,permissions,add_or_update_repo_permissions_legacy,replace,,Add or update team repository permissions (Legacy) -teams.yaml,/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo},teams/check-permissions-for-repo-in-org,teams/check_permissions_for_repo_in_org,get,team-repository,teams,teams,permissions,check_permissions_for_repo_in_org,select,,Check team permissions for a repository -teams.yaml,/teams/{team_id}/repos/{owner}/{repo},teams/check-permissions-for-repo-legacy,teams/check_permissions_for_repo_legacy,get,team-repository,teams,teams,permissions,check_permissions_for_repo_legacy,select,,Check team permissions for a repository (Legacy) -teams.yaml,/orgs/{org}/teams,teams/create,teams/create,post,team-full,teams,teams,teams,create,insert,,Create a team -teams.yaml,/orgs/{org}/teams/{team_slug},teams/delete-in-org,teams/delete_in_org,delete,,teams,teams,teams,delete_in_org,delete,,Delete a team -teams.yaml,/teams/{team_id},teams/delete-legacy,teams/delete_legacy,delete,,teams,teams,teams,delete_legacy,delete,,Delete a team (Legacy) -teams.yaml,/orgs/{org}/teams/{team_slug},teams/get-by-name,teams/get_by_name,get,team-full,teams,teams,details,get_by_name,select,,Get a team by name -teams.yaml,/teams/{team_id},teams/get-legacy,teams/get_legacy,get,team-full,teams,teams,teams,get_legacy,select,,Get a team (Legacy) -teams.yaml,/teams/{team_id}/members/{username},teams/get-member-legacy,teams/get_member_legacy,get,,teams,teams,members,get_member_legacy,select,,Get team member (Legacy) -teams.yaml,/orgs/{org}/teams/{team_slug}/memberships/{username},teams/get-membership-for-user-in-org,teams/get_membership_for_user_in_org,get,team-membership,teams,teams,membership,get_membership_for_user_in_org,select,,Get team membership for a user -teams.yaml,/teams/{team_id}/memberships/{username},teams/get-membership-for-user-legacy,teams/get_membership_for_user_legacy,get,team-membership,teams,teams,membership,get_membership_for_user_legacy,select,,Get team membership for a user (Legacy) -teams.yaml,/orgs/{org}/teams,teams/list,teams/list,get,team,teams,teams,teams,list,select,,List teams -teams.yaml,/orgs/{org}/teams/{team_slug}/teams,teams/list-child-in-org,teams/list_child_in_org,get,team,teams,teams,child_teams,list_child_in_org,select,,List child teams -teams.yaml,/teams/{team_id}/teams,teams/list-child-legacy,teams/list_child_legacy,get,team,teams,teams,child_teams,list_child_legacy,select,,List child teams (Legacy) -teams.yaml,/user/teams,teams/list-for-authenticated-user,teams/list_for_authenticated_user,get,team-full,teams,teams,teams_for_auth_user,list_for_authenticated_user,select,,List teams for the authenticated user -teams.yaml,/orgs/{org}/teams/{team_slug}/members,teams/list-members-in-org,teams/list_members_in_org,get,simple-user,teams,teams,members,list_members_in_org,select,,List team members -teams.yaml,/teams/{team_id}/members,teams/list-members-legacy,teams/list_members_legacy,get,simple-user,teams,teams,members,list_members_legacy,select,,List team members (Legacy) -teams.yaml,/orgs/{org}/teams/{team_slug}/invitations,teams/list-pending-invitations-in-org,teams/list_pending_invitations_in_org,get,organization-invitation,teams,teams,invitations,list_pending_invitations_in_org,select,,List pending team invitations -teams.yaml,/teams/{team_id}/invitations,teams/list-pending-invitations-legacy,teams/list_pending_invitations_legacy,get,organization-invitation,teams,teams,invitations,list_pending_invitations_legacy,select,,List pending team invitations (Legacy) -teams.yaml,/orgs/{org}/teams/{team_slug}/repos,teams/list-repos-in-org,teams/list_repos_in_org,get,minimal-repository,teams,teams,repos,list_repos_in_org,select,,List team repositories -teams.yaml,/teams/{team_id}/repos,teams/list-repos-legacy,teams/list_repos_legacy,get,minimal-repository,teams,teams,repos,list_repos_legacy,select,,List team repositories (Legacy) -teams.yaml,/teams/{team_id}/members/{username},teams/remove-member-legacy,teams/remove_member_legacy,delete,,teams,teams,members,remove_member_legacy,delete,,Remove team member (Legacy) -teams.yaml,/orgs/{org}/teams/{team_slug}/memberships/{username},teams/remove-membership-for-user-in-org,teams/remove_membership_for_user_in_org,delete,,teams,teams,membership,remove_membership_for_user_in_org,delete,,Remove team membership for a user -teams.yaml,/teams/{team_id}/memberships/{username},teams/remove-membership-for-user-legacy,teams/remove_membership_for_user_legacy,delete,,teams,teams,membership,remove_membership_for_user_legacy,delete,,Remove team membership for a user (Legacy) -teams.yaml,/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo},teams/remove-repo-in-org,teams/remove_repo_in_org,delete,,teams,teams,repos,remove_repo_in_org,delete,,Remove a repository from a team -teams.yaml,/teams/{team_id}/repos/{owner}/{repo},teams/remove-repo-legacy,teams/remove_repo_legacy,delete,,teams,teams,repos,remove_repo_legacy,delete,,Remove a repository from a team (Legacy) -teams.yaml,/orgs/{org}/teams/{team_slug},teams/update-in-org,teams/update_in_org,patch,team-full,teams,teams,teams,update_in_org,update,,Update a team -teams.yaml,/teams/{team_id},teams/update-legacy,teams/update_legacy,patch,team-full,teams,teams,teams,update_legacy,update,,Update a team (Legacy) -users.yaml,/user/emails,users/add-email-for-authenticated-user,users/add_email_for_authenticated_user,post,email,users,users,emails,add_email_for_authenticated_user,insert,,Add an email address for the authenticated user -users.yaml,/user/social_accounts,users/add-social-account-for-authenticated-user,users/add_social_account_for_authenticated_user,post,social-account,users,users,social_accounts,add_social_account_for_authenticated_user,insert,,Add social accounts for the authenticated user -users.yaml,/user/blocks/{username},users/block,users/block,put,,users,users,blocking,block,exec,,Block a user -users.yaml,/user/blocks/{username},users/check-blocked,users/check_blocked,get,,users,users,blocking,check_blocked,exec,,Check if a user is blocked by the authenticated user -users.yaml,/users/{username}/following/{target_user},users/check-following-for-user,users/check_following_for_user,get,,users,users,following,check_following_for_user,exec,,Check if a user follows another user -users.yaml,/user/following/{username},users/check-person-is-followed-by-authenticated,users/check_person_is_followed_by_authenticated,get,,users,users,following,check_person_is_followed_by_authenticated,exec,,Check if a person is followed by the authenticated user -users.yaml,/user/gpg_keys,users/create-gpg-key-for-authenticated-user,users/create_gpg_key_for_authenticated_user,post,gpg-key,users,users,gpg_keys,create_gpg_key_for_authenticated_user,insert,,Create a GPG key for the authenticated user -users.yaml,/user/keys,users/create-public-ssh-key-for-authenticated-user,users/create_public_ssh_key_for_authenticated_user,post,key,users,users,keys,create_public_ssh_key_for_authenticated_user,insert,,Create a public SSH key for the authenticated user -users.yaml,/user/ssh_signing_keys,users/create-ssh-signing-key-for-authenticated-user,users/create_ssh_signing_key_for_authenticated_user,post,ssh-signing-key,users,users,ssh_signing_keys,create_ssh_signing_key_for_authenticated_user,insert,,Create a SSH signing key for the authenticated user -users.yaml,/users/{username}/attestations/delete-request,users/delete-attestations-bulk,users/delete_attestations_bulk,post,,users,users,attestations_bulk_deletes,delete_attestations_bulk,exec,,Delete attestations in bulk -users.yaml,/users/{username}/attestations/{attestation_id},users/delete-attestations-by-id,users/delete_attestations_by_id,delete,,users,users,attestations,delete_attestations_by_id,delete,,Delete attestations by ID -users.yaml,/users/{username}/attestations/digest/{subject_digest},users/delete-attestations-by-subject-digest,users/delete_attestations_by_subject_digest,delete,,users,users,attestations,delete_attestations_by_subject_digest,delete,,Delete attestations by subject digest -users.yaml,/user/emails,users/delete-email-for-authenticated-user,users/delete_email_for_authenticated_user,delete,,users,users,emails,delete_email_for_authenticated_user,delete,,Delete an email address for the authenticated user -users.yaml,/user/gpg_keys/{gpg_key_id},users/delete-gpg-key-for-authenticated-user,users/delete_gpg_key_for_authenticated_user,delete,,users,users,gpg_keys,delete_gpg_key_for_authenticated_user,delete,,Delete a GPG key for the authenticated user -users.yaml,/user/keys/{key_id},users/delete-public-ssh-key-for-authenticated-user,users/delete_public_ssh_key_for_authenticated_user,delete,,users,users,keys,delete_public_ssh_key_for_authenticated_user,delete,,Delete a public SSH key for the authenticated user -users.yaml,/user/social_accounts,users/delete-social-account-for-authenticated-user,users/delete_social_account_for_authenticated_user,delete,,users,users,social_accounts,delete_social_account_for_authenticated_user,delete,,Delete social accounts for the authenticated user -users.yaml,/user/ssh_signing_keys/{ssh_signing_key_id},users/delete-ssh-signing-key-for-authenticated-user,users/delete_ssh_signing_key_for_authenticated_user,delete,,users,users,ssh_signing_keys,delete_ssh_signing_key_for_authenticated_user,delete,,Delete an SSH signing key for the authenticated user -users.yaml,/user/following/{username},users/follow,users/follow,put,,users,users,following,follow,exec,,Follow a user -users.yaml,/user,users/get-authenticated,users/get_authenticated,get,,users,users,users,get_authenticated,select,,Get the authenticated user -users.yaml,/user/{account_id},users/get-by-id,users/get_by_id,get,,users,users,users,get_by_id,select,,Get a user using their ID -users.yaml,/users/{username},users/get-by-username,users/get_by_username,get,,users,users,users,get_by_username,select,,Get a user -users.yaml,/users/{username}/hovercard,users/get-context-for-user,users/get_context_for_user,get,hovercard,users,users,hovercard,get_context_for_user,select,$.contexts,Get contextual information for a user -users.yaml,/user/gpg_keys/{gpg_key_id},users/get-gpg-key-for-authenticated-user,users/get_gpg_key_for_authenticated_user,get,gpg-key,users,users,gpg_keys,get_gpg_key_for_authenticated_user,select,,Get a GPG key for the authenticated user -users.yaml,/user/keys/{key_id},users/get-public-ssh-key-for-authenticated-user,users/get_public_ssh_key_for_authenticated_user,get,key,users,users,keys,get_public_ssh_key_for_authenticated_user,select,,Get a public SSH key for the authenticated user -users.yaml,/user/ssh_signing_keys/{ssh_signing_key_id},users/get-ssh-signing-key-for-authenticated-user,users/get_ssh_signing_key_for_authenticated_user,get,ssh-signing-key,users,users,ssh_signing_keys,get_ssh_signing_key_for_authenticated_user,select,,Get an SSH signing key for the authenticated user -users.yaml,/users,users/list,users/list,get,simple-user,users,users,public_users,list,select,,List users -users.yaml,/users/{username}/attestations/{subject_digest},users/list-attestations,users/list_attestations,get,,users,users,attestations,list_attestations,select,$.attestations,List attestations -users.yaml,/users/{username}/attestations/bulk-list,users/list-attestations-bulk,users/list_attestations_bulk,post,,users,users,attestations_bulk_list,list_attestations_bulk,insert,,List attestations by bulk subject digests -users.yaml,/user/blocks,users/list-blocked-by-authenticated-user,users/list_blocked_by_authenticated_user,get,simple-user,users,users,blocking,list_blocked_by_authenticated_user,select,,List users blocked by the authenticated user -users.yaml,/user/emails,users/list-emails-for-authenticated-user,users/list_emails_for_authenticated_user,get,email,users,users,emails,list_emails_for_authenticated_user,select,,List email addresses for the authenticated user -users.yaml,/user/following,users/list-followed-by-authenticated-user,users/list_followed_by_authenticated_user,get,simple-user,users,users,following,list_followed_by_authenticated_user,select,,List the people the authenticated user follows -users.yaml,/user/followers,users/list-followers-for-authenticated-user,users/list_followers_for_authenticated_user,get,simple-user,users,users,followers,list_followers_for_authenticated_user,select,,List followers of the authenticated user -users.yaml,/users/{username}/followers,users/list-followers-for-user,users/list_followers_for_user,get,simple-user,users,users,followers,list_followers_for_user,select,,List followers of a user -users.yaml,/users/{username}/following,users/list-following-for-user,users/list_following_for_user,get,simple-user,users,users,following,list_following_for_user,select,,List the people a user follows -users.yaml,/user/gpg_keys,users/list-gpg-keys-for-authenticated-user,users/list_gpg_keys_for_authenticated_user,get,gpg-key,users,users,gpg_keys,list_gpg_keys_for_authenticated_user,select,,List GPG keys for the authenticated user -users.yaml,/users/{username}/gpg_keys,users/list-gpg-keys-for-user,users/list_gpg_keys_for_user,get,gpg-key,users,users,gpg_keys,list_gpg_keys_for_user,select,,List GPG keys for a user -users.yaml,/user/public_emails,users/list-public-emails-for-authenticated-user,users/list_public_emails_for_authenticated_user,get,email,users,users,public_emails,list_public_emails_for_authenticated_user,select,,List public email addresses for the authenticated user -users.yaml,/users/{username}/keys,users/list-public-keys-for-user,users/list_public_keys_for_user,get,key-simple,users,users,keys,list_public_keys_for_user,select,,List public keys for a user -users.yaml,/user/keys,users/list-public-ssh-keys-for-authenticated-user,users/list_public_ssh_keys_for_authenticated_user,get,key,users,users,keys,list_public_ssh_keys_for_authenticated_user,select,,List public SSH keys for the authenticated user -users.yaml,/user/social_accounts,users/list-social-accounts-for-authenticated-user,users/list_social_accounts_for_authenticated_user,get,social-account,users,users,social_accounts,list_social_accounts_for_authenticated_user,select,,List social accounts for the authenticated user -users.yaml,/users/{username}/social_accounts,users/list-social-accounts-for-user,users/list_social_accounts_for_user,get,social-account,users,users,social_accounts,list_social_accounts_for_user,select,,List social accounts for a user -users.yaml,/user/ssh_signing_keys,users/list-ssh-signing-keys-for-authenticated-user,users/list_ssh_signing_keys_for_authenticated_user,get,ssh-signing-key,users,users,ssh_signing_keys,list_ssh_signing_keys_for_authenticated_user,select,,List SSH signing keys for the authenticated user -users.yaml,/users/{username}/ssh_signing_keys,users/list-ssh-signing-keys-for-user,users/list_ssh_signing_keys_for_user,get,ssh-signing-key,users,users,ssh_signing_keys,list_ssh_signing_keys_for_user,select,,List SSH signing keys for a user -users.yaml,/user/email/visibility,users/set-primary-email-visibility-for-authenticated-user,users/set_primary_email_visibility_for_authenticated_user,patch,email,users,users,emails,set_primary_email_visibility_for_authenticated_user,update,,Set primary email visibility for the authenticated user -users.yaml,/user/blocks/{username},users/unblock,users/unblock,delete,,users,users,blocking,unblock,exec,,Unblock a user -users.yaml,/user/following/{username},users/unfollow,users/unfollow,delete,,users,users,following,unfollow,exec,,Unfollow a user -users.yaml,/user,users/update-authenticated,users/update_authenticated,patch,private-user,users,users,users,update_authenticated,update,,Update the authenticated user +filename,path,operationId,formatted_op_id,verb,response_object,tags,formatted_tags,stackql_resource_name,stackql_method_name,stackql_verb,stackql_object_key,op_description +actions.yaml,/orgs/{org}/actions/runners/{runner_id}/labels,actions/add-custom-labels-to-self-hosted-runner-for-org,actions/add_custom_labels_to_self_hosted_runner_for_org,post,,actions,actions,runner_labels,add_custom_labels_to_self_hosted_runner_for_org,insert,,Add custom labels to a self-hosted runner for an organization +actions.yaml,/repos/{owner}/{repo}/actions/runners/{runner_id}/labels,actions/add-custom-labels-to-self-hosted-runner-for-repo,actions/add_custom_labels_to_self_hosted_runner_for_repo,post,,actions,actions,runner_labels,add_custom_labels_to_self_hosted_runner_for_repo,insert,,Add custom labels to a self-hosted runner for a repository +actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id},actions/add-repo-access-to-self-hosted-runner-group-in-org,actions/add_repo_access_to_self_hosted_runner_group_in_org,put,,actions,actions,org_runner_group_repos,add_repo_access_to_self_hosted_runner_group_in_org,replace,,Add repository access to a self-hosted runner group in an organization +actions.yaml,/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id},actions/add-selected-repo-to-org-secret,actions/add_selected_repo_to_org_secret,put,,actions,actions,repos_for_secret,add_selected_repo_to_org_secret,insert,,Add selected repository to an organization secret +actions.yaml,/orgs/{org}/actions/variables/{name}/repositories/{repository_id},actions/add-selected-repo-to-org-variable,actions/add_selected_repo_to_org_variable,put,,actions,actions,repos_for_org_variable,add_selected_repo_to_org_variable,insert,,Add selected repository to an organization variable +actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id},actions/add-self-hosted-runner-to-group-for-org,actions/add_self_hosted_runner_to_group_for_org,put,,actions,actions,org_runner_group_runners,add_self_hosted_runner_to_group_for_org,replace,,Add a self-hosted runner to a group for an organization +actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/approve,actions/approve-workflow-run,actions/approve_workflow_run,post,empty-object,actions,actions,workflow_runs,approve_workflow_run,exec,,Approve a workflow run for a fork pull request +actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/cancel,actions/cancel-workflow-run,actions/cancel_workflow_run,post,empty-object,actions,actions,workflow_runs,cancel_workflow_run,exec,,Cancel a workflow run +actions.yaml,/repos/{owner}/{repo}/environments/{environment_name}/variables,actions/create-environment-variable,actions/create_environment_variable,post,empty-object,actions,actions,variables,create_environment_variable,insert,,Create an environment variable +actions.yaml,/orgs/{org}/actions/hosted-runners,actions/create-hosted-runner-for-org,actions/create_hosted_runner_for_org,post,,actions,actions,org_hosted_runners,create_hosted_runner_for_org,insert,,Create a GitHub-hosted runner for an organization +actions.yaml,/repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name},actions/create-or-update-environment-secret,actions/create_or_update_environment_secret,put,empty-object,actions,actions,secrets,create_or_update_environment_secret,insert,,Create or update an environment secret +actions.yaml,/orgs/{org}/actions/secrets/{secret_name},actions/create-or-update-org-secret,actions/create_or_update_org_secret,put,empty-object,actions,actions,secrets,create_or_update_org_secret,insert,,Create or update an organization secret +actions.yaml,/repos/{owner}/{repo}/actions/secrets/{secret_name},actions/create-or-update-repo-secret,actions/create_or_update_repo_secret,put,empty-object,actions,actions,secrets,create_or_update_repo_secret,insert,,Create or update a repository secret +actions.yaml,/orgs/{org}/actions/variables,actions/create-org-variable,actions/create_org_variable,post,empty-object,actions,actions,variables,create_org_variable,insert,,Create an organization variable +actions.yaml,/orgs/{org}/actions/runners/registration-token,actions/create-registration-token-for-org,actions/create_registration_token_for_org,post,authentication-token,actions,actions,runner_registration_tokens,create_registration_token_for_org,insert,,Create a registration token for an organization +actions.yaml,/repos/{owner}/{repo}/actions/runners/registration-token,actions/create-registration-token-for-repo,actions/create_registration_token_for_repo,post,authentication-token,actions,actions,runner_registration_tokens,create_registration_token_for_repo,insert,,Create a registration token for a repository +actions.yaml,/orgs/{org}/actions/runners/remove-token,actions/create-remove-token-for-org,actions/create_remove_token_for_org,post,authentication-token,actions,actions,runner_remove_tokens,create_remove_token_for_org,insert,,Create a remove token for an organization +actions.yaml,/repos/{owner}/{repo}/actions/runners/remove-token,actions/create-remove-token-for-repo,actions/create_remove_token_for_repo,post,authentication-token,actions,actions,runner_remove_tokens,create_remove_token_for_repo,insert,,Create a remove token for a repository +actions.yaml,/repos/{owner}/{repo}/actions/variables,actions/create-repo-variable,actions/create_repo_variable,post,empty-object,actions,actions,variables,create_repo_variable,insert,,Create a repository variable +actions.yaml,/orgs/{org}/actions/runner-groups,actions/create-self-hosted-runner-group-for-org,actions/create_self_hosted_runner_group_for_org,post,,actions,actions,org_runner_groups,create_self_hosted_runner_group_for_org,insert,,Create a self-hosted runner group for an organization +actions.yaml,/repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches,actions/create-workflow-dispatch,actions/create_workflow_dispatch,post,,actions,actions,workflows,create_workflow_dispatch,insert,,Create a workflow dispatch event +actions.yaml,/repos/{owner}/{repo}/actions/caches/{cache_id},actions/delete-actions-cache-by-id,actions/delete_actions_cache_by_id,delete,,actions,actions,cache,delete_actions_cache_by_id,delete,,Delete a GitHub Actions cache for a repository (using a cache ID) +actions.yaml,/repos/{owner}/{repo}/actions/caches,actions/delete-actions-cache-by-key,actions/delete_actions_cache_by_key,delete,actions-cache-list,actions,actions,cache,delete_actions_cache_by_key,delete,,Delete GitHub Actions caches for a repository (using a cache key) +actions.yaml,/repos/{owner}/{repo}/actions/artifacts/{artifact_id},actions/delete-artifact,actions/delete_artifact,delete,,actions,actions,artifacts,delete_artifact,delete,,Delete an artifact +actions.yaml,/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id},actions/delete-custom-image-from-org,actions/delete_custom_image_from_org,delete,,actions,actions,org_hosted_runner_custom_images,delete_custom_image_from_org,delete,,Delete a custom image from the organization +actions.yaml,/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version},actions/delete-custom-image-version-from-org,actions/delete_custom_image_version_from_org,delete,,actions,actions,org_hosted_runner_custom_image_versions,delete_custom_image_version_from_org,delete,,Delete an image version of custom image from the organization +actions.yaml,/repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name},actions/delete-environment-secret,actions/delete_environment_secret,delete,,actions,actions,secrets,delete_environment_secret,delete,,Delete an environment secret +actions.yaml,/repos/{owner}/{repo}/environments/{environment_name}/variables/{name},actions/delete-environment-variable,actions/delete_environment_variable,delete,,actions,actions,variables,delete_environment_variable,delete,,Delete an environment variable +actions.yaml,/orgs/{org}/actions/hosted-runners/{hosted_runner_id},actions/delete-hosted-runner-for-org,actions/delete_hosted_runner_for_org,delete,,actions,actions,org_hosted_runners,delete_hosted_runner_for_org,delete,,Delete a GitHub-hosted runner for an organization +actions.yaml,/orgs/{org}/actions/secrets/{secret_name},actions/delete-org-secret,actions/delete_org_secret,delete,,actions,actions,secrets,delete_org_secret,delete,,Delete an organization secret +actions.yaml,/orgs/{org}/actions/variables/{name},actions/delete-org-variable,actions/delete_org_variable,delete,,actions,actions,variables,delete_org_variable,delete,,Delete an organization variable +actions.yaml,/repos/{owner}/{repo}/actions/secrets/{secret_name},actions/delete-repo-secret,actions/delete_repo_secret,delete,,actions,actions,secrets,delete_repo_secret,delete,,Delete a repository secret +actions.yaml,/repos/{owner}/{repo}/actions/variables/{name},actions/delete-repo-variable,actions/delete_repo_variable,delete,,actions,actions,variables,delete_repo_variable,delete,,Delete a repository variable +actions.yaml,/orgs/{org}/actions/runners/{runner_id},actions/delete-self-hosted-runner-from-org,actions/delete_self_hosted_runner_from_org,delete,,actions,actions,self_hosted_runners,delete_self_hosted_runner_from_org,delete,,Delete a self-hosted runner from an organization +actions.yaml,/repos/{owner}/{repo}/actions/runners/{runner_id},actions/delete-self-hosted-runner-from-repo,actions/delete_self_hosted_runner_from_repo,delete,,actions,actions,self_hosted_runners,delete_self_hosted_runner_from_repo,delete,,Delete a self-hosted runner from a repository +actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id},actions/delete-self-hosted-runner-group-from-org,actions/delete_self_hosted_runner_group_from_org,delete,,actions,actions,org_runner_groups,delete_self_hosted_runner_group_from_org,delete,,Delete a self-hosted runner group from an organization +actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id},actions/delete-workflow-run,actions/delete_workflow_run,delete,,actions,actions,workflow_runs,delete_workflow_run,delete,,Delete a workflow run +actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/logs,actions/delete-workflow-run-logs,actions/delete_workflow_run_logs,delete,,actions,actions,workflow_run_logs,delete_workflow_run_logs,delete,,Delete workflow run logs +actions.yaml,/orgs/{org}/actions/permissions/repositories/{repository_id},actions/disable-selected-repository-github-actions-organization,actions/disable_selected_repository_github_actions_organization,delete,,actions,actions,enabled_repos,disable_selected_repository_github_actions_organization,delete,,Disable a selected repository for GitHub Actions in an organization +actions.yaml,/orgs/{org}/actions/permissions/self-hosted-runners/repositories/{repository_id},actions/disable-selected-repository-self-hosted-runners-organization,actions/disable_selected_repository_self_hosted_runners_organization,delete,,actions,actions,org_self_hosted_runner_repo_access,disable_selected_repository_self_hosted_runners_organization,delete,,Remove a repository from the list of repositories allowed to use self-hosted runners in an organization +actions.yaml,/repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable,actions/disable-workflow,actions/disable_workflow,put,,actions,actions,workflows,disable_workflow,exec,,Disable a workflow +actions.yaml,/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format},actions/download-artifact,actions/download_artifact,get,,actions,actions,skip_this_resource,download_artifact,exec,,Download an artifact +actions.yaml,/repos/{owner}/{repo}/actions/jobs/{job_id}/logs,actions/download-job-logs-for-workflow-run,actions/download_job_logs_for_workflow_run,get,,actions,actions,skip_this_resource,download_job_logs_for_workflow_run,exec,,Download job logs for a workflow run +actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs,actions/download-workflow-run-attempt-logs,actions/download_workflow_run_attempt_logs,get,,actions,actions,skip_this_resource,download_workflow_run_attempt_logs,exec,,Download workflow run attempt logs +actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/logs,actions/download-workflow-run-logs,actions/download_workflow_run_logs,get,,actions,actions,skip_this_resource,download_workflow_run_logs,exec,,Download workflow run logs +actions.yaml,/orgs/{org}/actions/permissions/repositories/{repository_id},actions/enable-selected-repository-github-actions-organization,actions/enable_selected_repository_github_actions_organization,put,,actions,actions,enabled_repos,enable_selected_repository_github_actions_organization,replace,,Enable a selected repository for GitHub Actions in an organization +actions.yaml,/orgs/{org}/actions/permissions/self-hosted-runners/repositories/{repository_id},actions/enable-selected-repository-self-hosted-runners-organization,actions/enable_selected_repository_self_hosted_runners_organization,put,,actions,actions,org_self_hosted_runner_repo_access,enable_selected_repository_self_hosted_runners_organization,replace,,Add a repository to the list of repositories allowed to use self-hosted runners in an organization +actions.yaml,/repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable,actions/enable-workflow,actions/enable_workflow,put,,actions,actions,workflows,enable_workflow,exec,,Enable a workflow +actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel,actions/force-cancel-workflow-run,actions/force_cancel_workflow_run,post,,actions,actions,workflow_runs,force_cancel_workflow_run,insert,,Force cancel a workflow run +actions.yaml,/orgs/{org}/actions/runners/generate-jitconfig,actions/generate-runner-jitconfig-for-org,actions/generate_runner_jitconfig_for_org,post,,actions,actions,runner_jit_configs,generate_runner_jitconfig_for_org,insert,,Create configuration for a just-in-time runner for an organization +actions.yaml,/repos/{owner}/{repo}/actions/runners/generate-jitconfig,actions/generate-runner-jitconfig-for-repo,actions/generate_runner_jitconfig_for_repo,post,,actions,actions,runner_jit_configs,generate_runner_jitconfig_for_repo,insert,,Create configuration for a just-in-time runner for a repository +actions.yaml,/repos/{owner}/{repo}/actions/caches,actions/get-actions-cache-list,actions/get_actions_cache_list,get,actions-cache-list,actions,actions,cache,get_actions_cache_list,select,,List GitHub Actions caches for a repository +actions.yaml,/enterprises/{enterprise}/actions/cache/retention-limit,actions/get-actions-cache-retention-limit-for-enterprise,actions/get_actions_cache_retention_limit_for_enterprise,get,,actions,actions,cache_retention_limit,get_actions_cache_retention_limit_for_enterprise,select,,Get GitHub Actions cache retention limit for an enterprise +actions.yaml,/organizations/{org}/actions/cache/retention-limit,actions/get-actions-cache-retention-limit-for-organization,actions/get_actions_cache_retention_limit_for_organization,get,,actions,actions,cache_retention_limit,get_actions_cache_retention_limit_for_organization,select,,Get GitHub Actions cache retention limit for an organization +actions.yaml,/repos/{owner}/{repo}/actions/cache/retention-limit,actions/get-actions-cache-retention-limit-for-repository,actions/get_actions_cache_retention_limit_for_repository,get,,actions,actions,cache_retention_limit,get_actions_cache_retention_limit_for_repository,select,,Get GitHub Actions cache retention limit for a repository +actions.yaml,/enterprises/{enterprise}/actions/cache/storage-limit,actions/get-actions-cache-storage-limit-for-enterprise,actions/get_actions_cache_storage_limit_for_enterprise,get,,actions,actions,cache_storage_limit,get_actions_cache_storage_limit_for_enterprise,select,,Get GitHub Actions cache storage limit for an enterprise +actions.yaml,/organizations/{org}/actions/cache/storage-limit,actions/get-actions-cache-storage-limit-for-organization,actions/get_actions_cache_storage_limit_for_organization,get,,actions,actions,cache_storage_limit,get_actions_cache_storage_limit_for_organization,select,,Get GitHub Actions cache storage limit for an organization +actions.yaml,/repos/{owner}/{repo}/actions/cache/storage-limit,actions/get-actions-cache-storage-limit-for-repository,actions/get_actions_cache_storage_limit_for_repository,get,,actions,actions,cache_storage_limit,get_actions_cache_storage_limit_for_repository,select,,Get GitHub Actions cache storage limit for a repository +actions.yaml,/repos/{owner}/{repo}/actions/cache/usage,actions/get-actions-cache-usage,actions/get_actions_cache_usage,get,actions-cache-usage-by-repository,actions,actions,cache_usage,get_actions_cache_usage,select,,Get GitHub Actions cache usage for a repository +actions.yaml,/orgs/{org}/actions/cache/usage-by-repository,actions/get-actions-cache-usage-by-repo-for-org,actions/get_actions_cache_usage_by_repo_for_org,get,,actions,actions,org_cache_usage,get_actions_cache_usage_by_repo_for_org,select,,List repositories with GitHub Actions cache usage for an organization +actions.yaml,/orgs/{org}/actions/cache/usage,actions/get-actions-cache-usage-for-org,actions/get_actions_cache_usage_for_org,get,actions-cache-usage-org-enterprise,actions,actions,cache_usage,get_actions_cache_usage_for_org,select,,Get GitHub Actions cache usage for an organization +actions.yaml,/orgs/{org}/actions/permissions/selected-actions,actions/get-allowed-actions-organization,actions/get_allowed_actions_organization,get,selected-actions,actions,actions,allowed_actions,get_allowed_actions_organization,select,,Get allowed actions and reusable workflows for an organization +actions.yaml,/repos/{owner}/{repo}/actions/permissions/selected-actions,actions/get-allowed-actions-repository,actions/get_allowed_actions_repository,get,selected-actions,actions,actions,allowed_actions,get_allowed_actions_repository,select,,Get allowed actions and reusable workflows for a repository +actions.yaml,/repos/{owner}/{repo}/actions/artifacts/{artifact_id},actions/get-artifact,actions/get_artifact,get,artifact,actions,actions,artifacts,get_artifact,select,,Get an artifact +actions.yaml,/orgs/{org}/actions/permissions/artifact-and-log-retention,actions/get-artifact-and-log-retention-settings-organization,actions/get_artifact_and_log_retention_settings_organization,get,,actions,actions,artifact_log_retention,get_artifact_and_log_retention_settings_organization,select,,Get artifact and log retention settings for an organization +actions.yaml,/repos/{owner}/{repo}/actions/permissions/artifact-and-log-retention,actions/get-artifact-and-log-retention-settings-repository,actions/get_artifact_and_log_retention_settings_repository,get,,actions,actions,artifact_log_retention,get_artifact_and_log_retention_settings_repository,select,,Get artifact and log retention settings for a repository +actions.yaml,/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id},actions/get-custom-image-for-org,actions/get_custom_image_for_org,get,,actions,actions,org_hosted_runner_custom_images,get_custom_image_for_org,select,,Get a custom image definition for GitHub Actions Hosted Runners +actions.yaml,/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version},actions/get-custom-image-version-for-org,actions/get_custom_image_version_for_org,get,,actions,actions,org_hosted_runner_custom_image_versions,get_custom_image_version_for_org,select,,Get an image version of a custom image for GitHub Actions Hosted Runners +actions.yaml,/repos/{owner}/{repo}/actions/oidc/customization/sub,actions/get-custom-oidc-sub-claim-for-repo,actions/get_custom_oidc_sub_claim_for_repo,get,oidc-custom-sub-repo,actions,actions,oidc,get_custom_oidc_sub_claim_for_repo,select,,Get the customization template for an OIDC subject claim for a repository +actions.yaml,/repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key,actions/get-environment-public-key,actions/get_environment_public_key,get,actions-public-key,actions,actions,public_keys,get_environment_public_key,select,,Get an environment public key +actions.yaml,/repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name},actions/get-environment-secret,actions/get_environment_secret,get,actions-secret,actions,actions,secrets,get_environment_secret,select,,Get an environment secret +actions.yaml,/repos/{owner}/{repo}/environments/{environment_name}/variables/{name},actions/get-environment-variable,actions/get_environment_variable,get,actions-variable,actions,actions,variables,get_environment_variable,select,,Get an environment variable +actions.yaml,/orgs/{org}/actions/permissions/fork-pr-contributor-approval,actions/get-fork-pr-contributor-approval-permissions-organization,actions/get_fork_pr_contributor_approval_permissions_organization,get,,actions,actions,org_fork_pr_contributor_approval_permissions,get_fork_pr_contributor_approval_permissions_organization,select,,Get fork PR contributor approval permissions for an organization +actions.yaml,/repos/{owner}/{repo}/actions/permissions/fork-pr-contributor-approval,actions/get-fork-pr-contributor-approval-permissions-repository,actions/get_fork_pr_contributor_approval_permissions_repository,get,,actions,actions,fork_pr_contributor_approval_permissions,get_fork_pr_contributor_approval_permissions_repository,select,,Get fork PR contributor approval permissions for a repository +actions.yaml,/orgs/{org}/actions/permissions/workflow,actions/get-github-actions-default-workflow-permissions-organization,actions/get_github_actions_default_workflow_permissions_organization,get,actions-get-default-workflow-permissions,actions,actions,default_workflow_permissions,get_github_actions_default_workflow_permissions_organization,select,,Get default workflow permissions for an organization +actions.yaml,/repos/{owner}/{repo}/actions/permissions/workflow,actions/get-github-actions-default-workflow-permissions-repository,actions/get_github_actions_default_workflow_permissions_repository,get,actions-get-default-workflow-permissions,actions,actions,default_workflow_permissions,get_github_actions_default_workflow_permissions_repository,select,,Get default workflow permissions for a repository +actions.yaml,/orgs/{org}/actions/permissions,actions/get-github-actions-permissions-organization,actions/get_github_actions_permissions_organization,get,actions-organization-permissions,actions,actions,permissions,get_github_actions_permissions_organization,select,,Get GitHub Actions permissions for an organization +actions.yaml,/repos/{owner}/{repo}/actions/permissions,actions/get-github-actions-permissions-repository,actions/get_github_actions_permissions_repository,get,actions-repository-permissions,actions,actions,permissions,get_github_actions_permissions_repository,select,,Get GitHub Actions permissions for a repository +actions.yaml,/orgs/{org}/actions/hosted-runners/{hosted_runner_id},actions/get-hosted-runner-for-org,actions/get_hosted_runner_for_org,get,,actions,actions,org_hosted_runners,get_hosted_runner_for_org,select,,Get a GitHub-hosted runner for an organization +actions.yaml,/orgs/{org}/actions/hosted-runners/images/github-owned,actions/get-hosted-runners-github-owned-images-for-org,actions/get_hosted_runners_github_owned_images_for_org,get,,actions,actions,org_hosted_runner_github_images,get_hosted_runners_github_owned_images_for_org,select,,Get GitHub-owned images for GitHub-hosted runners in an organization +actions.yaml,/orgs/{org}/actions/hosted-runners/limits,actions/get-hosted-runners-limits-for-org,actions/get_hosted_runners_limits_for_org,get,,actions,actions,org_hosted_runner_limits,get_hosted_runners_limits_for_org,select,$.public_ips,Get limits on GitHub-hosted runners for an organization +actions.yaml,/orgs/{org}/actions/hosted-runners/machine-sizes,actions/get-hosted-runners-machine-specs-for-org,actions/get_hosted_runners_machine_specs_for_org,get,,actions,actions,org_hosted_runner_machine_specs,get_hosted_runners_machine_specs_for_org,select,,Get GitHub-hosted runners machine specs for an organization +actions.yaml,/orgs/{org}/actions/hosted-runners/images/partner,actions/get-hosted-runners-partner-images-for-org,actions/get_hosted_runners_partner_images_for_org,get,,actions,actions,org_hosted_runner_partner_images,get_hosted_runners_partner_images_for_org,select,,Get partner images for GitHub-hosted runners in an organization +actions.yaml,/orgs/{org}/actions/hosted-runners/platforms,actions/get-hosted-runners-platforms-for-org,actions/get_hosted_runners_platforms_for_org,get,,actions,actions,org_hosted_runner_platforms,get_hosted_runners_platforms_for_org,select,,Get platforms for GitHub-hosted runners in an organization +actions.yaml,/repos/{owner}/{repo}/actions/jobs/{job_id},actions/get-job-for-workflow-run,actions/get_job_for_workflow_run,get,job,actions,actions,workflow_jobs,get_job_for_workflow_run,select,,Get a job for a workflow run +actions.yaml,/orgs/{org}/actions/secrets/public-key,actions/get-org-public-key,actions/get_org_public_key,get,actions-public-key,actions,actions,public_keys,get_org_public_key,select,,Get an organization public key +actions.yaml,/orgs/{org}/actions/secrets/{secret_name},actions/get-org-secret,actions/get_org_secret,get,organization-actions-secret,actions,actions,secrets,get_org_secret,select,,Get an organization secret +actions.yaml,/orgs/{org}/actions/variables/{name},actions/get-org-variable,actions/get_org_variable,get,organization-actions-variable,actions,actions,variables,get_org_variable,select,,Get an organization variable +actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments,actions/get-pending-deployments-for-run,actions/get_pending_deployments_for_run,get,pending-deployment,actions,actions,pending_deployments_for_run,get_pending_deployments_for_run,select,,Get pending deployments for a workflow run +actions.yaml,/orgs/{org}/actions/permissions/fork-pr-workflows-private-repos,actions/get-private-repo-fork-pr-workflows-settings-organization,actions/get_private_repo_fork_pr_workflows_settings_organization,get,,actions,actions,org_fork_pr_workflows_private_repos_settings,get_private_repo_fork_pr_workflows_settings_organization,select,,Get private repo fork PR workflow settings for an organization +actions.yaml,/repos/{owner}/{repo}/actions/permissions/fork-pr-workflows-private-repos,actions/get-private-repo-fork-pr-workflows-settings-repository,actions/get_private_repo_fork_pr_workflows_settings_repository,get,,actions,actions,fork_pr_workflows_private_repos_settings,get_private_repo_fork_pr_workflows_settings_repository,select,,Get private repo fork PR workflow settings for a repository +actions.yaml,/repos/{owner}/{repo}/actions/secrets/public-key,actions/get-repo-public-key,actions/get_repo_public_key,get,actions-public-key,actions,actions,public_keys,get_repo_public_key,select,,Get a repository public key +actions.yaml,/repos/{owner}/{repo}/actions/secrets/{secret_name},actions/get-repo-secret,actions/get_repo_secret,get,actions-secret,actions,actions,secrets,get_repo_secret,select,,Get a repository secret +actions.yaml,/repos/{owner}/{repo}/actions/variables/{name},actions/get-repo-variable,actions/get_repo_variable,get,actions-variable,actions,actions,variables,get_repo_variable,select,,Get a repository variable +actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/approvals,actions/get-reviews-for-run,actions/get_reviews_for_run,get,environment-approvals,actions,actions,workflow_run_reviews,get_reviews_for_run,select,,Get the review history for a workflow run +actions.yaml,/orgs/{org}/actions/runners/{runner_id},actions/get-self-hosted-runner-for-org,actions/get_self_hosted_runner_for_org,get,runner,actions,actions,self_hosted_runners,get_self_hosted_runner_for_org,select,,Get a self-hosted runner for an organization +actions.yaml,/repos/{owner}/{repo}/actions/runners/{runner_id},actions/get-self-hosted-runner-for-repo,actions/get_self_hosted_runner_for_repo,get,runner,actions,actions,self_hosted_runners,get_self_hosted_runner_for_repo,select,,Get a self-hosted runner for a repository +actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id},actions/get-self-hosted-runner-group-for-org,actions/get_self_hosted_runner_group_for_org,get,,actions,actions,org_runner_groups,get_self_hosted_runner_group_for_org,select,,Get a self-hosted runner group for an organization +actions.yaml,/orgs/{org}/actions/permissions/self-hosted-runners,actions/get-self-hosted-runners-permissions-organization,actions/get_self_hosted_runners_permissions_organization,get,,actions,actions,org_self_hosted_runners_permissions,get_self_hosted_runners_permissions_organization,select,,Get self-hosted runners settings for an organization +actions.yaml,/repos/{owner}/{repo}/actions/workflows/{workflow_id},actions/get-workflow,actions/get_workflow,get,workflow,actions,actions,workflows,get_workflow,select,,Get a workflow +actions.yaml,/repos/{owner}/{repo}/actions/permissions/access,actions/get-workflow-access-to-repository,actions/get_workflow_access_to_repository,get,actions-workflow-access-to-repository,actions,actions,workflow_access,get_workflow_access_to_repository,select,,Get the level of access for workflows outside of the repository +actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id},actions/get-workflow-run,actions/get_workflow_run,get,workflow-run,actions,actions,workflow_runs,get_workflow_run,select,,Get a workflow run +actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number},actions/get-workflow-run-attempt,actions/get_workflow_run_attempt,get,workflow-run,actions,actions,workflow_runs,get_workflow_run_attempt,select,,Get a workflow run attempt +actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/timing,actions/get-workflow-run-usage,actions/get_workflow_run_usage,get,workflow-run-usage,actions,actions,workflow_run_usage,get_workflow_run_usage,select,,Get workflow run usage +actions.yaml,/repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing,actions/get-workflow-usage,actions/get_workflow_usage,get,workflow-usage,actions,actions,workflow_usage,get_workflow_usage,select,$.billable,Get workflow usage +actions.yaml,/repos/{owner}/{repo}/actions/artifacts,actions/list-artifacts-for-repo,actions/list_artifacts_for_repo,get,,actions,actions,artifacts,list_artifacts_for_repo,select,$.artifacts,List artifacts for a repository +actions.yaml,/orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions,actions/list-custom-image-versions-for-org,actions/list_custom_image_versions_for_org,get,,actions,actions,org_hosted_runner_custom_image_versions,list_custom_image_versions_for_org,select,$.image_versions,List image versions of a custom image for an organization +actions.yaml,/orgs/{org}/actions/hosted-runners/images/custom,actions/list-custom-images-for-org,actions/list_custom_images_for_org,get,,actions,actions,org_hosted_runner_custom_images,list_custom_images_for_org,select,$.images,List custom images for an organization +actions.yaml,/repos/{owner}/{repo}/environments/{environment_name}/secrets,actions/list-environment-secrets,actions/list_environment_secrets,get,,actions,actions,secrets,list_environment_secrets,select,$.secrets,List environment secrets +actions.yaml,/repos/{owner}/{repo}/environments/{environment_name}/variables,actions/list-environment-variables,actions/list_environment_variables,get,,actions,actions,variables,list_environment_variables,select,$.variables,List environment variables +actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners,actions/list-github-hosted-runners-in-group-for-org,actions/list_github_hosted_runners_in_group_for_org,get,,actions,actions,org_runner_group_hosted_runners,list_github_hosted_runners_in_group_for_org,select,$.runners,List GitHub-hosted runners in a group for an organization +actions.yaml,/orgs/{org}/actions/hosted-runners,actions/list-hosted-runners-for-org,actions/list_hosted_runners_for_org,get,,actions,actions,org_hosted_runners,list_hosted_runners_for_org,select,$.runners,List GitHub-hosted runners for an organization +actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/jobs,actions/list-jobs-for-workflow-run,actions/list_jobs_for_workflow_run,get,,actions,actions,workflow_jobs,list_jobs_for_workflow_run,select,$.jobs,List jobs for a workflow run +actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs,actions/list-jobs-for-workflow-run-attempt,actions/list_jobs_for_workflow_run_attempt,get,,actions,actions,workflow_jobs,list_jobs_for_workflow_run_attempt,select,$.jobs,List jobs for a workflow run attempt +actions.yaml,/orgs/{org}/actions/runners/{runner_id}/labels,actions/list-labels-for-self-hosted-runner-for-org,actions/list_labels_for_self_hosted_runner_for_org,get,,actions,actions,runner_labels,list_labels_for_self_hosted_runner_for_org,select,$.labels,List labels for a self-hosted runner for an organization +actions.yaml,/repos/{owner}/{repo}/actions/runners/{runner_id}/labels,actions/list-labels-for-self-hosted-runner-for-repo,actions/list_labels_for_self_hosted_runner_for_repo,get,,actions,actions,runner_labels,list_labels_for_self_hosted_runner_for_repo,select,$.labels,List labels for a self-hosted runner for a repository +actions.yaml,/orgs/{org}/actions/secrets,actions/list-org-secrets,actions/list_org_secrets,get,,actions,actions,secrets,list_org_secrets,select,$.secrets,List organization secrets +actions.yaml,/orgs/{org}/actions/variables,actions/list-org-variables,actions/list_org_variables,get,,actions,actions,variables,list_org_variables,select,$.variables,List organization variables +actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories,actions/list-repo-access-to-self-hosted-runner-group-in-org,actions/list_repo_access_to_self_hosted_runner_group_in_org,get,,actions,actions,org_runner_group_repos,list_repo_access_to_self_hosted_runner_group_in_org,select,$.repositories,List repository access to a self-hosted runner group in an organization +actions.yaml,/repos/{owner}/{repo}/actions/organization-secrets,actions/list-repo-organization-secrets,actions/list_repo_organization_secrets,get,,actions,actions,repo_org_secrets,list_repo_organization_secrets,select,$.secrets,List repository organization secrets +actions.yaml,/repos/{owner}/{repo}/actions/organization-variables,actions/list-repo-organization-variables,actions/list_repo_organization_variables,get,,actions,actions,repo_org_variables,list_repo_organization_variables,select,$.variables,List repository organization variables +actions.yaml,/repos/{owner}/{repo}/actions/secrets,actions/list-repo-secrets,actions/list_repo_secrets,get,,actions,actions,secrets,list_repo_secrets,select,$.secrets,List repository secrets +actions.yaml,/repos/{owner}/{repo}/actions/variables,actions/list-repo-variables,actions/list_repo_variables,get,,actions,actions,variables,list_repo_variables,select,$.variables,List repository variables +actions.yaml,/repos/{owner}/{repo}/actions/workflows,actions/list-repo-workflows,actions/list_repo_workflows,get,,actions,actions,workflows,list_repo_workflows,select,$.workflows,List repository workflows +actions.yaml,/orgs/{org}/actions/runners/downloads,actions/list-runner-applications-for-org,actions/list_runner_applications_for_org,get,runner-application,actions,actions,runner_applications,list_runner_applications_for_org,select,,List runner applications for an organization +actions.yaml,/repos/{owner}/{repo}/actions/runners/downloads,actions/list-runner-applications-for-repo,actions/list_runner_applications_for_repo,get,runner-application,actions,actions,runner_applications,list_runner_applications_for_repo,select,,List runner applications for a repository +actions.yaml,/orgs/{org}/actions/secrets/{secret_name}/repositories,actions/list-selected-repos-for-org-secret,actions/list_selected_repos_for_org_secret,get,,actions,actions,repos_for_secret,list_selected_repos_for_org_secret,select,$.repositories,List selected repositories for an organization secret +actions.yaml,/orgs/{org}/actions/variables/{name}/repositories,actions/list-selected-repos-for-org-variable,actions/list_selected_repos_for_org_variable,get,,actions,actions,repos_for_org_variable,list_selected_repos_for_org_variable,select,$.repositories,List selected repositories for an organization variable +actions.yaml,/orgs/{org}/actions/permissions/repositories,actions/list-selected-repositories-enabled-github-actions-organization,actions/list_selected_repositories_enabled_github_actions_organization,get,,actions,actions,enabled_repos,list_selected_repositories_enabled_github_actions_organization,select,$.repositories,List selected repositories enabled for GitHub Actions in an organization +actions.yaml,/orgs/{org}/actions/permissions/self-hosted-runners/repositories,actions/list-selected-repositories-self-hosted-runners-organization,actions/list_selected_repositories_self_hosted_runners_organization,get,,actions,actions,org_self_hosted_runner_repo_access,list_selected_repositories_self_hosted_runners_organization,select,$.repositories,List repositories allowed to use self-hosted runners in an organization +actions.yaml,/orgs/{org}/actions/runner-groups,actions/list-self-hosted-runner-groups-for-org,actions/list_self_hosted_runner_groups_for_org,get,,actions,actions,org_runner_groups,list_self_hosted_runner_groups_for_org,select,$.runner_groups,List self-hosted runner groups for an organization +actions.yaml,/orgs/{org}/actions/runners,actions/list-self-hosted-runners-for-org,actions/list_self_hosted_runners_for_org,get,,actions,actions,self_hosted_runners,list_self_hosted_runners_for_org,select,$.runners,List self-hosted runners for an organization +actions.yaml,/repos/{owner}/{repo}/actions/runners,actions/list-self-hosted-runners-for-repo,actions/list_self_hosted_runners_for_repo,get,,actions,actions,self_hosted_runners,list_self_hosted_runners_for_repo,select,$.runners,List self-hosted runners for a repository +actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id}/runners,actions/list-self-hosted-runners-in-group-for-org,actions/list_self_hosted_runners_in_group_for_org,get,,actions,actions,org_runner_group_runners,list_self_hosted_runners_in_group_for_org,select,$.runners,List self-hosted runners in a group for an organization +actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts,actions/list-workflow-run-artifacts,actions/list_workflow_run_artifacts,get,,actions,actions,artifacts,list_workflow_run_artifacts,select,$.artifacts,List workflow run artifacts +actions.yaml,/repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs,actions/list-workflow-runs,actions/list_workflow_runs,get,,actions,actions,workflow_runs,list_workflow_runs,select,$.workflow_runs,List workflow runs for a workflow +actions.yaml,/repos/{owner}/{repo}/actions/runs,actions/list-workflow-runs-for-repo,actions/list_workflow_runs_for_repo,get,,actions,actions,workflow_runs,list_workflow_runs_for_repo,select,$.workflow_runs,List workflow runs for a repository +actions.yaml,/repos/{owner}/{repo}/actions/jobs/{job_id}/rerun,actions/re-run-job-for-workflow-run,actions/re_run_job_for_workflow_run,post,empty-object,actions,actions,workflow_runs,re_run_job_for_workflow_run,exec,,Re-run a job from a workflow run +actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/rerun,actions/re-run-workflow,actions/re_run_workflow,post,empty-object,actions,actions,workflow_runs,re_run_workflow,exec,,Re-run a workflow +actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs,actions/re-run-workflow-failed-jobs,actions/re_run_workflow_failed_jobs,post,empty-object,actions,actions,workflow_runs,re_run_workflow_failed_jobs,exec,,Re-run failed jobs from a workflow run +actions.yaml,/orgs/{org}/actions/runners/{runner_id}/labels,actions/remove-all-custom-labels-from-self-hosted-runner-for-org,actions/remove_all_custom_labels_from_self_hosted_runner_for_org,delete,,actions,actions,runner_labels,remove_all_custom_labels_from_self_hosted_runner_for_org,delete,,Remove all custom labels from a self-hosted runner for an organization +actions.yaml,/repos/{owner}/{repo}/actions/runners/{runner_id}/labels,actions/remove-all-custom-labels-from-self-hosted-runner-for-repo,actions/remove_all_custom_labels_from_self_hosted_runner_for_repo,delete,,actions,actions,runner_labels,remove_all_custom_labels_from_self_hosted_runner_for_repo,delete,,Remove all custom labels from a self-hosted runner for a repository +actions.yaml,/orgs/{org}/actions/runners/{runner_id}/labels/{name},actions/remove-custom-label-from-self-hosted-runner-for-org,actions/remove_custom_label_from_self_hosted_runner_for_org,delete,,actions,actions,runner_labels,remove_custom_label_from_self_hosted_runner_for_org,delete,,Remove a custom label from a self-hosted runner for an organization +actions.yaml,/repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name},actions/remove-custom-label-from-self-hosted-runner-for-repo,actions/remove_custom_label_from_self_hosted_runner_for_repo,delete,,actions,actions,runner_labels,remove_custom_label_from_self_hosted_runner_for_repo,delete,,Remove a custom label from a self-hosted runner for a repository +actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id},actions/remove-repo-access-to-self-hosted-runner-group-in-org,actions/remove_repo_access_to_self_hosted_runner_group_in_org,delete,,actions,actions,org_runner_group_repos,remove_repo_access_to_self_hosted_runner_group_in_org,delete,,Remove repository access to a self-hosted runner group in an organization +actions.yaml,/orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id},actions/remove-selected-repo-from-org-secret,actions/remove_selected_repo_from_org_secret,delete,,actions,actions,repos_for_secret,remove_selected_repo_from_org_secret,delete,,Remove selected repository from an organization secret +actions.yaml,/orgs/{org}/actions/variables/{name}/repositories/{repository_id},actions/remove-selected-repo-from-org-variable,actions/remove_selected_repo_from_org_variable,delete,,actions,actions,repos_for_org_variable,remove_selected_repo_from_org_variable,delete,,Remove selected repository from an organization variable +actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id}/runners/{runner_id},actions/remove-self-hosted-runner-from-group-for-org,actions/remove_self_hosted_runner_from_group_for_org,delete,,actions,actions,org_runner_group_runners,remove_self_hosted_runner_from_group_for_org,delete,,Remove a self-hosted runner from a group for an organization +actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule,actions/review-custom-gates-for-run,actions/review_custom_gates_for_run,post,,actions,actions,workflow_runs,review_custom_gates_for_run,exec,,Review custom deployment protection rules for a workflow run +actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments,actions/review-pending-deployments-for-run,actions/review_pending_deployments_for_run,post,deployment,actions,actions,pending_deployments_for_run,review_pending_deployments_for_run,exec,,Review pending deployments for a workflow run +actions.yaml,/enterprises/{enterprise}/actions/cache/retention-limit,actions/set-actions-cache-retention-limit-for-enterprise,actions/set_actions_cache_retention_limit_for_enterprise,put,,actions,actions,cache_retention_limit,set_actions_cache_retention_limit_for_enterprise,replace,,Set GitHub Actions cache retention limit for an enterprise +actions.yaml,/organizations/{org}/actions/cache/retention-limit,actions/set-actions-cache-retention-limit-for-organization,actions/set_actions_cache_retention_limit_for_organization,put,,actions,actions,cache_retention_limit,set_actions_cache_retention_limit_for_organization,replace,,Set GitHub Actions cache retention limit for an organization +actions.yaml,/repos/{owner}/{repo}/actions/cache/retention-limit,actions/set-actions-cache-retention-limit-for-repository,actions/set_actions_cache_retention_limit_for_repository,put,,actions,actions,cache_retention_limit,set_actions_cache_retention_limit_for_repository,replace,,Set GitHub Actions cache retention limit for a repository +actions.yaml,/enterprises/{enterprise}/actions/cache/storage-limit,actions/set-actions-cache-storage-limit-for-enterprise,actions/set_actions_cache_storage_limit_for_enterprise,put,,actions,actions,cache_storage_limit,set_actions_cache_storage_limit_for_enterprise,replace,,Set GitHub Actions cache storage limit for an enterprise +actions.yaml,/organizations/{org}/actions/cache/storage-limit,actions/set-actions-cache-storage-limit-for-organization,actions/set_actions_cache_storage_limit_for_organization,put,,actions,actions,cache_storage_limit,set_actions_cache_storage_limit_for_organization,replace,,Set GitHub Actions cache storage limit for an organization +actions.yaml,/repos/{owner}/{repo}/actions/cache/storage-limit,actions/set-actions-cache-storage-limit-for-repository,actions/set_actions_cache_storage_limit_for_repository,put,,actions,actions,cache_storage_limit,set_actions_cache_storage_limit_for_repository,replace,,Set GitHub Actions cache storage limit for a repository +actions.yaml,/orgs/{org}/actions/permissions/selected-actions,actions/set-allowed-actions-organization,actions/set_allowed_actions_organization,put,,actions,actions,allowed_actions,set_allowed_actions_organization,replace,,Set allowed actions and reusable workflows for an organization +actions.yaml,/repos/{owner}/{repo}/actions/permissions/selected-actions,actions/set-allowed-actions-repository,actions/set_allowed_actions_repository,put,,actions,actions,allowed_actions,set_allowed_actions_repository,replace,,Set allowed actions and reusable workflows for a repository +actions.yaml,/orgs/{org}/actions/permissions/artifact-and-log-retention,actions/set-artifact-and-log-retention-settings-organization,actions/set_artifact_and_log_retention_settings_organization,put,,actions,actions,artifact_log_retention,set_artifact_and_log_retention_settings_organization,replace,,Set artifact and log retention settings for an organization +actions.yaml,/repos/{owner}/{repo}/actions/permissions/artifact-and-log-retention,actions/set-artifact-and-log-retention-settings-repository,actions/set_artifact_and_log_retention_settings_repository,put,,actions,actions,artifact_log_retention,set_artifact_and_log_retention_settings_repository,replace,,Set artifact and log retention settings for a repository +actions.yaml,/orgs/{org}/actions/runners/{runner_id}/labels,actions/set-custom-labels-for-self-hosted-runner-for-org,actions/set_custom_labels_for_self_hosted_runner_for_org,put,,actions,actions,runner_labels,set_custom_labels_for_self_hosted_runner_for_org,replace,,Set custom labels for a self-hosted runner for an organization +actions.yaml,/repos/{owner}/{repo}/actions/runners/{runner_id}/labels,actions/set-custom-labels-for-self-hosted-runner-for-repo,actions/set_custom_labels_for_self_hosted_runner_for_repo,put,,actions,actions,runner_labels,set_custom_labels_for_self_hosted_runner_for_repo,replace,,Set custom labels for a self-hosted runner for a repository +actions.yaml,/repos/{owner}/{repo}/actions/oidc/customization/sub,actions/set-custom-oidc-sub-claim-for-repo,actions/set_custom_oidc_sub_claim_for_repo,put,empty-object,actions,actions,oidc,set_custom_oidc_sub_claim_for_repo,replace,,Set the customization template for an OIDC subject claim for a repository +actions.yaml,/orgs/{org}/actions/permissions/fork-pr-contributor-approval,actions/set-fork-pr-contributor-approval-permissions-organization,actions/set_fork_pr_contributor_approval_permissions_organization,put,,actions,actions,org_fork_pr_contributor_approval_permissions,set_fork_pr_contributor_approval_permissions_organization,replace,,Set fork PR contributor approval permissions for an organization +actions.yaml,/repos/{owner}/{repo}/actions/permissions/fork-pr-contributor-approval,actions/set-fork-pr-contributor-approval-permissions-repository,actions/set_fork_pr_contributor_approval_permissions_repository,put,,actions,actions,fork_pr_contributor_approval_permissions,set_fork_pr_contributor_approval_permissions_repository,replace,,Set fork PR contributor approval permissions for a repository +actions.yaml,/orgs/{org}/actions/permissions/workflow,actions/set-github-actions-default-workflow-permissions-organization,actions/set_github_actions_default_workflow_permissions_organization,put,,actions,actions,default_workflow_permissions,set_github_actions_default_workflow_permissions_organization,replace,,Set default workflow permissions for an organization +actions.yaml,/repos/{owner}/{repo}/actions/permissions/workflow,actions/set-github-actions-default-workflow-permissions-repository,actions/set_github_actions_default_workflow_permissions_repository,put,,actions,actions,default_workflow_permissions,set_github_actions_default_workflow_permissions_repository,replace,,Set default workflow permissions for a repository +actions.yaml,/orgs/{org}/actions/permissions,actions/set-github-actions-permissions-organization,actions/set_github_actions_permissions_organization,put,,actions,actions,permissions,set_github_actions_permissions_organization,replace,,Set GitHub Actions permissions for an organization +actions.yaml,/repos/{owner}/{repo}/actions/permissions,actions/set-github-actions-permissions-repository,actions/set_github_actions_permissions_repository,put,,actions,actions,permissions,set_github_actions_permissions_repository,replace,,Set GitHub Actions permissions for a repository +actions.yaml,/orgs/{org}/actions/permissions/fork-pr-workflows-private-repos,actions/set-private-repo-fork-pr-workflows-settings-organization,actions/set_private_repo_fork_pr_workflows_settings_organization,put,,actions,actions,org_fork_pr_workflows_private_repos_settings,set_private_repo_fork_pr_workflows_settings_organization,replace,,Set private repo fork PR workflow settings for an organization +actions.yaml,/repos/{owner}/{repo}/actions/permissions/fork-pr-workflows-private-repos,actions/set-private-repo-fork-pr-workflows-settings-repository,actions/set_private_repo_fork_pr_workflows_settings_repository,put,,actions,actions,fork_pr_workflows_private_repos_settings,set_private_repo_fork_pr_workflows_settings_repository,replace,,Set private repo fork PR workflow settings for a repository +actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id}/repositories,actions/set-repo-access-to-self-hosted-runner-group-in-org,actions/set_repo_access_to_self_hosted_runner_group_in_org,put,,actions,actions,org_runner_group_repos,set_repo_access_to_self_hosted_runner_group_in_org,replace,,Set repository access for a self-hosted runner group in an organization +actions.yaml,/orgs/{org}/actions/secrets/{secret_name}/repositories,actions/set-selected-repos-for-org-secret,actions/set_selected_repos_for_org_secret,put,,actions,actions,repos_for_secret,set_selected_repos_for_org_secret,replace,,Set selected repositories for an organization secret +actions.yaml,/orgs/{org}/actions/variables/{name}/repositories,actions/set-selected-repos-for-org-variable,actions/set_selected_repos_for_org_variable,put,,actions,actions,repos_for_org_variable,set_selected_repos_for_org_variable,replace,,Set selected repositories for an organization variable +actions.yaml,/orgs/{org}/actions/permissions/repositories,actions/set-selected-repositories-enabled-github-actions-organization,actions/set_selected_repositories_enabled_github_actions_organization,put,,actions,actions,enabled_repos,set_selected_repositories_enabled_github_actions_organization,replace,,Set selected repositories enabled for GitHub Actions in an organization +actions.yaml,/orgs/{org}/actions/permissions/self-hosted-runners/repositories,actions/set-selected-repositories-self-hosted-runners-organization,actions/set_selected_repositories_self_hosted_runners_organization,put,,actions,actions,org_self_hosted_runner_repo_access,set_selected_repositories_self_hosted_runners_organization,replace,,Set repositories allowed to use self-hosted runners in an organization +actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id}/runners,actions/set-self-hosted-runners-in-group-for-org,actions/set_self_hosted_runners_in_group_for_org,put,,actions,actions,org_runner_group_runners,set_self_hosted_runners_in_group_for_org,replace,,Set self-hosted runners in a group for an organization +actions.yaml,/orgs/{org}/actions/permissions/self-hosted-runners,actions/set-self-hosted-runners-permissions-organization,actions/set_self_hosted_runners_permissions_organization,put,,actions,actions,org_self_hosted_runners_permissions,set_self_hosted_runners_permissions_organization,replace,,Set self-hosted runners settings for an organization +actions.yaml,/repos/{owner}/{repo}/actions/permissions/access,actions/set-workflow-access-to-repository,actions/set_workflow_access_to_repository,put,,actions,actions,workflow_access,set_workflow_access_to_repository,replace,,Set the level of access for workflows outside of the repository +actions.yaml,/repos/{owner}/{repo}/environments/{environment_name}/variables/{name},actions/update-environment-variable,actions/update_environment_variable,patch,,actions,actions,variables,update_environment_variable,update,,Update an environment variable +actions.yaml,/orgs/{org}/actions/hosted-runners/{hosted_runner_id},actions/update-hosted-runner-for-org,actions/update_hosted_runner_for_org,patch,,actions,actions,org_hosted_runners,update_hosted_runner_for_org,update,,Update a GitHub-hosted runner for an organization +actions.yaml,/orgs/{org}/actions/variables/{name},actions/update-org-variable,actions/update_org_variable,patch,,actions,actions,variables,update_org_variable,update,,Update an organization variable +actions.yaml,/repos/{owner}/{repo}/actions/variables/{name},actions/update-repo-variable,actions/update_repo_variable,patch,,actions,actions,variables,update_repo_variable,update,,Update a repository variable +actions.yaml,/orgs/{org}/actions/runner-groups/{runner_group_id},actions/update-self-hosted-runner-group-for-org,actions/update_self_hosted_runner_group_for_org,patch,,actions,actions,org_runner_groups,update_self_hosted_runner_group_for_org,update,,Update a self-hosted runner group for an organization +activity.yaml,/user/starred/{owner}/{repo},activity/check-repo-is-starred-by-authenticated-user,activity/check_repo_is_starred_by_authenticated_user,get,,activity,activity,starring,check_repo_is_starred_by_authenticated_user,exec,,Check if a repository is starred by the authenticated user +activity.yaml,/repos/{owner}/{repo}/subscription,activity/delete-repo-subscription,activity/delete_repo_subscription,delete,,activity,activity,repo_subscriptions,delete_repo_subscription,delete,,Delete a repository subscription +activity.yaml,/notifications/threads/{thread_id}/subscription,activity/delete-thread-subscription,activity/delete_thread_subscription,delete,,activity,activity,notifications_thread_subscriptions,delete_thread_subscription,delete,,Delete a thread subscription +activity.yaml,/feeds,activity/get-feeds,activity/get_feeds,get,feed,activity,activity,feeds,get_feeds,select,,Get feeds +activity.yaml,/repos/{owner}/{repo}/subscription,activity/get-repo-subscription,activity/get_repo_subscription,get,repository-subscription,activity,activity,repo_subscriptions,get_repo_subscription,select,,Get a repository subscription +activity.yaml,/notifications/threads/{thread_id},activity/get-thread,activity/get_thread,get,thread,activity,activity,notifications,get_thread,select,,Get a thread +activity.yaml,/notifications/threads/{thread_id}/subscription,activity/get-thread-subscription-for-authenticated-user,activity/get_thread_subscription_for_authenticated_user,get,thread-subscription,activity,activity,notifications_thread_subscriptions,get_thread_subscription_for_authenticated_user,select,,Get a thread subscription for the authenticated user +activity.yaml,/users/{username}/events,activity/list-events-for-authenticated-user,activity/list_events_for_authenticated_user,get,event,activity,activity,events,list_events_for_authenticated_user,select,,List events for the authenticated user +activity.yaml,/notifications,activity/list-notifications-for-authenticated-user,activity/list_notifications_for_authenticated_user,get,thread,activity,activity,notifications,list_notifications_for_authenticated_user,select,,List notifications for the authenticated user +activity.yaml,/users/{username}/events/orgs/{org},activity/list-org-events-for-authenticated-user,activity/list_org_events_for_authenticated_user,get,event,activity,activity,events,list_org_events_for_authenticated_user,select,,List organization events for the authenticated user +activity.yaml,/events,activity/list-public-events,activity/list_public_events,get,event,activity,activity,public_events,list_public_events,select,,List public events +activity.yaml,/networks/{owner}/{repo}/events,activity/list-public-events-for-repo-network,activity/list_public_events_for_repo_network,get,event,activity,activity,public_events,list_public_events_for_repo_network,select,,List public events for a network of repositories +activity.yaml,/users/{username}/events/public,activity/list-public-events-for-user,activity/list_public_events_for_user,get,event,activity,activity,public_events,list_public_events_for_user,select,,List public events for a user +activity.yaml,/orgs/{org}/events,activity/list-public-org-events,activity/list_public_org_events,get,event,activity,activity,public_events,list_public_org_events,select,,List public organization events +activity.yaml,/users/{username}/received_events,activity/list-received-events-for-user,activity/list_received_events_for_user,get,event,activity,activity,received_events,list_received_events_for_user,select,,List events received by the authenticated user +activity.yaml,/users/{username}/received_events/public,activity/list-received-public-events-for-user,activity/list_received_public_events_for_user,get,event,activity,activity,received_public_events,list_received_public_events_for_user,select,,List public events received by a user +activity.yaml,/repos/{owner}/{repo}/events,activity/list-repo-events,activity/list_repo_events,get,event,activity,activity,events,list_repo_events,select,,List repository events +activity.yaml,/repos/{owner}/{repo}/notifications,activity/list-repo-notifications-for-authenticated-user,activity/list_repo_notifications_for_authenticated_user,get,thread,activity,activity,notifications,list_repo_notifications_for_authenticated_user,select,,List repository notifications for the authenticated user +activity.yaml,/user/starred,activity/list-repos-starred-by-authenticated-user,activity/list_repos_starred_by_authenticated_user,get,repository,activity,activity,starring,list_repos_starred_by_authenticated_user,select,,List repositories starred by the authenticated user +activity.yaml,/users/{username}/starred,activity/list-repos-starred-by-user,activity/list_repos_starred_by_user,get,starred-repository,activity,activity,starring,list_repos_starred_by_user,select,,List repositories starred by a user +activity.yaml,/users/{username}/subscriptions,activity/list-repos-watched-by-user,activity/list_repos_watched_by_user,get,minimal-repository,activity,activity,watching,list_repos_watched_by_user,select,,List repositories watched by a user +activity.yaml,/repos/{owner}/{repo}/stargazers,activity/list-stargazers-for-repo,activity/list_stargazers_for_repo,get,simple-user,activity,activity,repo_stargazers,list_stargazers_for_repo,select,,List stargazers +activity.yaml,/user/subscriptions,activity/list-watched-repos-for-authenticated-user,activity/list_watched_repos_for_authenticated_user,get,minimal-repository,activity,activity,watching,list_watched_repos_for_authenticated_user,select,,List repositories watched by the authenticated user +activity.yaml,/repos/{owner}/{repo}/subscribers,activity/list-watchers-for-repo,activity/list_watchers_for_repo,get,simple-user,activity,activity,repo_watchers,list_watchers_for_repo,select,,List watchers +activity.yaml,/notifications,activity/mark-notifications-as-read,activity/mark_notifications_as_read,put,,activity,activity,notifications,mark_notifications_as_read,exec,,Mark notifications as read +activity.yaml,/repos/{owner}/{repo}/notifications,activity/mark-repo-notifications-as-read,activity/mark_repo_notifications_as_read,put,,activity,activity,notifications,mark_repo_notifications_as_read,exec,,Mark repository notifications as read +activity.yaml,/notifications/threads/{thread_id},activity/mark-thread-as-done,activity/mark_thread_as_done,delete,,activity,activity,notifications,mark_thread_as_done,delete,,Mark a thread as done +activity.yaml,/notifications/threads/{thread_id},activity/mark-thread-as-read,activity/mark_thread_as_read,patch,,activity,activity,notifications,mark_thread_as_read,update,,Mark a thread as read +activity.yaml,/repos/{owner}/{repo}/subscription,activity/set-repo-subscription,activity/set_repo_subscription,put,repository-subscription,activity,activity,repo_subscriptions,set_repo_subscription,replace,,Set a repository subscription +activity.yaml,/notifications/threads/{thread_id}/subscription,activity/set-thread-subscription,activity/set_thread_subscription,put,thread-subscription,activity,activity,notifications_thread_subscriptions,set_thread_subscription,replace,,Set a thread subscription +activity.yaml,/user/starred/{owner}/{repo},activity/star-repo-for-authenticated-user,activity/star_repo_for_authenticated_user,put,,activity,activity,starring,star_repo_for_authenticated_user,exec,,Star a repository for the authenticated user +activity.yaml,/user/starred/{owner}/{repo},activity/unstar-repo-for-authenticated-user,activity/unstar_repo_for_authenticated_user,delete,,activity,activity,starring,unstar_repo_for_authenticated_user,exec,,Unstar a repository for the authenticated user +agent_tasks.yaml,/agents/tasks/{task_id},agent-tasks/get-task-by-id,agent_tasks/get_task_by_id,get,,agent-tasks,agent_tasks,tasks,get_task_by_id,select,$.sessions,Get a task by ID +agent_tasks.yaml,/agents/repos/{owner}/{repo}/tasks/{task_id},agent-tasks/get-task-by-repo-and-id,agent_tasks/get_task_by_repo_and_id,get,,agent-tasks,agent_tasks,repo_tasks,get_task_by_repo_and_id,select,$.sessions,Get a task by repo +agent_tasks.yaml,/agents/tasks,agent-tasks/list-tasks,agent_tasks/list_tasks,get,,agent-tasks,agent_tasks,tasks,list_tasks,select,$.tasks,List tasks +agent_tasks.yaml,/agents/repos/{owner}/{repo}/tasks,agent-tasks/list-tasks-for-repo,agent_tasks/list_tasks_for_repo,get,,agent-tasks,agent_tasks,repo_tasks,list_tasks_for_repo,select,$.tasks,List tasks for repository +apps.yaml,/user/installations/{installation_id}/repositories/{repository_id},apps/add-repo-to-installation-for-authenticated-user,apps/add_repo_to_installation_for_authenticated_user,put,,apps,apps,installation_repos,add_repo_to_installation_for_authenticated_user,insert,,Add a repository to an app installation +apps.yaml,/applications/{client_id}/token,apps/check-token,apps/check_token,post,authorization,apps,apps,oauth_applications,check_token,exec,,Check a token +apps.yaml,/app-manifests/{code}/conversions,apps/create-from-manifest,apps/create_from_manifest,post,,apps,apps,apps,create_from_manifest,insert,,Create a GitHub App from a manifest +apps.yaml,/app/installations/{installation_id}/access_tokens,apps/create-installation-access-token,apps/create_installation_access_token,post,installation-token,apps,apps,apps,create_installation_access_token,insert,,Create an installation access token for an app +apps.yaml,/applications/{client_id}/grant,apps/delete-authorization,apps/delete_authorization,delete,,apps,apps,oauth_grants,delete_authorization,delete,,Delete an app authorization +apps.yaml,/app/installations/{installation_id},apps/delete-installation,apps/delete_installation,delete,,apps,apps,apps,delete_installation,delete,,Delete an installation for the authenticated app +apps.yaml,/applications/{client_id}/token,apps/delete-token,apps/delete_token,delete,,apps,apps,oauth_applications,delete_token,delete,,Delete an app token +apps.yaml,/app,apps/get-authenticated,apps/get_authenticated,get,integration,apps,apps,integrations,get_authenticated,select,,Get the authenticated app +apps.yaml,/apps/{app_slug},apps/get-by-slug,apps/get_by_slug,get,integration,apps,apps,integrations,get_by_slug,select,,Get an app +apps.yaml,/app/installations/{installation_id},apps/get-installation,apps/get_installation,get,installation,apps,apps,apps,get_installation,select,,Get an installation for the authenticated app +apps.yaml,/orgs/{org}/installation,apps/get-org-installation,apps/get_org_installation,get,installation,apps,apps,apps,get_org_installation,select,,Get an organization installation for the authenticated app +apps.yaml,/repos/{owner}/{repo}/installation,apps/get-repo-installation,apps/get_repo_installation,get,installation,apps,apps,apps,get_repo_installation,select,,Get a repository installation for the authenticated app +apps.yaml,/marketplace_listing/accounts/{account_id},apps/get-subscription-plan-for-account,apps/get_subscription_plan_for_account,get,marketplace-purchase,apps,apps,marketplace_subs,get_subscription_plan_for_account,select,,Get a subscription plan for an account +apps.yaml,/marketplace_listing/stubbed/accounts/{account_id},apps/get-subscription-plan-for-account-stubbed,apps/get_subscription_plan_for_account_stubbed,get,marketplace-purchase,apps,apps,marketplace_subs_stubbed,get_subscription_plan_for_account_stubbed,select,,Get a subscription plan for an account (stubbed) +apps.yaml,/users/{username}/installation,apps/get-user-installation,apps/get_user_installation,get,installation,apps,apps,apps,get_user_installation,select,,Get a user installation for the authenticated app +apps.yaml,/app/hook/config,apps/get-webhook-config-for-app,apps/get_webhook_config_for_app,get,webhook-config,apps,apps,webhook_config,get_webhook_config_for_app,select,,Get a webhook configuration for an app +apps.yaml,/app/hook/deliveries/{delivery_id},apps/get-webhook-delivery,apps/get_webhook_delivery,get,hook-delivery,apps,apps,webhook_delivery,get_webhook_delivery,select,,Get a delivery for an app webhook +apps.yaml,/marketplace_listing/plans/{plan_id}/accounts,apps/list-accounts-for-plan,apps/list_accounts_for_plan,get,marketplace-purchase,apps,apps,marketplace_subs,list_accounts_for_plan,select,,List accounts for a plan +apps.yaml,/marketplace_listing/stubbed/plans/{plan_id}/accounts,apps/list-accounts-for-plan-stubbed,apps/list_accounts_for_plan_stubbed,get,marketplace-purchase,apps,apps,marketplace_subs_stubbed,list_accounts_for_plan_stubbed,select,,List accounts for a plan (stubbed) +apps.yaml,/user/installations/{installation_id}/repositories,apps/list-installation-repos-for-authenticated-user,apps/list_installation_repos_for_authenticated_user,get,,apps,apps,installation_repos,list_installation_repos_for_authenticated_user,select,$.repositories,List repositories accessible to the user access token +apps.yaml,/app/installation-requests,apps/list-installation-requests-for-authenticated-app,apps/list_installation_requests_for_authenticated_app,get,integration-installation-request,apps,apps,integration_installation_requests,list_installation_requests_for_authenticated_app,select,,List installation requests for the authenticated app +apps.yaml,/app/installations,apps/list-installations,apps/list_installations,get,installation,apps,apps,apps,list_installations,select,,List installations for the authenticated app +apps.yaml,/user/installations,apps/list-installations-for-authenticated-user,apps/list_installations_for_authenticated_user,get,,apps,apps,installations,list_installations_for_authenticated_user,select,$.installations,List app installations accessible to the user access token +apps.yaml,/marketplace_listing/plans,apps/list-plans,apps/list_plans,get,marketplace-listing-plan,apps,apps,marketplace_listings,list_plans,select,,List plans +apps.yaml,/marketplace_listing/stubbed/plans,apps/list-plans-stubbed,apps/list_plans_stubbed,get,marketplace-listing-plan,apps,apps,marketplace_listings_stubbed,list_plans_stubbed,select,,List plans (stubbed) +apps.yaml,/installation/repositories,apps/list-repos-accessible-to-installation,apps/list_repos_accessible_to_installation,get,,apps,apps,installation_repos,list_repos_accessible_to_installation,select,$.repositories,List repositories accessible to the app installation +apps.yaml,/user/marketplace_purchases,apps/list-subscriptions-for-authenticated-user,apps/list_subscriptions_for_authenticated_user,get,user-marketplace-purchase,apps,apps,marketplace_users_subs,list_subscriptions_for_authenticated_user,select,,List subscriptions for the authenticated user +apps.yaml,/user/marketplace_purchases/stubbed,apps/list-subscriptions-for-authenticated-user-stubbed,apps/list_subscriptions_for_authenticated_user_stubbed,get,user-marketplace-purchase,apps,apps,marketplace_users_subs_stubbed,list_subscriptions_for_authenticated_user_stubbed,select,,List subscriptions for the authenticated user (stubbed) +apps.yaml,/app/hook/deliveries,apps/list-webhook-deliveries,apps/list_webhook_deliveries,get,hook-delivery-item,apps,apps,webhook_deliveries,list_webhook_deliveries,select,,List deliveries for an app webhook +apps.yaml,/app/hook/deliveries/{delivery_id}/attempts,apps/redeliver-webhook-delivery,apps/redeliver_webhook_delivery,post,,apps,apps,webhook_delivery,redeliver_webhook_delivery,exec,,Redeliver a delivery for an app webhook +apps.yaml,/user/installations/{installation_id}/repositories/{repository_id},apps/remove-repo-from-installation-for-authenticated-user,apps/remove_repo_from_installation_for_authenticated_user,delete,,apps,apps,installation_repos,remove_repo_from_installation_for_authenticated_user,delete,,Remove a repository from an app installation +apps.yaml,/applications/{client_id}/token,apps/reset-token,apps/reset_token,patch,authorization,apps,apps,oauth_applications,reset_token,exec,,Reset a token +apps.yaml,/installation/token,apps/revoke-installation-access-token,apps/revoke_installation_access_token,delete,,apps,apps,installations,revoke_installation_access_token,delete,,Revoke an installation access token +apps.yaml,/applications/{client_id}/token/scoped,apps/scope-token,apps/scope_token,post,authorization,apps,apps,apps,scope_token,exec,,Create a scoped access token +apps.yaml,/app/installations/{installation_id}/suspended,apps/suspend-installation,apps/suspend_installation,put,,apps,apps,apps,suspend_installation,exec,,Suspend an app installation +apps.yaml,/app/installations/{installation_id}/suspended,apps/unsuspend-installation,apps/unsuspend_installation,delete,,apps,apps,apps,unsuspend_installation,exec,,Unsuspend an app installation +apps.yaml,/app/hook/config,apps/update-webhook-config-for-app,apps/update_webhook_config_for_app,patch,webhook-config,apps,apps,webhook_config,update_webhook_config_for_app,update,,Update a webhook configuration for an app +billing.yaml,/organizations/{org}/settings/billing/budgets/{budget_id},billing/delete-budget-org,billing/delete_budget_org,delete,,billing,billing,org_budgets,delete_budget_org,delete,,Delete a budget for an organization +billing.yaml,/organizations/{org}/settings/billing/budgets,billing/get-all-budgets-org,billing/get_all_budgets_org,get,,billing,billing,org_budgets,get_all_budgets_org,select,,Get all budgets for an organization +billing.yaml,/organizations/{org}/settings/billing/budgets/{budget_id},billing/get-budget-org,billing/get_budget_org,get,,billing,billing,org_budgets,get_budget_org,select,,Get a budget by ID for an organization +billing.yaml,/organizations/{org}/settings/billing/premium_request/usage,billing/get-github-billing-premium-request-usage-report-org,billing/get_github_billing_premium_request_usage_report_org,get,,billing,billing,org_premium_request_usage,get_github_billing_premium_request_usage_report_org,select,,Get billing premium request usage report for an organization +billing.yaml,/users/{username}/settings/billing/premium_request/usage,billing/get-github-billing-premium-request-usage-report-user,billing/get_github_billing_premium_request_usage_report_user,get,,billing,billing,premium_request_usage,get_github_billing_premium_request_usage_report_user,select,,Get billing premium request usage report for a user +billing.yaml,/organizations/{org}/settings/billing/usage,billing/get-github-billing-usage-report-org,billing/get_github_billing_usage_report_org,get,,billing,billing,org_usage,get_github_billing_usage_report_org,select,$.usageItems,Get billing usage report for an organization +billing.yaml,/users/{username}/settings/billing/usage,billing/get-github-billing-usage-report-user,billing/get_github_billing_usage_report_user,get,,billing,billing,usage,get_github_billing_usage_report_user,select,$.usageItems,Get billing usage report for a user +billing.yaml,/organizations/{org}/settings/billing/usage/summary,billing/get-github-billing-usage-summary-report-org,billing/get_github_billing_usage_summary_report_org,get,,billing,billing,org_usage_summary,get_github_billing_usage_summary_report_org,select,,Get billing usage summary for an organization +billing.yaml,/users/{username}/settings/billing/usage/summary,billing/get-github-billing-usage-summary-report-user,billing/get_github_billing_usage_summary_report_user,get,,billing,billing,usage_summary,get_github_billing_usage_summary_report_user,select,,Get billing usage summary for a user +billing.yaml,/organizations/{org}/settings/billing/budgets/{budget_id},billing/update-budget-org,billing/update_budget_org,patch,,billing,billing,org_budgets,update_budget_org,update,,Update a budget for an organization +campaigns.yaml,/orgs/{org}/campaigns,campaigns/create-campaign,campaigns/create_campaign,post,,campaigns,campaigns,org_campaigns,create_campaign,insert,,Create a campaign for an organization +campaigns.yaml,/orgs/{org}/campaigns/{campaign_number},campaigns/delete-campaign,campaigns/delete_campaign,delete,,campaigns,campaigns,org_campaigns,delete_campaign,delete,,Delete a campaign for an organization +campaigns.yaml,/orgs/{org}/campaigns/{campaign_number},campaigns/get-campaign-summary,campaigns/get_campaign_summary,get,,campaigns,campaigns,org_campaigns,get_campaign_summary,select,,Get a campaign for an organization +campaigns.yaml,/orgs/{org}/campaigns,campaigns/list-org-campaigns,campaigns/list_org_campaigns,get,,campaigns,campaigns,org_campaigns,list_org_campaigns,select,,List campaigns for an organization +campaigns.yaml,/orgs/{org}/campaigns/{campaign_number},campaigns/update-campaign,campaigns/update_campaign,patch,,campaigns,campaigns,org_campaigns,update_campaign,update,,Update a campaign +checks.yaml,/repos/{owner}/{repo}/check-runs,checks/create,checks/create,post,check-run,checks,checks,runs,create,insert,,Create a check run +checks.yaml,/repos/{owner}/{repo}/check-suites,checks/create-suite,checks/create_suite,post,check-suite,checks,checks,suites,create_suite,insert,,Create a check suite +checks.yaml,/repos/{owner}/{repo}/check-runs/{check_run_id},checks/get,checks/get,get,check-run,checks,checks,runs,get,select,,Get a check run +checks.yaml,/repos/{owner}/{repo}/check-suites/{check_suite_id},checks/get-suite,checks/get_suite,get,check-suite,checks,checks,suites,get_suite,select,,Get a check suite +checks.yaml,/repos/{owner}/{repo}/check-runs/{check_run_id}/annotations,checks/list-annotations,checks/list_annotations,get,check-annotation,checks,checks,annotations,list_annotations,select,,List check run annotations +checks.yaml,/repos/{owner}/{repo}/commits/{ref}/check-runs,checks/list-for-ref,checks/list_for_ref,get,,checks,checks,runs,list_for_ref,select,$.check_runs,List check runs for a Git reference +checks.yaml,/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs,checks/list-for-suite,checks/list_for_suite,get,,checks,checks,runs,list_for_suite,select,$.check_runs,List check runs in a check suite +checks.yaml,/repos/{owner}/{repo}/commits/{ref}/check-suites,checks/list-suites-for-ref,checks/list_suites_for_ref,get,,checks,checks,suites,list_suites_for_ref,select,$.check_suites,List check suites for a Git reference +checks.yaml,/repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest,checks/rerequest-run,checks/rerequest_run,post,empty-object,checks,checks,runs,rerequest_run,exec,,Rerequest a check run +checks.yaml,/repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest,checks/rerequest-suite,checks/rerequest_suite,post,empty-object,checks,checks,suites,rerequest_suite,exec,,Rerequest a check suite +checks.yaml,/repos/{owner}/{repo}/check-suites/preferences,checks/set-suites-preferences,checks/set_suites_preferences,patch,check-suite-preference,checks,checks,suites,set_suites_preferences,update,,Update repository preferences for check suites +checks.yaml,/repos/{owner}/{repo}/check-runs/{check_run_id},checks/update,checks/update,patch,check-run,checks,checks,runs,update,update,,Update a check run +classroom.yaml,/classrooms/{classroom_id},classroom/get-a-classroom,classroom/get_a_classroom,get,,classroom,classroom,classrooms,get_a_classroom,select,,Get a classroom +classroom.yaml,/assignments/{assignment_id},classroom/get-an-assignment,classroom/get_an_assignment,get,,classroom,classroom,assignments,get_an_assignment,select,,Get an assignment +classroom.yaml,/assignments/{assignment_id}/grades,classroom/get-assignment-grades,classroom/get_assignment_grades,get,,classroom,classroom,assignment_grades,get_assignment_grades,select,,Get assignment grades +classroom.yaml,/assignments/{assignment_id}/accepted_assignments,classroom/list-accepted-assignments-for-an-assignment,classroom/list_accepted_assignments_for_an_assignment,get,,classroom,classroom,assignment_accepted_assignments,list_accepted_assignments_for_an_assignment,select,,List accepted assignments for an assignment +classroom.yaml,/classrooms/{classroom_id}/assignments,classroom/list-assignments-for-a-classroom,classroom/list_assignments_for_a_classroom,get,,classroom,classroom,classroom_assignments,list_assignments_for_a_classroom,select,,List assignments for a classroom +classroom.yaml,/classrooms,classroom/list-classrooms,classroom/list_classrooms,get,,classroom,classroom,classrooms,list_classrooms,select,,List classrooms +code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits,code-scanning/commit-autofix,code_scanning/commit_autofix,post,,code-scanning,code_scanning,alert_autofixes,commit_autofix,exec,,Commit an autofix for a code scanning alert +code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix,code-scanning/create-autofix,code_scanning/create_autofix,post,,code-scanning,code_scanning,alert_autofixes,create_autofix,insert,,Create an autofix for a code scanning alert +code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/codeql/variant-analyses,code-scanning/create-variant-analysis,code_scanning/create_variant_analysis,post,,code-scanning,code_scanning,codeql_variant_analyses,create_variant_analysis,insert,,Create a CodeQL variant analysis +code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id},code-scanning/delete-analysis,code_scanning/delete_analysis,delete,code-scanning-analysis-deletion,code-scanning,code_scanning,analysis,delete_analysis,delete,,Delete a code scanning analysis from a repository +code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/codeql/databases/{language},code-scanning/delete-codeql-database,code_scanning/delete_codeql_database,delete,,code-scanning,code_scanning,codeql_databases,delete_codeql_database,delete,,Delete a CodeQL database +code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/alerts/{alert_number},code-scanning/get-alert,code_scanning/get_alert,get,code-scanning-alert,code-scanning,code_scanning,alerts,get_alert,select,,Get a code scanning alert +code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id},code-scanning/get-analysis,code_scanning/get_analysis,get,code-scanning-analysis,code-scanning,code_scanning,analysis,get_analysis,select,,Get a code scanning analysis for a repository +code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix,code-scanning/get-autofix,code_scanning/get_autofix,get,,code-scanning,code_scanning,alert_autofixes,get_autofix,select,,Get the status of an autofix for a code scanning alert +code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/codeql/databases/{language},code-scanning/get-codeql-database,code_scanning/get_codeql_database,get,code-scanning-codeql-database,code-scanning,code_scanning,codeql_databases,get_codeql_database,select,,Get a CodeQL database for a repository +code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/default-setup,code-scanning/get-default-setup,code_scanning/get_default_setup,get,code-scanning-default-setup,code-scanning,code_scanning,default_setup,get_default_setup,select,,Get a code scanning default setup configuration +code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id},code-scanning/get-sarif,code_scanning/get_sarif,get,code-scanning-sarifs-status,code-scanning,code_scanning,sarifs,get_sarif,select,,Get information about a SARIF upload +code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id},code-scanning/get-variant-analysis,code_scanning/get_variant_analysis,get,,code-scanning,code_scanning,codeql_variant_analyses,get_variant_analysis,select,,Get the summary of a CodeQL variant analysis +code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name},code-scanning/get-variant-analysis-repo-task,code_scanning/get_variant_analysis_repo_task,get,,code-scanning,code_scanning,codeql_variant_analysis_repo_tasks,get_variant_analysis_repo_task,select,,Get the analysis status of a repository in a CodeQL variant analysis +code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances,code-scanning/list-alert-instances,code_scanning/list_alert_instances,get,code-scanning-alert-instance,code-scanning,code_scanning,alert_instances,list_alert_instances,select,,List instances of a code scanning alert +code_scanning.yaml,/orgs/{org}/code-scanning/alerts,code-scanning/list-alerts-for-org,code_scanning/list_alerts_for_org,get,code-scanning-organization-alert-items,code-scanning,code_scanning,alert_items,list_alerts_for_org,select,,List code scanning alerts for an organization +code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/alerts,code-scanning/list-alerts-for-repo,code_scanning/list_alerts_for_repo,get,code-scanning-alert-items,code-scanning,code_scanning,alert_items,list_alerts_for_repo,select,,List code scanning alerts for a repository +code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/codeql/databases,code-scanning/list-codeql-databases,code_scanning/list_codeql_databases,get,code-scanning-codeql-database,code-scanning,code_scanning,codeql_databases,list_codeql_databases,select,,List CodeQL databases for a repository +code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/analyses,code-scanning/list-recent-analyses,code_scanning/list_recent_analyses,get,code-scanning-analysis,code-scanning,code_scanning,analysis,list_recent_analyses,select,,List code scanning analyses for a repository +code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/alerts/{alert_number},code-scanning/update-alert,code_scanning/update_alert,patch,code-scanning-alert,code-scanning,code_scanning,alerts,update_alert,update,,Update a code scanning alert +code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/default-setup,code-scanning/update-default-setup,code_scanning/update_default_setup,patch,empty-object,code-scanning,code_scanning,default_setup,update_default_setup,update,,Update a code scanning default setup configuration +code_scanning.yaml,/repos/{owner}/{repo}/code-scanning/sarifs,code-scanning/upload-sarif,code_scanning/upload_sarif,post,code-scanning-sarifs-receipt,code-scanning,code_scanning,sarifs,upload_sarif,update,,Upload an analysis as SARIF data +code_security.yaml,/orgs/{org}/code-security/configurations/{configuration_id}/attach,code-security/attach-configuration,code_security/attach_configuration,post,,code-security,code_security,code_security_configurations,attach_configuration,insert,,Attach a configuration to repositories +code_security.yaml,/enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach,code-security/attach-enterprise-configuration,code_security/attach_enterprise_configuration,post,,code-security,code_security,code_security_configurations,attach_enterprise_configuration,insert,,Attach an enterprise configuration to repositories +code_security.yaml,/orgs/{org}/code-security/configurations,code-security/create-configuration,code_security/create_configuration,post,,code-security,code_security,code_security_configurations,create_configuration,insert,,Create a code security configuration +code_security.yaml,/enterprises/{enterprise}/code-security/configurations,code-security/create-configuration-for-enterprise,code_security/create_configuration_for_enterprise,post,,code-security,code_security,code_security_configurations,create_configuration_for_enterprise,insert,,Create a code security configuration for an enterprise +code_security.yaml,/orgs/{org}/code-security/configurations/{configuration_id},code-security/delete-configuration,code_security/delete_configuration,delete,,code-security,code_security,code_security_configurations,delete_configuration,delete,,Delete a code security configuration +code_security.yaml,/enterprises/{enterprise}/code-security/configurations/{configuration_id},code-security/delete-configuration-for-enterprise,code_security/delete_configuration_for_enterprise,delete,,code-security,code_security,code_security_configurations,delete_configuration_for_enterprise,delete,,Delete a code security configuration for an enterprise +code_security.yaml,/orgs/{org}/code-security/configurations/detach,code-security/detach-configuration,code_security/detach_configuration,delete,,code-security,code_security,code_security_configurations,detach_configuration,delete,,Detach configurations from repositories +code_security.yaml,/orgs/{org}/code-security/configurations/{configuration_id},code-security/get-configuration,code_security/get_configuration,get,,code-security,code_security,code_security_configurations,get_configuration,select,,Get a code security configuration +code_security.yaml,/repos/{owner}/{repo}/code-security-configuration,code-security/get-configuration-for-repository,code_security/get_configuration_for_repository,get,,code-security,code_security,repo_code_security_configuration,get_configuration_for_repository,select,,Get the code security configuration associated with a repository +code_security.yaml,/enterprises/{enterprise}/code-security/configurations,code-security/get-configurations-for-enterprise,code_security/get_configurations_for_enterprise,get,,code-security,code_security,code_security_configurations,get_configurations_for_enterprise,select,,Get code security configurations for an enterprise +code_security.yaml,/orgs/{org}/code-security/configurations,code-security/get-configurations-for-org,code_security/get_configurations_for_org,get,,code-security,code_security,code_security_configurations,get_configurations_for_org,select,,Get code security configurations for an organization +code_security.yaml,/orgs/{org}/code-security/configurations/defaults,code-security/get-default-configurations,code_security/get_default_configurations,get,,code-security,code_security,code_security_default_configurations,get_default_configurations,select,,Get default code security configurations +code_security.yaml,/enterprises/{enterprise}/code-security/configurations/defaults,code-security/get-default-configurations-for-enterprise,code_security/get_default_configurations_for_enterprise,get,,code-security,code_security,code_security_default_configurations,get_default_configurations_for_enterprise,select,,Get default code security configurations for an enterprise +code_security.yaml,/orgs/{org}/code-security/configurations/{configuration_id}/repositories,code-security/get-repositories-for-configuration,code_security/get_repositories_for_configuration,get,,code-security,code_security,code_security_configuration_repos,get_repositories_for_configuration,select,,Get repositories associated with a code security configuration +code_security.yaml,/enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories,code-security/get-repositories-for-enterprise-configuration,code_security/get_repositories_for_enterprise_configuration,get,,code-security,code_security,code_security_configuration_repos,get_repositories_for_enterprise_configuration,select,,Get repositories associated with an enterprise code security configuration +code_security.yaml,/enterprises/{enterprise}/code-security/configurations/{configuration_id},code-security/get-single-configuration-for-enterprise,code_security/get_single_configuration_for_enterprise,get,,code-security,code_security,code_security_configurations,get_single_configuration_for_enterprise,select,,Retrieve a code security configuration of an enterprise +code_security.yaml,/orgs/{org}/code-security/configurations/{configuration_id}/defaults,code-security/set-configuration-as-default,code_security/set_configuration_as_default,put,,code-security,code_security,code_security_configurations,set_configuration_as_default,replace,,Set a code security configuration as a default for an organization +code_security.yaml,/enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults,code-security/set-configuration-as-default-for-enterprise,code_security/set_configuration_as_default_for_enterprise,put,,code-security,code_security,code_security_configurations,set_configuration_as_default_for_enterprise,replace,,Set a code security configuration as a default for an enterprise +code_security.yaml,/orgs/{org}/code-security/configurations/{configuration_id},code-security/update-configuration,code_security/update_configuration,patch,,code-security,code_security,code_security_configurations,update_configuration,update,,Update a code security configuration +code_security.yaml,/enterprises/{enterprise}/code-security/configurations/{configuration_id},code-security/update-enterprise-configuration,code_security/update_enterprise_configuration,patch,,code-security,code_security,code_security_configurations,update_enterprise_configuration,update,,Update a custom code security configuration for an enterprise +codes_of_conduct.yaml,/codes_of_conduct,codes-of-conduct/get-all-codes-of-conduct,codes_of_conduct/get_all_codes_of_conduct,get,code-of-conduct,codes-of-conduct,codes_of_conduct,codes_of_conduct,get_all_codes_of_conduct,select,,Get all codes of conduct +codes_of_conduct.yaml,/codes_of_conduct/{key},codes-of-conduct/get-conduct-code,codes_of_conduct/get_conduct_code,get,code-of-conduct,codes-of-conduct,codes_of_conduct,codes_of_conduct,get_conduct_code,select,,Get a code of conduct +codespaces.yaml,/user/codespaces/secrets/{secret_name}/repositories/{repository_id},codespaces/add-repository-for-secret-for-authenticated-user,codespaces/add_repository_for_secret_for_authenticated_user,put,,codespaces,codespaces,user_secrets,add_repository_for_secret_for_authenticated_user,insert,,Add a selected repository to a user secret +codespaces.yaml,/orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id},codespaces/add-selected-repo-to-org-secret,codespaces/add_selected_repo_to_org_secret,put,,codespaces,codespaces,org_secrets_repos,add_selected_repo_to_org_secret,insert,,Add selected repository to an organization secret +codespaces.yaml,/repos/{owner}/{repo}/codespaces/permissions_check,codespaces/check-permissions-for-devcontainer,codespaces/check_permissions_for_devcontainer,get,,codespaces,codespaces,devcontainer_permissions,check_permissions_for_devcontainer,select,,Check if permissions defined by a devcontainer have been accepted by the authenticated user +codespaces.yaml,/user/codespaces/{codespace_name}/machines,codespaces/codespace-machines-for-authenticated-user,codespaces/codespace_machines_for_authenticated_user,get,,codespaces,codespaces,machines,codespace_machines_for_authenticated_user,select,,List machine types for a codespace +codespaces.yaml,/user/codespaces,codespaces/create-for-authenticated-user,codespaces/create_for_authenticated_user,post,codespace,codespaces,codespaces,codespaces,create_for_authenticated_user,insert,,Create a codespace for the authenticated user +codespaces.yaml,/orgs/{org}/codespaces/secrets/{secret_name},codespaces/create-or-update-org-secret,codespaces/create_or_update_org_secret,put,empty-object,codespaces,codespaces,organization_secrets,create_or_update_org_secret,insert,,Create or update an organization secret +codespaces.yaml,/repos/{owner}/{repo}/codespaces/secrets/{secret_name},codespaces/create-or-update-repo-secret,codespaces/create_or_update_repo_secret,put,empty-object,codespaces,codespaces,repository_secrets,create_or_update_repo_secret,insert,,Create or update a repository secret +codespaces.yaml,/user/codespaces/secrets/{secret_name},codespaces/create-or-update-secret-for-authenticated-user,codespaces/create_or_update_secret_for_authenticated_user,put,empty-object,codespaces,codespaces,secrets,create_or_update_secret_for_authenticated_user,insert,,Create or update a secret for the authenticated user +codespaces.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/codespaces,codespaces/create-with-pr-for-authenticated-user,codespaces/create_with_pr_for_authenticated_user,post,codespace,codespaces,codespaces,codespaces,create_with_pr_for_authenticated_user,insert,,Create a codespace from a pull request +codespaces.yaml,/repos/{owner}/{repo}/codespaces,codespaces/create-with-repo-for-authenticated-user,codespaces/create_with_repo_for_authenticated_user,post,codespace,codespaces,codespaces,codespaces,create_with_repo_for_authenticated_user,insert,,Create a codespace in a repository +codespaces.yaml,/orgs/{org}/codespaces/access/selected_users,codespaces/delete-codespaces-access-users,codespaces/delete_codespaces_access_users,delete,,codespaces,codespaces,organizations,delete_codespaces_access_users,delete,,Remove users from Codespaces access for an organization +codespaces.yaml,/user/codespaces/{codespace_name},codespaces/delete-for-authenticated-user,codespaces/delete_for_authenticated_user,delete,,codespaces,codespaces,codespaces,delete_for_authenticated_user,delete,,Delete a codespace for the authenticated user +codespaces.yaml,/orgs/{org}/members/{username}/codespaces/{codespace_name},codespaces/delete-from-organization,codespaces/delete_from_organization,delete,,codespaces,codespaces,organizations,delete_from_organization,delete,,Delete a codespace from the organization +codespaces.yaml,/orgs/{org}/codespaces/secrets/{secret_name},codespaces/delete-org-secret,codespaces/delete_org_secret,delete,,codespaces,codespaces,organization_secrets,delete_org_secret,delete,,Delete an organization secret +codespaces.yaml,/repos/{owner}/{repo}/codespaces/secrets/{secret_name},codespaces/delete-repo-secret,codespaces/delete_repo_secret,delete,,codespaces,codespaces,repository_secrets,delete_repo_secret,delete,,Delete a repository secret +codespaces.yaml,/user/codespaces/secrets/{secret_name},codespaces/delete-secret-for-authenticated-user,codespaces/delete_secret_for_authenticated_user,delete,,codespaces,codespaces,secrets,delete_secret_for_authenticated_user,delete,,Delete a secret for the authenticated user +codespaces.yaml,/user/codespaces/{codespace_name}/exports,codespaces/export-for-authenticated-user,codespaces/export_for_authenticated_user,post,codespace-export-details,codespaces,codespaces,codespaces,export_for_authenticated_user,exec,,Export a codespace for the authenticated user +codespaces.yaml,/orgs/{org}/members/{username}/codespaces,codespaces/get-codespaces-for-user-in-org,codespaces/get_codespaces_for_user_in_org,get,,codespaces,codespaces,organizations,get_codespaces_for_user_in_org,select,,List codespaces for a user in organization +codespaces.yaml,/user/codespaces/{codespace_name}/exports/{export_id},codespaces/get-export-details-for-authenticated-user,codespaces/get_export_details_for_authenticated_user,get,codespace-export-details,codespaces,codespaces,codespace_export_details,get_export_details_for_authenticated_user,select,,Get details about a codespace export +codespaces.yaml,/user/codespaces/{codespace_name},codespaces/get-for-authenticated-user,codespaces/get_for_authenticated_user,get,codespace,codespaces,codespaces,codespaces,get_for_authenticated_user,select,,Get a codespace for the authenticated user +codespaces.yaml,/orgs/{org}/codespaces/secrets/public-key,codespaces/get-org-public-key,codespaces/get_org_public_key,get,codespaces-public-key,codespaces,codespaces,public_keys,get_org_public_key,select,,Get an organization public key +codespaces.yaml,/orgs/{org}/codespaces/secrets/{secret_name},codespaces/get-org-secret,codespaces/get_org_secret,get,codespaces-org-secret,codespaces,codespaces,organization_secrets,get_org_secret,select,,Get an organization secret +codespaces.yaml,/user/codespaces/secrets/public-key,codespaces/get-public-key-for-authenticated-user,codespaces/get_public_key_for_authenticated_user,get,codespaces-user-public-key,codespaces,codespaces,user_public_keys,get_public_key_for_authenticated_user,select,,Get public key for the authenticated user +codespaces.yaml,/repos/{owner}/{repo}/codespaces/secrets/public-key,codespaces/get-repo-public-key,codespaces/get_repo_public_key,get,codespaces-public-key,codespaces,codespaces,public_keys,get_repo_public_key,select,,Get a repository public key +codespaces.yaml,/repos/{owner}/{repo}/codespaces/secrets/{secret_name},codespaces/get-repo-secret,codespaces/get_repo_secret,get,repo-codespaces-secret,codespaces,codespaces,repository_secrets,get_repo_secret,select,,Get a repository secret +codespaces.yaml,/user/codespaces/secrets/{secret_name},codespaces/get-secret-for-authenticated-user,codespaces/get_secret_for_authenticated_user,get,codespaces-secret,codespaces,codespaces,secrets,get_secret_for_authenticated_user,select,,Get a secret for the authenticated user +codespaces.yaml,/repos/{owner}/{repo}/codespaces/devcontainers,codespaces/list-devcontainers-in-repository-for-authenticated-user,codespaces/list_devcontainers_in_repository_for_authenticated_user,get,,codespaces,codespaces,devcontainers,list_devcontainers_in_repository_for_authenticated_user,select,$.devcontainers,List devcontainer configurations in a repository for the authenticated user +codespaces.yaml,/user/codespaces,codespaces/list-for-authenticated-user,codespaces/list_for_authenticated_user,get,,codespaces,codespaces,codespaces,list_for_authenticated_user,select,$.codespaces,List codespaces for the authenticated user +codespaces.yaml,/orgs/{org}/codespaces,codespaces/list-in-organization,codespaces/list_in_organization,get,,codespaces,codespaces,organizations,list_in_organization,select,$.codespaces,List codespaces for the organization +codespaces.yaml,/repos/{owner}/{repo}/codespaces,codespaces/list-in-repository-for-authenticated-user,codespaces/list_in_repository_for_authenticated_user,get,,codespaces,codespaces,codespaces,list_in_repository_for_authenticated_user,select,$.codespaces,List codespaces in a repository for the authenticated user +codespaces.yaml,/orgs/{org}/codespaces/secrets,codespaces/list-org-secrets,codespaces/list_org_secrets,get,,codespaces,codespaces,organization_secrets,list_org_secrets,select,$.secrets,List organization secrets +codespaces.yaml,/repos/{owner}/{repo}/codespaces/secrets,codespaces/list-repo-secrets,codespaces/list_repo_secrets,get,,codespaces,codespaces,repository_secrets,list_repo_secrets,select,$.secrets,List repository secrets +codespaces.yaml,/user/codespaces/secrets/{secret_name}/repositories,codespaces/list-repositories-for-secret-for-authenticated-user,codespaces/list_repositories_for_secret_for_authenticated_user,get,,codespaces,codespaces,user_secrets,list_repositories_for_secret_for_authenticated_user,select,$.repositories,List selected repositories for a user secret +codespaces.yaml,/user/codespaces/secrets,codespaces/list-secrets-for-authenticated-user,codespaces/list_secrets_for_authenticated_user,get,,codespaces,codespaces,secrets,list_secrets_for_authenticated_user,select,$.secrets,List secrets for the authenticated user +codespaces.yaml,/orgs/{org}/codespaces/secrets/{secret_name}/repositories,codespaces/list-selected-repos-for-org-secret,codespaces/list_selected_repos_for_org_secret,get,,codespaces,codespaces,org_secrets_repos,list_selected_repos_for_org_secret,select,$.repositories,List selected repositories for an organization secret +codespaces.yaml,/repos/{owner}/{repo}/codespaces/new,codespaces/pre-flight-with-repo-for-authenticated-user,codespaces/pre_flight_with_repo_for_authenticated_user,get,,codespaces,codespaces,codespaces,pre_flight_with_repo_for_authenticated_user,exec,,Get default attributes for a codespace +codespaces.yaml,/user/codespaces/{codespace_name}/publish,codespaces/publish-for-authenticated-user,codespaces/publish_for_authenticated_user,post,codespace-with-full-repository,codespaces,codespaces,codespaces,publish_for_authenticated_user,exec,,Create a repository from an unpublished codespace +codespaces.yaml,/user/codespaces/secrets/{secret_name}/repositories/{repository_id},codespaces/remove-repository-for-secret-for-authenticated-user,codespaces/remove_repository_for_secret_for_authenticated_user,delete,,codespaces,codespaces,user_secrets,remove_repository_for_secret_for_authenticated_user,delete,,Remove a selected repository from a user secret +codespaces.yaml,/orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id},codespaces/remove-selected-repo-from-org-secret,codespaces/remove_selected_repo_from_org_secret,delete,,codespaces,codespaces,org_secrets_repos,remove_selected_repo_from_org_secret,delete,,Remove selected repository from an organization secret +codespaces.yaml,/repos/{owner}/{repo}/codespaces/machines,codespaces/repo-machines-for-authenticated-user,codespaces/repo_machines_for_authenticated_user,get,,codespaces,codespaces,machines,repo_machines_for_authenticated_user,select,,List available machine types for a repository +codespaces.yaml,/orgs/{org}/codespaces/access,codespaces/set-codespaces-access,codespaces/set_codespaces_access,put,,codespaces,codespaces,organizations,set_codespaces_access,replace,,Manage access control for organization codespaces +codespaces.yaml,/orgs/{org}/codespaces/access/selected_users,codespaces/set-codespaces-access-users,codespaces/set_codespaces_access_users,post,,codespaces,codespaces,organizations,set_codespaces_access_users,exec,,Add users to Codespaces access for an organization +codespaces.yaml,/user/codespaces/secrets/{secret_name}/repositories,codespaces/set-repositories-for-secret-for-authenticated-user,codespaces/set_repositories_for_secret_for_authenticated_user,put,,codespaces,codespaces,user_secrets,set_repositories_for_secret_for_authenticated_user,replace,,Set selected repositories for a user secret +codespaces.yaml,/orgs/{org}/codespaces/secrets/{secret_name}/repositories,codespaces/set-selected-repos-for-org-secret,codespaces/set_selected_repos_for_org_secret,put,,codespaces,codespaces,org_secrets_repos,set_selected_repos_for_org_secret,replace,,Set selected repositories for an organization secret +codespaces.yaml,/user/codespaces/{codespace_name}/start,codespaces/start-for-authenticated-user,codespaces/start_for_authenticated_user,post,codespace,codespaces,codespaces,codespaces,start_for_authenticated_user,exec,,Start a codespace for the authenticated user +codespaces.yaml,/user/codespaces/{codespace_name}/stop,codespaces/stop-for-authenticated-user,codespaces/stop_for_authenticated_user,post,codespace,codespaces,codespaces,codespaces,stop_for_authenticated_user,exec,,Stop a codespace for the authenticated user +codespaces.yaml,/orgs/{org}/members/{username}/codespaces/{codespace_name}/stop,codespaces/stop-in-organization,codespaces/stop_in_organization,post,codespace,codespaces,codespaces,organizations,stop_in_organization,exec,,Stop a codespace for an organization user +codespaces.yaml,/user/codespaces/{codespace_name},codespaces/update-for-authenticated-user,codespaces/update_for_authenticated_user,patch,codespace,codespaces,codespaces,codespaces,update_for_authenticated_user,update,,Update a codespace for the authenticated user +copilot.yaml,/orgs/{org}/copilot/billing/selected_teams,copilot/add-copilot-seats-for-teams,copilot/add_copilot_seats_for_teams,post,,copilot,copilot,org_copilot_seats_teams,add_copilot_seats_for_teams,insert,,Add teams to the Copilot subscription for an organization +copilot.yaml,/orgs/{org}/copilot/billing/selected_users,copilot/add-copilot-seats-for-users,copilot/add_copilot_seats_for_users,post,,copilot,copilot,org_copilot_seats_users,add_copilot_seats_for_users,insert,,Add users to the Copilot subscription for an organization +copilot.yaml,/orgs/{org}/copilot/billing/selected_teams,copilot/cancel-copilot-seat-assignment-for-teams,copilot/cancel_copilot_seat_assignment_for_teams,delete,,copilot,copilot,org_seats,cancel_copilot_seat_assignment_for_teams,exec,,Remove teams from the Copilot for Business subscription for an organization +copilot.yaml,/orgs/{org}/copilot/billing/selected_users,copilot/cancel-copilot-seat-assignment-for-users,copilot/cancel_copilot_seat_assignment_for_users,delete,,copilot,copilot,user_seats,cancel_copilot_seat_assignment_for_users,exec,,Remove users from the Copilot for Business subscription for an organization +copilot.yaml,/orgs/{org}/copilot/content_exclusion,copilot/copilot-content-exclusion-for-organization,copilot/copilot_content_exclusion_for_organization,get,,copilot,copilot,org_content_exclusion,copilot_content_exclusion_for_organization,exec,,Get Copilot content exclusion rules for an organization +copilot.yaml,/enterprises/{enterprise}/copilot/metrics/reports/enterprise-1-day,copilot/copilot-enterprise-one-day-usage-metrics,copilot/copilot_enterprise_one_day_usage_metrics,get,,copilot,copilot,copilot_one_day_usage_metrics,copilot_enterprise_one_day_usage_metrics,select,,Get Copilot enterprise usage metrics for a specific day +copilot.yaml,/enterprises/{enterprise}/copilot/metrics/reports/enterprise-28-day/latest,copilot/copilot-enterprise-usage-metrics,copilot/copilot_enterprise_usage_metrics,get,,copilot,copilot,copilot_usage_metrics,copilot_enterprise_usage_metrics,select,,Get Copilot enterprise usage metrics +copilot.yaml,/orgs/{org}/copilot/metrics/reports/organization-1-day,copilot/copilot-organization-one-day-usage-metrics,copilot/copilot_organization_one_day_usage_metrics,get,,copilot,copilot,org_copilot_one_day_usage_metrics,copilot_organization_one_day_usage_metrics,select,,Get Copilot organization usage metrics for a specific day +copilot.yaml,/orgs/{org}/copilot/metrics/reports/organization-28-day/latest,copilot/copilot-organization-usage-metrics,copilot/copilot_organization_usage_metrics,get,,copilot,copilot,org_copilot_usage_metrics,copilot_organization_usage_metrics,select,,Get Copilot organization usage metrics +copilot.yaml,/orgs/{org}/copilot/metrics/reports/users-1-day,copilot/copilot-organization-users-one-day-usage-metrics,copilot/copilot_organization_users_one_day_usage_metrics,get,,copilot,copilot,org_copilot_user_one_day_usage_metrics,copilot_organization_users_one_day_usage_metrics,select,,Get Copilot organization users usage metrics for a specific day +copilot.yaml,/orgs/{org}/copilot/metrics/reports/users-28-day/latest,copilot/copilot-organization-users-usage-metrics,copilot/copilot_organization_users_usage_metrics,get,,copilot,copilot,org_copilot_user_usage_metrics,copilot_organization_users_usage_metrics,select,,Get Copilot organization users usage metrics +copilot.yaml,/enterprises/{enterprise}/copilot/metrics/reports/users-1-day,copilot/copilot-users-one-day-usage-metrics,copilot/copilot_users_one_day_usage_metrics,get,,copilot,copilot,copilot_user_one_day_usage_metrics,copilot_users_one_day_usage_metrics,select,,Get Copilot users usage metrics for a specific day +copilot.yaml,/enterprises/{enterprise}/copilot/metrics/reports/users-28-day/latest,copilot/copilot-users-usage-metrics,copilot/copilot_users_usage_metrics,get,,copilot,copilot,copilot_user_usage_metrics,copilot_users_usage_metrics,select,,Get Copilot users usage metrics +copilot.yaml,/orgs/{org}/copilot/coding-agent/permissions/repositories/{repository_id},copilot/disable-copilot-coding-agent-for-repository-in-organization,copilot/disable_copilot_coding_agent_for_repository_in_organization,delete,,copilot,copilot,org_coding_agent_repos,disable_copilot_coding_agent_for_repository_in_organization,delete,,Disable a repository for Copilot coding agent in an organization +copilot.yaml,/orgs/{org}/copilot/coding-agent/permissions/repositories/{repository_id},copilot/enable-copilot-coding-agent-for-repository-in-organization,copilot/enable_copilot_coding_agent_for_repository_in_organization,put,,copilot,copilot,org_coding_agent_repos,enable_copilot_coding_agent_for_repository_in_organization,replace,,Enable a repository for Copilot coding agent in an organization +copilot.yaml,/orgs/{org}/copilot/coding-agent/permissions,copilot/get-copilot-coding-agent-permissions-organization,copilot/get_copilot_coding_agent_permissions_organization,get,,copilot,copilot,org_coding_agent_permissions,get_copilot_coding_agent_permissions_organization,select,,Get Copilot coding agent permissions for an organization +copilot.yaml,/orgs/{org}/copilot/billing,copilot/get-copilot-organization-details,copilot/get_copilot_organization_details,get,copilot-organization-details,copilot,copilot,org_details,get_copilot_organization_details,select,,Get Copilot for Business seat information and settings for an organization +copilot.yaml,/orgs/{org}/members/{username}/copilot,copilot/get-copilot-seat-details-for-user,copilot/get_copilot_seat_details_for_user,get,,copilot,copilot,org_member_copilot_seats,get_copilot_seat_details_for_user,select,,Get Copilot seat assignment details for a user +copilot.yaml,/orgs/{org}/copilot/coding-agent/permissions/repositories,copilot/list-copilot-coding-agent-selected-repositories-for-organization,copilot/list_copilot_coding_agent_selected_repositories_for_organization,get,,copilot,copilot,org_coding_agent_repos,list_copilot_coding_agent_selected_repositories_for_organization,select,$.repositories,List repositories enabled for Copilot coding agent in an organization +copilot.yaml,/orgs/{org}/copilot/billing/seats,copilot/list-copilot-seats,copilot/list_copilot_seats,get,,copilot,copilot,org_seats,list_copilot_seats,select,$.seats,List all Copilot for Business seat assignments for an organization +copilot.yaml,/orgs/{org}/copilot/coding-agent/permissions,copilot/set-copilot-coding-agent-permissions-organization,copilot/set_copilot_coding_agent_permissions_organization,put,,copilot,copilot,org_coding_agent_permissions,set_copilot_coding_agent_permissions_organization,replace,,Set Copilot coding agent permissions for an organization +copilot.yaml,/orgs/{org}/copilot/coding-agent/permissions/repositories,copilot/set-copilot-coding-agent-selected-repositories-for-organization,copilot/set_copilot_coding_agent_selected_repositories_for_organization,put,,copilot,copilot,org_coding_agent_repos,set_copilot_coding_agent_selected_repositories_for_organization,replace,,Set selected repositories for Copilot coding agent in an organization +copilot.yaml,/orgs/{org}/copilot/content_exclusion,copilot/set-copilot-content-exclusion-for-organization,copilot/set_copilot_content_exclusion_for_organization,put,,copilot,copilot,org_content_exclusion,set_copilot_content_exclusion_for_organization,replace,,Set Copilot content exclusion rules for an organization +credentials.yaml,/credentials/revoke,credentials/revoke,credentials/revoke,post,,credentials,credentials,credentials,revoke,exec,,Revoke a list of credentials +dependabot.yaml,/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id},dependabot/add-selected-repo-to-org-secret,dependabot/add_selected_repo_to_org_secret,put,,dependabot,dependabot,repos_for_secret,add_selected_repo_to_org_secret,insert,,Add selected repository to an organization secret +dependabot.yaml,/orgs/{org}/dependabot/secrets/{secret_name},dependabot/create-or-update-org-secret,dependabot/create_or_update_org_secret,put,empty-object,dependabot,dependabot,secrets,create_or_update_org_secret,insert,,Create or update an organization secret +dependabot.yaml,/repos/{owner}/{repo}/dependabot/secrets/{secret_name},dependabot/create-or-update-repo-secret,dependabot/create_or_update_repo_secret,put,empty-object,dependabot,dependabot,secrets,create_or_update_repo_secret,insert,,Create or update a repository secret +dependabot.yaml,/orgs/{org}/dependabot/secrets/{secret_name},dependabot/delete-org-secret,dependabot/delete_org_secret,delete,,dependabot,dependabot,secrets,delete_org_secret,delete,,Delete an organization secret +dependabot.yaml,/repos/{owner}/{repo}/dependabot/secrets/{secret_name},dependabot/delete-repo-secret,dependabot/delete_repo_secret,delete,,dependabot,dependabot,secrets,delete_repo_secret,delete,,Delete a repository secret +dependabot.yaml,/repos/{owner}/{repo}/dependabot/alerts/{alert_number},dependabot/get-alert,dependabot/get_alert,get,dependabot-alert,dependabot,dependabot,alerts,get_alert,select,,Get a Dependabot alert +dependabot.yaml,/orgs/{org}/dependabot/secrets/public-key,dependabot/get-org-public-key,dependabot/get_org_public_key,get,dependabot-public-key,dependabot,dependabot,public_keys,get_org_public_key,select,,Get an organization public key +dependabot.yaml,/orgs/{org}/dependabot/secrets/{secret_name},dependabot/get-org-secret,dependabot/get_org_secret,get,organization-dependabot-secret,dependabot,dependabot,secrets,get_org_secret,select,,Get an organization secret +dependabot.yaml,/repos/{owner}/{repo}/dependabot/secrets/public-key,dependabot/get-repo-public-key,dependabot/get_repo_public_key,get,dependabot-public-key,dependabot,dependabot,public_keys,get_repo_public_key,select,,Get a repository public key +dependabot.yaml,/repos/{owner}/{repo}/dependabot/secrets/{secret_name},dependabot/get-repo-secret,dependabot/get_repo_secret,get,dependabot-secret,dependabot,dependabot,secrets,get_repo_secret,select,,Get a repository secret +dependabot.yaml,/enterprises/{enterprise}/dependabot/alerts,dependabot/list-alerts-for-enterprise,dependabot/list_alerts_for_enterprise,get,dependabot-alert-with-repository,dependabot,dependabot,alerts,list_alerts_for_enterprise,select,,List Dependabot alerts for an enterprise +dependabot.yaml,/orgs/{org}/dependabot/alerts,dependabot/list-alerts-for-org,dependabot/list_alerts_for_org,get,dependabot-alert-with-repository,dependabot,dependabot,alerts,list_alerts_for_org,select,,List Dependabot alerts for an organization +dependabot.yaml,/repos/{owner}/{repo}/dependabot/alerts,dependabot/list-alerts-for-repo,dependabot/list_alerts_for_repo,get,dependabot-alert,dependabot,dependabot,alerts,list_alerts_for_repo,select,,List Dependabot alerts for a repository +dependabot.yaml,/orgs/{org}/dependabot/secrets,dependabot/list-org-secrets,dependabot/list_org_secrets,get,,dependabot,dependabot,secrets,list_org_secrets,select,$.secrets,List organization secrets +dependabot.yaml,/repos/{owner}/{repo}/dependabot/secrets,dependabot/list-repo-secrets,dependabot/list_repo_secrets,get,,dependabot,dependabot,secrets,list_repo_secrets,select,$.secrets,List repository secrets +dependabot.yaml,/orgs/{org}/dependabot/secrets/{secret_name}/repositories,dependabot/list-selected-repos-for-org-secret,dependabot/list_selected_repos_for_org_secret,get,,dependabot,dependabot,repos_for_secret,list_selected_repos_for_org_secret,select,$.repositories,List selected repositories for an organization secret +dependabot.yaml,/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id},dependabot/remove-selected-repo-from-org-secret,dependabot/remove_selected_repo_from_org_secret,delete,,dependabot,dependabot,repos_for_secret,remove_selected_repo_from_org_secret,delete,,Remove selected repository from an organization secret +dependabot.yaml,/orgs/{org}/dependabot/repository-access,dependabot/repository-access-for-org,dependabot/repository_access_for_org,get,,dependabot,dependabot,org_dependabot_repository_access,repository_access_for_org,select,,Lists the repositories Dependabot can access in an organization +dependabot.yaml,/orgs/{org}/dependabot/repository-access/default-level,dependabot/set-repository-access-default-level,dependabot/set_repository_access_default_level,put,,dependabot,dependabot,org_dependabot_repository_access,set_repository_access_default_level,replace,,Set the default repository access level for Dependabot +dependabot.yaml,/orgs/{org}/dependabot/secrets/{secret_name}/repositories,dependabot/set-selected-repos-for-org-secret,dependabot/set_selected_repos_for_org_secret,put,,dependabot,dependabot,repos_for_secret,set_selected_repos_for_org_secret,replace,,Set selected repositories for an organization secret +dependabot.yaml,/repos/{owner}/{repo}/dependabot/alerts/{alert_number},dependabot/update-alert,dependabot/update_alert,patch,dependabot-alert,dependabot,dependabot,alerts,update_alert,update,,Update a Dependabot alert +dependabot.yaml,/orgs/{org}/dependabot/repository-access,dependabot/update-repository-access-for-org,dependabot/update_repository_access_for_org,patch,,dependabot,dependabot,org_dependabot_repository_access,update_repository_access_for_org,update,,Updates Dependabot's repository access list for an organization +dependency_graph.yaml,/repos/{owner}/{repo}/dependency-graph/snapshots,dependency-graph/create-repository-snapshot,dependency_graph/create_repository_snapshot,post,,dependency-graph,dependency_graph,dependency_submission,create_repository_snapshot,insert,,Create a snapshot of dependencies for a repository +dependency_graph.yaml,/repos/{owner}/{repo}/dependency-graph/compare/{basehead},dependency-graph/diff-range,dependency_graph/diff_range,get,dependency-graph-diff,dependency-graph,dependency_graph,dependency_review,diff_range,select,,Get a diff of the dependencies between commits +dependency_graph.yaml,/repos/{owner}/{repo}/dependency-graph/sbom,dependency-graph/export-sbom,dependency_graph/export_sbom,get,dependency-graph-spdx-sbom,dependency-graph,dependency_graph,sboms,export_sbom,select,$.sbom,Export a software bill of materials (SBOM) for a repository. +emojis.yaml,/emojis,emojis/get,emojis/get,get,,emojis,emojis,emojis,get_emojis,exec,,Get emojis +enterprise_team_memberships.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/memberships/{username},enterprise-team-memberships/add,enterprise_team_memberships/add,put,,enterprise-team-memberships,enterprise_team_memberships,enterprise_team_memberships,add,replace,,Add team member +enterprise_team_memberships.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/memberships/add,enterprise-team-memberships/bulk-add,enterprise_team_memberships/bulk_add,post,,enterprise-team-memberships,enterprise_team_memberships,enterprise_team_membership_bulk_additions,bulk_add,insert,,Bulk add team members +enterprise_team_memberships.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/memberships/remove,enterprise-team-memberships/bulk-remove,enterprise_team_memberships/bulk_remove,post,,enterprise-team-memberships,enterprise_team_memberships,enterprise_team_membership_bulk_removals,bulk_remove,insert,,Bulk remove team members +enterprise_team_memberships.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/memberships/{username},enterprise-team-memberships/get,enterprise_team_memberships/get,get,,enterprise-team-memberships,enterprise_team_memberships,enterprise_team_memberships,get,select,,Get enterprise team membership +enterprise_team_memberships.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/memberships,enterprise-team-memberships/list,enterprise_team_memberships/list,get,,enterprise-team-memberships,enterprise_team_memberships,enterprise_team_memberships,list,select,,List members in an enterprise team +enterprise_team_memberships.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/memberships/{username},enterprise-team-memberships/remove,enterprise_team_memberships/remove,delete,,enterprise-team-memberships,enterprise_team_memberships,enterprise_team_memberships,remove,delete,,Remove team membership +enterprise_team_organizations.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/organizations/{org},enterprise-team-organizations/add,enterprise_team_organizations/add,put,,enterprise-team-organizations,enterprise_team_organizations,enterprise_team_organizations,add,replace,,Add an organization assignment +enterprise_team_organizations.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/organizations/add,enterprise-team-organizations/bulk-add,enterprise_team_organizations/bulk_add,post,,enterprise-team-organizations,enterprise_team_organizations,enterprise_team_organization_bulk_additions,bulk_add,insert,,Add organization assignments +enterprise_team_organizations.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/organizations/remove,enterprise-team-organizations/bulk-remove,enterprise_team_organizations/bulk_remove,post,,enterprise-team-organizations,enterprise_team_organizations,enterprise_team_organization_bulk_removals,bulk_remove,insert,,Remove organization assignments +enterprise_team_organizations.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/organizations/{org},enterprise-team-organizations/delete,enterprise_team_organizations/delete,delete,,enterprise-team-organizations,enterprise_team_organizations,enterprise_team_organizations,delete,delete,,Delete an organization assignment +enterprise_team_organizations.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/organizations/{org},enterprise-team-organizations/get-assignment,enterprise_team_organizations/get_assignment,get,,enterprise-team-organizations,enterprise_team_organizations,enterprise_team_organizations,get_assignment,select,,Get organization assignment +enterprise_team_organizations.yaml,/enterprises/{enterprise}/teams/{enterprise_team}/organizations,enterprise-team-organizations/get-assignments,enterprise_team_organizations/get_assignments,get,,enterprise-team-organizations,enterprise_team_organizations,enterprise_team_organizations,get_assignments,select,,Get organization assignments +enterprise_teams.yaml,/enterprises/{enterprise}/teams,enterprise-teams/create,enterprise_teams/create,post,,enterprise-teams,enterprise_teams,enterprise_teams,create,insert,,Create an enterprise team +enterprise_teams.yaml,/enterprises/{enterprise}/teams/{team_slug},enterprise-teams/delete,enterprise_teams/delete,delete,,enterprise-teams,enterprise_teams,enterprise_teams,delete,delete,,Delete an enterprise team +enterprise_teams.yaml,/enterprises/{enterprise}/teams/{team_slug},enterprise-teams/get,enterprise_teams/get,get,,enterprise-teams,enterprise_teams,enterprise_teams,get,select,,Get an enterprise team +enterprise_teams.yaml,/enterprises/{enterprise}/teams,enterprise-teams/list,enterprise_teams/list,get,,enterprise-teams,enterprise_teams,enterprise_teams,list,select,,List enterprise teams +enterprise_teams.yaml,/enterprises/{enterprise}/teams/{team_slug},enterprise-teams/update,enterprise_teams/update,patch,,enterprise-teams,enterprise_teams,enterprise_teams,update,update,,Update an enterprise team +gists.yaml,/gists/{gist_id}/star,gists/check-is-starred,gists/check_is_starred,get,,gists,gists,gists,check_is_starred,exec,,Check if a gist is starred +gists.yaml,/gists,gists/create,gists/create,post,gist-simple,gists,gists,gists,create,insert,,Create a gist +gists.yaml,/gists/{gist_id}/comments,gists/create-comment,gists/create_comment,post,gist-comment,gists,gists,comments,create_comment,insert,,Create a gist comment +gists.yaml,/gists/{gist_id},gists/delete,gists/delete,delete,,gists,gists,gists,delete,delete,,Delete a gist +gists.yaml,/gists/{gist_id}/comments/{comment_id},gists/delete-comment,gists/delete_comment,delete,,gists,gists,comments,delete_comment,delete,,Delete a gist comment +gists.yaml,/gists/{gist_id}/forks,gists/fork,gists/fork,post,base-gist,gists,gists,gists,fork,insert,,Fork a gist +gists.yaml,/gists/{gist_id},gists/get,gists/get,get,gist-simple,gists,gists,gists,get,select,,Get a gist +gists.yaml,/gists/{gist_id}/comments/{comment_id},gists/get-comment,gists/get_comment,get,gist-comment,gists,gists,comments,get_comment,select,,Get a gist comment +gists.yaml,/gists/{gist_id}/{sha},gists/get-revision,gists/get_revision,get,gist-simple,gists,gists,revisions,get_revision,select,,Get a gist revision +gists.yaml,/gists,gists/list,gists/list,get,base-gist,gists,gists,gists,list,select,,List gists for the authenticated user +gists.yaml,/gists/{gist_id}/comments,gists/list-comments,gists/list_comments,get,gist-comment,gists,gists,comments,list_comments,select,,List gist comments +gists.yaml,/gists/{gist_id}/commits,gists/list-commits,gists/list_commits,get,gist-commit,gists,gists,commits,list_commits,select,,List gist commits +gists.yaml,/users/{username}/gists,gists/list-for-user,gists/list_for_user,get,base-gist,gists,gists,gists,list_for_user,select,,List gists for a user +gists.yaml,/gists/{gist_id}/forks,gists/list-forks,gists/list_forks,get,gist-simple,gists,gists,forks,list_forks,select,,List gist forks +gists.yaml,/gists/public,gists/list-public,gists/list_public,get,base-gist,gists,gists,public_gists,list_public,select,,List public gists +gists.yaml,/gists/starred,gists/list-starred,gists/list_starred,get,base-gist,gists,gists,starred_gists,list_starred,select,,List starred gists +gists.yaml,/gists/{gist_id}/star,gists/star,gists/star,put,,gists,gists,gists,star,exec,,Star a gist +gists.yaml,/gists/{gist_id}/star,gists/unstar,gists/unstar,delete,,gists,gists,gists,unstar,exec,,Unstar a gist +gists.yaml,/gists/{gist_id},gists/update,gists/update,patch,gist-simple,gists,gists,gists,update,update,,Update a gist +gists.yaml,/gists/{gist_id}/comments/{comment_id},gists/update-comment,gists/update_comment,patch,gist-comment,gists,gists,comments,update_comment,update,,Update a gist comment +git.yaml,/repos/{owner}/{repo}/git/blobs,git/create-blob,git/create_blob,post,short-blob,git,git,blobs,create_blob,insert,,Create a blob +git.yaml,/repos/{owner}/{repo}/git/commits,git/create-commit,git/create_commit,post,git-commit,git,git,commits,create_commit,insert,,Create a commit +git.yaml,/repos/{owner}/{repo}/git/refs,git/create-ref,git/create_ref,post,git-ref,git,git,refs,create_ref,insert,,Create a reference +git.yaml,/repos/{owner}/{repo}/git/tags,git/create-tag,git/create_tag,post,git-tag,git,git,tags,create_tag,insert,,Create a tag object +git.yaml,/repos/{owner}/{repo}/git/trees,git/create-tree,git/create_tree,post,git-tree,git,git,trees,create_tree,insert,,Create a tree +git.yaml,/repos/{owner}/{repo}/git/refs/{ref},git/delete-ref,git/delete_ref,delete,,git,git,refs,delete_ref,delete,,Delete a reference +git.yaml,/repos/{owner}/{repo}/git/blobs/{file_sha},git/get-blob,git/get_blob,get,blob,git,git,blobs,get_blob,select,,Get a blob +git.yaml,/repos/{owner}/{repo}/git/commits/{commit_sha},git/get-commit,git/get_commit,get,git-commit,git,git,commits,get_commit,select,,Get a commit object +git.yaml,/repos/{owner}/{repo}/git/ref/{ref},git/get-ref,git/get_ref,get,git-ref,git,git,ref,get_ref,select,,Get a reference +git.yaml,/repos/{owner}/{repo}/git/tags/{tag_sha},git/get-tag,git/get_tag,get,git-tag,git,git,tags,get_tag,select,,Get a tag +git.yaml,/repos/{owner}/{repo}/git/trees/{tree_sha},git/get-tree,git/get_tree,get,git-tree,git,git,trees,get_tree,select,,Get a tree +git.yaml,/repos/{owner}/{repo}/git/matching-refs/{ref},git/list-matching-refs,git/list_matching_refs,get,git-ref,git,git,refs,list_matching_refs,select,,List matching references +git.yaml,/repos/{owner}/{repo}/git/refs/{ref},git/update-ref,git/update_ref,patch,git-ref,git,git,refs,update_ref,update,,Update a reference +gitignore.yaml,/gitignore/templates,gitignore/get-all-templates,gitignore/get_all_templates,get,,gitignore,gitignore,gitignore,get_all_templates,select,,Get all gitignore templates +gitignore.yaml,/gitignore/templates/{name},gitignore/get-template,gitignore/get_template,get,gitignore-template,gitignore,gitignore,gitignore,get_template,select,,Get a gitignore template +hosted_compute.yaml,/orgs/{org}/settings/network-configurations,hosted-compute/create-network-configuration-for-org,hosted_compute/create_network_configuration_for_org,post,,hosted-compute,hosted_compute,org_network_configurations,create_network_configuration_for_org,insert,,Create a hosted compute network configuration for an organization +hosted_compute.yaml,/orgs/{org}/settings/network-configurations/{network_configuration_id},hosted-compute/delete-network-configuration-from-org,hosted_compute/delete_network_configuration_from_org,delete,,hosted-compute,hosted_compute,org_network_configurations,delete_network_configuration_from_org,delete,,Delete a hosted compute network configuration from an organization +hosted_compute.yaml,/orgs/{org}/settings/network-configurations/{network_configuration_id},hosted-compute/get-network-configuration-for-org,hosted_compute/get_network_configuration_for_org,get,,hosted-compute,hosted_compute,org_network_configurations,get_network_configuration_for_org,select,,Get a hosted compute network configuration for an organization +hosted_compute.yaml,/orgs/{org}/settings/network-settings/{network_settings_id},hosted-compute/get-network-settings-for-org,hosted_compute/get_network_settings_for_org,get,,hosted-compute,hosted_compute,org_network_settings,get_network_settings_for_org,select,,Get a hosted compute network settings resource for an organization +hosted_compute.yaml,/orgs/{org}/settings/network-configurations,hosted-compute/list-network-configurations-for-org,hosted_compute/list_network_configurations_for_org,get,,hosted-compute,hosted_compute,org_network_configurations,list_network_configurations_for_org,select,$.network_configurations,List hosted compute network configurations for an organization +hosted_compute.yaml,/orgs/{org}/settings/network-configurations/{network_configuration_id},hosted-compute/update-network-configuration-for-org,hosted_compute/update_network_configuration_for_org,patch,,hosted-compute,hosted_compute,org_network_configurations,update_network_configuration_for_org,update,,Update a hosted compute network configuration for an organization +interactions.yaml,/user/interaction-limits,interactions/get-restrictions-for-authenticated-user,interactions/get_restrictions_for_authenticated_user,get,interaction-limit-response,interactions,interactions,user,get_restrictions_for_authenticated_user,select,,Get interaction restrictions for your public repositories +interactions.yaml,/orgs/{org}/interaction-limits,interactions/get-restrictions-for-org,interactions/get_restrictions_for_org,get,interaction-limit-response,interactions,interactions,orgs,get_restrictions_for_org,select,,Get interaction restrictions for an organization +interactions.yaml,/repos/{owner}/{repo}/interaction-limits,interactions/get-restrictions-for-repo,interactions/get_restrictions_for_repo,get,interaction-limit-response,interactions,interactions,repos,get_restrictions_for_repo,select,,Get interaction restrictions for a repository +interactions.yaml,/user/interaction-limits,interactions/remove-restrictions-for-authenticated-user,interactions/remove_restrictions_for_authenticated_user,delete,,interactions,interactions,user,remove_restrictions_for_authenticated_user,delete,,Remove interaction restrictions from your public repositories +interactions.yaml,/orgs/{org}/interaction-limits,interactions/remove-restrictions-for-org,interactions/remove_restrictions_for_org,delete,,interactions,interactions,orgs,remove_restrictions_for_org,delete,,Remove interaction restrictions for an organization +interactions.yaml,/repos/{owner}/{repo}/interaction-limits,interactions/remove-restrictions-for-repo,interactions/remove_restrictions_for_repo,delete,,interactions,interactions,repos,remove_restrictions_for_repo,delete,,Remove interaction restrictions for a repository +interactions.yaml,/user/interaction-limits,interactions/set-restrictions-for-authenticated-user,interactions/set_restrictions_for_authenticated_user,put,interaction-limit-response,interactions,interactions,user,set_restrictions_for_authenticated_user,replace,,Set interaction restrictions for your public repositories +interactions.yaml,/orgs/{org}/interaction-limits,interactions/set-restrictions-for-org,interactions/set_restrictions_for_org,put,interaction-limit-response,interactions,interactions,orgs,set_restrictions_for_org,replace,,Set interaction restrictions for an organization +interactions.yaml,/repos/{owner}/{repo}/interaction-limits,interactions/set-restrictions-for-repo,interactions/set_restrictions_for_repo,put,interaction-limit-response,interactions,interactions,repos,set_restrictions_for_repo,replace,,Set interaction restrictions for a repository +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/assignees,issues/add-assignees,issues/add_assignees,post,issue,issues,issues,assignees,add_assignees,insert,,Add assignees to an issue +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by,issues/add-blocked-by-dependency,issues/add_blocked_by_dependency,post,,issues,issues,issue_blocked_by_dependencies,add_blocked_by_dependency,insert,,Add a dependency an issue is blocked by +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/issue-field-values,issues/add-issue-field-values,issues/add_issue_field_values,post,,issues,issues,issue_field_values,add_issue_field_values,insert,,Add issue field values to an issue +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/labels,issues/add-labels,issues/add_labels,post,label,issues,issues,labels,add_labels,insert,,Add labels to an issue +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/sub_issues,issues/add-sub-issue,issues/add_sub_issue,post,,issues,issues,issue_sub_issues,add_sub_issue,insert,,Add sub-issue +issues.yaml,/repos/{owner}/{repo}/assignees/{assignee},issues/check-user-can-be-assigned,issues/check_user_can_be_assigned,get,,issues,issues,assignees,check_user_can_be_assigned,exec,,Check if a user can be assigned +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee},issues/check-user-can-be-assigned-to-issue,issues/check_user_can_be_assigned_to_issue,get,,issues,issues,assignees,check_user_can_be_assigned_to_issue,exec,,Check if a user can be assigned to a issue +issues.yaml,/repos/{owner}/{repo}/issues,issues/create,issues/create,post,issue,issues,issues,issues,create,insert,,Create an issue +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/comments,issues/create-comment,issues/create_comment,post,issue-comment,issues,issues,comments,create_comment,insert,,Create an issue comment +issues.yaml,/repos/{owner}/{repo}/labels,issues/create-label,issues/create_label,post,label,issues,issues,labels,create_label,insert,,Create a label +issues.yaml,/repos/{owner}/{repo}/milestones,issues/create-milestone,issues/create_milestone,post,milestone,issues,issues,milestones,create_milestone,insert,,Create a milestone +issues.yaml,/repos/{owner}/{repo}/issues/comments/{comment_id},issues/delete-comment,issues/delete_comment,delete,,issues,issues,comments,delete_comment,delete,,Delete an issue comment +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/issue-field-values/{issue_field_id},issues/delete-issue-field-value,issues/delete_issue_field_value,delete,,issues,issues,issue_field_values,delete_issue_field_value,delete,,Delete an issue field value from an issue +issues.yaml,/repos/{owner}/{repo}/labels/{name},issues/delete-label,issues/delete_label,delete,,issues,issues,labels,delete_label,delete,,Delete a label +issues.yaml,/repos/{owner}/{repo}/milestones/{milestone_number},issues/delete-milestone,issues/delete_milestone,delete,,issues,issues,milestones,delete_milestone,delete,,Delete a milestone +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number},issues/get,issues/get,get,issue,issues,issues,issues,get,select,,Get an issue +issues.yaml,/repos/{owner}/{repo}/issues/comments/{comment_id},issues/get-comment,issues/get_comment,get,issue-comment,issues,issues,comments,get_comment,select,,Get an issue comment +issues.yaml,/repos/{owner}/{repo}/issues/events/{event_id},issues/get-event,issues/get_event,get,issue-event,issues,issues,events,get_event,select,,Get an issue event +issues.yaml,/repos/{owner}/{repo}/labels/{name},issues/get-label,issues/get_label,get,label,issues,issues,labels,get_label,select,,Get a label +issues.yaml,/repos/{owner}/{repo}/milestones/{milestone_number},issues/get-milestone,issues/get_milestone,get,milestone,issues,issues,milestones,get_milestone,select,,Get a milestone +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/parent,issues/get-parent,issues/get_parent,get,,issues,issues,issue_parent,get_parent,select,,Get parent issue +issues.yaml,/issues,issues/list,issues/list,get,issue,issues,issues,issues,list,select,,List issues assigned to the authenticated user +issues.yaml,/repos/{owner}/{repo}/assignees,issues/list-assignees,issues/list_assignees,get,simple-user,issues,issues,assignees,list_assignees,select,,List assignees +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/comments,issues/list-comments,issues/list_comments,get,issue-comment,issues,issues,comments,list_comments,select,,List issue comments +issues.yaml,/repos/{owner}/{repo}/issues/comments,issues/list-comments-for-repo,issues/list_comments_for_repo,get,issue-comment,issues,issues,comments,list_comments_for_repo,select,,List issue comments for a repository +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by,issues/list-dependencies-blocked-by,issues/list_dependencies_blocked_by,get,,issues,issues,issue_blocked_by_dependencies,list_dependencies_blocked_by,select,,List dependencies an issue is blocked by +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking,issues/list-dependencies-blocking,issues/list_dependencies_blocking,get,,issues,issues,issue_blocking_dependencies,list_dependencies_blocking,select,,List dependencies an issue is blocking +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/events,issues/list-events,issues/list_events,get,issue-event-for-issue,issues,issues,events,list_events,select,,List issue events +issues.yaml,/repos/{owner}/{repo}/issues/events,issues/list-events-for-repo,issues/list_events_for_repo,get,issue-event,issues,issues,events,list_events_for_repo,select,,List issue events for a repository +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/timeline,issues/list-events-for-timeline,issues/list_events_for_timeline,get,timeline-issue-events,issues,issues,timeline,list_events_for_timeline,select,,List timeline events for an issue +issues.yaml,/user/issues,issues/list-for-authenticated-user,issues/list_for_authenticated_user,get,issue,issues,issues,user_issues,list_for_authenticated_user,select,,List user account issues assigned to the authenticated user +issues.yaml,/orgs/{org}/issues,issues/list-for-org,issues/list_for_org,get,issue,issues,issues,issues,list_for_org,select,,List organization issues assigned to the authenticated user +issues.yaml,/repos/{owner}/{repo}/issues,issues/list-for-repo,issues/list_for_repo,get,issue,issues,issues,issues,list_for_repo,select,,List repository issues +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/issue-field-values,issues/list-issue-field-values-for-issue,issues/list_issue_field_values_for_issue,get,,issues,issues,issue_field_values,list_issue_field_values_for_issue,select,,List issue field values for an issue +issues.yaml,/repos/{owner}/{repo}/milestones/{milestone_number}/labels,issues/list-labels-for-milestone,issues/list_labels_for_milestone,get,label,issues,issues,labels,list_labels_for_milestone,select,,List labels for issues in a milestone +issues.yaml,/repos/{owner}/{repo}/labels,issues/list-labels-for-repo,issues/list_labels_for_repo,get,label,issues,issues,labels,list_labels_for_repo,select,,List labels for a repository +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/labels,issues/list-labels-on-issue,issues/list_labels_on_issue,get,label,issues,issues,labels,list_labels_on_issue,select,,List labels for an issue +issues.yaml,/repos/{owner}/{repo}/milestones,issues/list-milestones,issues/list_milestones,get,milestone,issues,issues,milestones,list_milestones,select,,List milestones +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/sub_issues,issues/list-sub-issues,issues/list_sub_issues,get,,issues,issues,issue_sub_issues,list_sub_issues,select,,List sub-issues +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/lock,issues/lock,issues/lock,put,,issues,issues,issues,lock,exec,,Lock an issue +issues.yaml,/repos/{owner}/{repo}/issues/comments/{comment_id}/pin,issues/pin-comment,issues/pin_comment,put,,issues,issues,issue_comment_pins,pin_comment,replace,,Pin an issue comment +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/labels,issues/remove-all-labels,issues/remove_all_labels,delete,,issues,issues,labels,remove_all_labels,delete,,Remove all labels from an issue +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/assignees,issues/remove-assignees,issues/remove_assignees,delete,issue,issues,issues,assignees,remove_assignees,delete,,Remove assignees from an issue +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id},issues/remove-dependency-blocked-by,issues/remove_dependency_blocked_by,delete,,issues,issues,issue_blocked_by_dependencies,remove_dependency_blocked_by,delete,,Remove dependency an issue is blocked by +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/labels/{name},issues/remove-label,issues/remove_label,delete,label,issues,issues,labels,remove_label,delete,,Remove a label from an issue +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/sub_issue,issues/remove-sub-issue,issues/remove_sub_issue,delete,,issues,issues,issue_sub_issues,remove_sub_issue,delete,,Remove sub-issue +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority,issues/reprioritize-sub-issue,issues/reprioritize_sub_issue,patch,,issues,issues,issue_sub_issues,reprioritize_sub_issue,update,,Reprioritize sub-issue +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/issue-field-values,issues/set-issue-field-values,issues/set_issue_field_values,put,,issues,issues,issue_field_values,set_issue_field_values,replace,,Set issue field values for an issue +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/labels,issues/set-labels,issues/set_labels,put,label,issues,issues,labels,set_labels,replace,,Set labels for an issue +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/lock,issues/unlock,issues/unlock,delete,,issues,issues,issues,unlock,exec,,Unlock an issue +issues.yaml,/repos/{owner}/{repo}/issues/comments/{comment_id}/pin,issues/unpin-comment,issues/unpin_comment,delete,,issues,issues,issue_comment_pins,unpin_comment,delete,,Unpin an issue comment +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number},issues/update,issues/update,patch,issue,issues,issues,issues,update,update,,Update an issue +issues.yaml,/repos/{owner}/{repo}/issues/comments/{comment_id},issues/update-comment,issues/update_comment,patch,issue-comment,issues,issues,comments,update_comment,update,,Update an issue comment +issues.yaml,/repos/{owner}/{repo}/labels/{name},issues/update-label,issues/update_label,patch,label,issues,issues,labels,update_label,update,,Update a label +issues.yaml,/repos/{owner}/{repo}/milestones/{milestone_number},issues/update-milestone,issues/update_milestone,patch,milestone,issues,issues,milestones,update_milestone,update,,Update a milestone +licenses.yaml,/licenses/{license},licenses/get,licenses/get,get,license,licenses,licenses,licenses,get,select,,Get a license +licenses.yaml,/licenses,licenses/get-all-commonly-used,licenses/get_all_commonly_used,get,license-simple,licenses,licenses,licenses,get_all_commonly_used,select,,Get all commonly used licenses +licenses.yaml,/repos/{owner}/{repo}/license,licenses/get-for-repo,licenses/get_for_repo,get,license-content,licenses,licenses,licenses,get_for_repo,select,,Get the license for a repository +markdown.yaml,/markdown,markdown/render,markdown/render,post,,markdown,markdown,rendered_markdown,render,insert,,Render a Markdown document +markdown.yaml,/markdown/raw,markdown/render-raw,markdown/render_raw,post,,markdown,markdown,rendered_markdown_raw,render_raw,insert,,Render a Markdown document in raw mode +meta.yaml,/meta,meta/get,meta/get,get,,meta,meta,meta,get,select,,Get GitHub meta information +meta.yaml,/versions,meta/get-all-versions,meta/get_all_versions,get,,meta,meta,versions,get_all_versions,select,,Get all API versions +meta.yaml,/octocat,meta/get-octocat,meta/get_octocat,get,,meta,meta,octocat,get_octocat,exec,,Get Octocat +meta.yaml,/zen,meta/get-zen,meta/get_zen,get,,meta,meta,zen,get_zen,exec,,Get the Zen of GitHub +meta.yaml,/,meta/root,meta/root,get,,meta,meta,root,root,select,,GitHub API Root +migrations.yaml,/repos/{owner}/{repo}/import,migrations/cancel-import,migrations/cancel_import,delete,,migrations,migrations,source_imports,cancel_import,exec,,Cancel an import +migrations.yaml,/user/migrations/{migration_id}/archive,migrations/delete-archive-for-authenticated-user,migrations/delete_archive_for_authenticated_user,delete,,migrations,migrations,users,delete_archive_for_authenticated_user,delete,,Delete a user migration archive +migrations.yaml,/orgs/{org}/migrations/{migration_id}/archive,migrations/delete-archive-for-org,migrations/delete_archive_for_org,delete,,migrations,migrations,orgs,delete_archive_for_org,delete,,Delete an organization migration archive +migrations.yaml,/repos/{owner}/{repo}/import/authors,migrations/get-commit-authors,migrations/get_commit_authors,get,porter-author,migrations,migrations,commit_authors,get_commit_authors,select,,Get commit authors +migrations.yaml,/repos/{owner}/{repo}/import,migrations/get-import-status,migrations/get_import_status,get,import,migrations,migrations,source_imports,get_import_status,select,,Get an import status +migrations.yaml,/repos/{owner}/{repo}/import/large_files,migrations/get-large-files,migrations/get_large_files,get,porter-large-file,migrations,migrations,lfs,get_large_files,select,,Get large files +migrations.yaml,/user/migrations/{migration_id},migrations/get-status-for-authenticated-user,migrations/get_status_for_authenticated_user,get,migration,migrations,migrations,migrations,get_status_for_authenticated_user,select,,Get a user migration status +migrations.yaml,/orgs/{org}/migrations/{migration_id},migrations/get-status-for-org,migrations/get_status_for_org,get,migration,migrations,migrations,migrations,get_status_for_org,select,,Get an organization migration status +migrations.yaml,/user/migrations,migrations/list-for-authenticated-user,migrations/list_for_authenticated_user,get,migration,migrations,migrations,migrations,list_for_authenticated_user,select,,List user migrations +migrations.yaml,/orgs/{org}/migrations,migrations/list-for-org,migrations/list_for_org,get,migration,migrations,migrations,migrations,list_for_org,select,,List organization migrations +migrations.yaml,/user/migrations/{migration_id}/repositories,migrations/list-repos-for-authenticated-user,migrations/list_repos_for_authenticated_user,get,minimal-repository,migrations,migrations,repos,list_repos_for_authenticated_user,select,,List repositories for a user migration +migrations.yaml,/orgs/{org}/migrations/{migration_id}/repositories,migrations/list-repos-for-org,migrations/list_repos_for_org,get,minimal-repository,migrations,migrations,repos,list_repos_for_org,select,,List repositories in an organization migration +migrations.yaml,/repos/{owner}/{repo}/import/authors/{author_id},migrations/map-commit-author,migrations/map_commit_author,patch,porter-author,migrations,migrations,commit_authors,map_commit_author,update,,Map a commit author +migrations.yaml,/orgs/{org}/migrations/{migration_id}/archive,migrations/download-archive-for-org,migrations/download_archive_for_org,get,,migrations,migrations,skip_this_resource,migrations/download_archive_for_org,exec,,Download an organization migration archive +migrations.yaml,/user/migrations/{migration_id}/archive,migrations/get-archive-for-authenticated-user,migrations/get_archive_for_authenticated_user,get,,migrations,migrations,skip_this_resource,migrations/get_archive_for_authenticated_user,exec,,Download a user migration archive +migrations.yaml,/repos/{owner}/{repo}/import/lfs,migrations/set-lfs-preference,migrations/set_lfs_preference,patch,import,migrations,migrations,lfs,set_lfs_preference,update,,Update Git LFS preference +migrations.yaml,/user/migrations,migrations/start-for-authenticated-user,migrations/start_for_authenticated_user,post,migration,migrations,migrations,migrations,start_for_authenticated_user,exec,,Start a user migration +migrations.yaml,/orgs/{org}/migrations,migrations/start-for-org,migrations/start_for_org,post,migration,migrations,migrations,migrations,start_for_org,exec,,Start an organization migration +migrations.yaml,/repos/{owner}/{repo}/import,migrations/start-import,migrations/start_import,put,import,migrations,migrations,source_imports,start_import,exec,,Start an import +migrations.yaml,/user/migrations/{migration_id}/repos/{repo_name}/lock,migrations/unlock-repo-for-authenticated-user,migrations/unlock_repo_for_authenticated_user,delete,,migrations,migrations,repos,unlock_repo_for_authenticated_user,delete,,Unlock a user repository +migrations.yaml,/orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock,migrations/unlock-repo-for-org,migrations/unlock_repo_for_org,delete,,migrations,migrations,repos,unlock_repo_for_org,delete,,Unlock an organization repository +migrations.yaml,/repos/{owner}/{repo}/import,migrations/update-import,migrations/update_import,patch,import,migrations,migrations,source_imports,update_import,update,,Update an import +oidc.yaml,/enterprises/{enterprise}/actions/oidc/customization/properties/repo,oidc/create-oidc-custom-property-inclusion-for-enterprise,oidc/create_oidc_custom_property_inclusion_for_enterprise,post,,oidc,oidc,oidc_custom_property_inclusions,create_oidc_custom_property_inclusion_for_enterprise,insert,,Create an OIDC custom property inclusion for an enterprise +oidc.yaml,/orgs/{org}/actions/oidc/customization/properties/repo,oidc/create-oidc-custom-property-inclusion-for-org,oidc/create_oidc_custom_property_inclusion_for_org,post,,oidc,oidc,org_oidc_custom_property_inclusions,create_oidc_custom_property_inclusion_for_org,insert,,Create an OIDC custom property inclusion for an organization +oidc.yaml,/enterprises/{enterprise}/actions/oidc/customization/properties/repo/{custom_property_name},oidc/delete-oidc-custom-property-inclusion-for-enterprise,oidc/delete_oidc_custom_property_inclusion_for_enterprise,delete,,oidc,oidc,oidc_custom_property_inclusions,delete_oidc_custom_property_inclusion_for_enterprise,delete,,Delete an OIDC custom property inclusion for an enterprise +oidc.yaml,/orgs/{org}/actions/oidc/customization/properties/repo/{custom_property_name},oidc/delete-oidc-custom-property-inclusion-for-org,oidc/delete_oidc_custom_property_inclusion_for_org,delete,,oidc,oidc,org_oidc_custom_property_inclusions,delete_oidc_custom_property_inclusion_for_org,delete,,Delete an OIDC custom property inclusion for an organization +oidc.yaml,/orgs/{org}/actions/oidc/customization/sub,oidc/get-oidc-custom-sub-template-for-org,oidc/get_oidc_custom_sub_template_for_org,get,oidc-custom-sub,oidc,oidc,oidc,get_oidc_custom_sub_template_for_org,select,$.include_claim_keys,Get the customization template for an OIDC subject claim for an organization +oidc.yaml,/enterprises/{enterprise}/actions/oidc/customization/properties/repo,oidc/list-oidc-custom-property-inclusions-for-enterprise,oidc/list_oidc_custom_property_inclusions_for_enterprise,get,,oidc,oidc,oidc_custom_property_inclusions,list_oidc_custom_property_inclusions_for_enterprise,select,,List OIDC custom property inclusions for an enterprise +oidc.yaml,/orgs/{org}/actions/oidc/customization/properties/repo,oidc/list-oidc-custom-property-inclusions-for-org,oidc/list_oidc_custom_property_inclusions_for_org,get,,oidc,oidc,org_oidc_custom_property_inclusions,list_oidc_custom_property_inclusions_for_org,select,,List OIDC custom property inclusions for an organization +oidc.yaml,/orgs/{org}/actions/oidc/customization/sub,oidc/update-oidc-custom-sub-template-for-org,oidc/update_oidc_custom_sub_template_for_org,put,empty-object,oidc,oidc,oidc,update_oidc_custom_sub_template_for_org,replace,,Set the customization template for an OIDC subject claim for an organization +orgs.yaml,/orgs/{org}/security-managers/teams/{team_slug},orgs/add-security-manager-team,orgs/add_security_manager_team,put,,orgs,orgs,security_managers,add_security_manager_team,insert,,Add a security manager team +orgs.yaml,/orgs/{org}/organization-roles/teams/{team_slug}/{role_id},orgs/assign-team-to-org-role,orgs/assign_team_to_org_role,put,,orgs,orgs,role_team_assignments,assign_team_to_org_role,replace,,Assign an organization role to a team +orgs.yaml,/orgs/{org}/organization-roles/users/{username}/{role_id},orgs/assign-user-to-org-role,orgs/assign_user_to_org_role,put,,orgs,orgs,role_user_assignments,assign_user_to_org_role,replace,,Assign an organization role to a user +orgs.yaml,/orgs/{org}/blocks/{username},orgs/block-user,orgs/block_user,put,,orgs,orgs,blocking,block_user,exec,,Block a user from an organization +orgs.yaml,/orgs/{org}/invitations/{invitation_id},orgs/cancel-invitation,orgs/cancel_invitation,delete,,orgs,orgs,invitations,cancel_invitation,delete,,Cancel an organization invitation +orgs.yaml,/orgs/{org}/blocks/{username},orgs/check-blocked-user,orgs/check_blocked_user,get,,orgs,orgs,blocking,check_blocked_user,exec,,Check if a user is blocked by an organization +orgs.yaml,/orgs/{org}/members/{username},orgs/check-membership-for-user,orgs/check_membership_for_user,get,,orgs,orgs,memberships,check_membership_for_user,exec,,Check organization membership for a user +orgs.yaml,/orgs/{org}/public_members/{username},orgs/check-public-membership-for-user,orgs/check_public_membership_for_user,get,,orgs,orgs,public_members,check_public_membership_for_user,exec,,Check public organization membership for a user +orgs.yaml,/orgs/{org}/outside_collaborators/{username},orgs/convert-member-to-outside-collaborator,orgs/convert_member_to_outside_collaborator,put,,orgs,orgs,outside_collaborators,convert_member_to_outside_collaborator,exec,,Convert an organization member to outside collaborator +orgs.yaml,/orgs/{org}/artifacts/metadata/deployment-record,orgs/create-artifact-deployment-record,orgs/create_artifact_deployment_record,post,,orgs,orgs,artifact_deployment_records,create_artifact_deployment_record,insert,,Create an artifact deployment record +orgs.yaml,/orgs/{org}/artifacts/metadata/storage-record,orgs/create-artifact-storage-record,orgs/create_artifact_storage_record,post,,orgs,orgs,artifact_storage_records,create_artifact_storage_record,insert,,Create artifact metadata storage record +orgs.yaml,/orgs/{org}/invitations,orgs/create-invitation,orgs/create_invitation,post,organization-invitation,orgs,orgs,invitations,create_invitation,insert,,Create an organization invitation +orgs.yaml,/orgs/{org}/issue-fields,orgs/create-issue-field,orgs/create_issue_field,post,,orgs,orgs,issue_fields,create_issue_field,insert,,Create issue field for an organization +orgs.yaml,/orgs/{org}/issue-types,orgs/create-issue-type,orgs/create_issue_type,post,,orgs,orgs,issue_types,create_issue_type,insert,,Create issue type for an organization +orgs.yaml,/orgs/{org}/hooks,orgs/create-webhook,orgs/create_webhook,post,org-hook,orgs,orgs,webhooks,create_webhook,insert,,Create an organization webhook +orgs.yaml,/orgs/{org}/properties/schema/{custom_property_name},orgs/custom-properties-for-repos-create-or-update-organization-definition,orgs/custom_properties_for_repos_create_or_update_organization_definition,put,,orgs,orgs,custom_properties,custom_properties_for_repos_create_or_update_organization_definition,replace,,Create or update a custom property for an organization +orgs.yaml,/orgs/{org}/properties/schema,orgs/custom-properties-for-repos-create-or-update-organization-definitions,orgs/custom_properties_for_repos_create_or_update_organization_definitions,patch,,orgs,orgs,custom_properties,custom_properties_for_repos_create_or_update_organization_definitions,update,,Create or update custom properties for an organization +orgs.yaml,/orgs/{org}/properties/values,orgs/custom-properties-for-repos-create-or-update-organization-values,orgs/custom_properties_for_repos_create_or_update_organization_values,patch,,orgs,orgs,custom_property_values,custom_properties_for_repos_create_or_update_organization_values,update,,Create or update custom property values for organization repositories +orgs.yaml,/orgs/{org}/properties/schema/{custom_property_name},orgs/custom-properties-for-repos-delete-organization-definition,orgs/custom_properties_for_repos_delete_organization_definition,delete,,orgs,orgs,custom_properties,custom_properties_for_repos_delete_organization_definition,delete,,Remove a custom property for an organization +orgs.yaml,/orgs/{org}/properties/schema/{custom_property_name},orgs/custom-properties-for-repos-get-organization-definition,orgs/custom_properties_for_repos_get_organization_definition,get,,orgs,orgs,custom_properties,custom_properties_for_repos_get_organization_definition,select,,Get a custom property for an organization +orgs.yaml,/orgs/{org}/properties/schema,orgs/custom-properties-for-repos-get-organization-definitions,orgs/custom_properties_for_repos_get_organization_definitions,get,,orgs,orgs,custom_properties,custom_properties_for_repos_get_organization_definitions,select,,Get all custom properties for an organization +orgs.yaml,/orgs/{org}/properties/values,orgs/custom-properties-for-repos-get-organization-values,orgs/custom_properties_for_repos_get_organization_values,get,,orgs,orgs,custom_property_values,custom_properties_for_repos_get_organization_values,select,,List custom property values for organization repositories +orgs.yaml,/orgs/{org},orgs/delete,orgs/delete,delete,,orgs,orgs,orgs,delete,delete,,Delete an organization +orgs.yaml,/orgs/{org}/attestations/delete-request,orgs/delete-attestations-bulk,orgs/delete_attestations_bulk,post,,orgs,orgs,attestations,delete_attestations_bulk,exec,,Delete attestations in bulk +orgs.yaml,/orgs/{org}/attestations/{attestation_id},orgs/delete-attestations-by-id,orgs/delete_attestations_by_id,delete,,orgs,orgs,attestations,delete_attestations_by_id,delete,,Delete attestations by ID +orgs.yaml,/orgs/{org}/attestations/digest/{subject_digest},orgs/delete-attestations-by-subject-digest,orgs/delete_attestations_by_subject_digest,delete,,orgs,orgs,attestations,delete_attestations_by_subject_digest,delete,,Delete attestations by subject digest +orgs.yaml,/orgs/{org}/issue-fields/{issue_field_id},orgs/delete-issue-field,orgs/delete_issue_field,delete,,orgs,orgs,issue_fields,delete_issue_field,delete,,Delete issue field for an organization +orgs.yaml,/orgs/{org}/issue-types/{issue_type_id},orgs/delete-issue-type,orgs/delete_issue_type,delete,,orgs,orgs,issue_types,delete_issue_type,delete,,Delete issue type for an organization +orgs.yaml,/orgs/{org}/hooks/{hook_id},orgs/delete-webhook,orgs/delete_webhook,delete,,orgs,orgs,webhooks,delete_webhook,delete,,Delete an organization webhook +orgs.yaml,/orgs/{org}/settings/immutable-releases/repositories/{repository_id},orgs/disable-selected-repository-immutable-releases-organization,orgs/disable_selected_repository_immutable_releases_organization,delete,,orgs,orgs,immutable_releases_repos,disable_selected_repository_immutable_releases_organization,delete,,Disable a selected repository for immutable releases in an organization +orgs.yaml,/orgs/{org}/{security_product}/{enablement},orgs/enable-or-disable-security-product-on-all-org-repos,orgs/enable_or_disable_security_product_on_all_org_repos,post,,orgs,orgs,orgs,enable_or_disable_security_product_on_all_org_repos,exec,,Enable or disable a security feature for an organization +orgs.yaml,/orgs/{org}/settings/immutable-releases/repositories/{repository_id},orgs/enable-selected-repository-immutable-releases-organization,orgs/enable_selected_repository_immutable_releases_organization,put,,orgs,orgs,immutable_releases_repos,enable_selected_repository_immutable_releases_organization,replace,,Enable a selected repository for immutable releases in an organization +orgs.yaml,/orgs/{org},orgs/get,orgs/get,get,organization-full,orgs,orgs,orgs,get,select,,Get an organization +orgs.yaml,/orgs/{org}/settings/immutable-releases,orgs/get-immutable-releases-settings,orgs/get_immutable_releases_settings,get,,orgs,orgs,immutable_releases_settings,get_immutable_releases_settings,select,,Get immutable releases settings for an organization +orgs.yaml,/orgs/{org}/settings/immutable-releases/repositories,orgs/get-immutable-releases-settings-repositories,orgs/get_immutable_releases_settings_repositories,get,,orgs,orgs,immutable_releases_repos,get_immutable_releases_settings_repositories,select,,List selected repositories for immutable releases enforcement +orgs.yaml,/user/memberships/orgs/{org},orgs/get-membership-for-authenticated-user,orgs/get_membership_for_authenticated_user,get,org-membership,orgs,orgs,memberships,get_membership_for_authenticated_user,select,,Get an organization membership for the authenticated user +orgs.yaml,/orgs/{org}/memberships/{username},orgs/get-membership-for-user,orgs/get_membership_for_user,get,org-membership,orgs,orgs,memberships,get_membership_for_user,select,,Get organization membership for a user +orgs.yaml,/orgs/{org}/organization-roles/{role_id},orgs/get-org-role,orgs/get_org_role,get,,orgs,orgs,roles,get_org_role,select,,Get an organization role +orgs.yaml,/orgs/{org}/rulesets/{ruleset_id}/history,orgs/get-org-ruleset-history,orgs/get_org_ruleset_history,get,,orgs,orgs,ruleset_history,get_org_ruleset_history,select,,Get organization ruleset history +orgs.yaml,/orgs/{org}/rulesets/{ruleset_id}/history/{version_id},orgs/get-org-ruleset-version,orgs/get_org_ruleset_version,get,,orgs,orgs,ruleset_history,get_org_ruleset_version,select,,Get organization ruleset version +orgs.yaml,/orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id},api-insights/get-route-stats-by-actor,api_insights/get_route_stats_by_actor,get,,orgs,orgs,api_insights_route_stats,get_route_stats_by_actor,select,,Get route stats by actor +orgs.yaml,/orgs/{org}/insights/api/subject-stats,api-insights/get-subject-stats,api_insights/get_subject_stats,get,,orgs,orgs,api_insights_subject_stats,get_subject_stats,select,,Get subject stats +orgs.yaml,/orgs/{org}/insights/api/summary-stats,api-insights/get-summary-stats,api_insights/get_summary_stats,get,,orgs,orgs,api_insights_summary_stats,get_summary_stats,select,,Get summary stats +orgs.yaml,/orgs/{org}/insights/api/summary-stats/{actor_type}/{actor_id},api-insights/get-summary-stats-by-actor,api_insights/get_summary_stats_by_actor,get,,orgs,orgs,api_insights_summary_stats,get_summary_stats_by_actor,select,,Get summary stats by actor +orgs.yaml,/orgs/{org}/insights/api/summary-stats/users/{user_id},api-insights/get-summary-stats-by-user,api_insights/get_summary_stats_by_user,get,,orgs,orgs,api_insights_summary_stats,get_summary_stats_by_user,select,,Get summary stats by user +orgs.yaml,/orgs/{org}/insights/api/time-stats,api-insights/get-time-stats,api_insights/get_time_stats,get,,orgs,orgs,api_insights_time_stats,get_time_stats,select,,Get time stats +orgs.yaml,/orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id},api-insights/get-time-stats-by-actor,api_insights/get_time_stats_by_actor,get,,orgs,orgs,api_insights_time_stats,get_time_stats_by_actor,select,,Get time stats by actor +orgs.yaml,/orgs/{org}/insights/api/time-stats/users/{user_id},api-insights/get-time-stats-by-user,api_insights/get_time_stats_by_user,get,,orgs,orgs,api_insights_time_stats,get_time_stats_by_user,select,,Get time stats by user +orgs.yaml,/orgs/{org}/insights/api/user-stats/{user_id},api-insights/get-user-stats,api_insights/get_user_stats,get,,orgs,orgs,api_insights_user_stats,get_user_stats,select,,Get user stats +orgs.yaml,/orgs/{org}/hooks/{hook_id},orgs/get-webhook,orgs/get_webhook,get,org-hook,orgs,orgs,webhooks,get_webhook,select,,Get an organization webhook +orgs.yaml,/orgs/{org}/hooks/{hook_id}/config,orgs/get-webhook-config-for-org,orgs/get_webhook_config_for_org,get,webhook-config,orgs,orgs,webhook_config,get_webhook_config_for_org,select,,Get a webhook configuration for an organization +orgs.yaml,/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id},orgs/get-webhook-delivery,orgs/get_webhook_delivery,get,hook-delivery,orgs,orgs,webhook_delivery,get_webhook_delivery,select,,Get a webhook delivery for an organization webhook +orgs.yaml,/organizations,orgs/list,orgs/list,get,organization-simple,orgs,orgs,orgs,list,select,,List organizations +orgs.yaml,/orgs/{org}/installations,orgs/list-app-installations,orgs/list_app_installations,get,,orgs,orgs,app_installations,list_app_installations,select,$.installations,List app installations for an organization +orgs.yaml,/orgs/{org}/artifacts/{subject_digest}/metadata/deployment-records,orgs/list-artifact-deployment-records,orgs/list_artifact_deployment_records,get,,orgs,orgs,artifact_deployment_records,list_artifact_deployment_records,select,$.deployment_records,List artifact deployment records +orgs.yaml,/orgs/{org}/artifacts/{subject_digest}/metadata/storage-records,orgs/list-artifact-storage-records,orgs/list_artifact_storage_records,get,,orgs,orgs,artifact_storage_records,list_artifact_storage_records,select,$.storage_records,List artifact storage records +orgs.yaml,/orgs/{org}/attestations/repositories,orgs/list-attestation-repositories,orgs/list_attestation_repositories,get,,orgs,orgs,attestation_repositories,list_attestation_repositories,select,,List attestation repositories +orgs.yaml,/orgs/{org}/attestations/{subject_digest},orgs/list-attestations,orgs/list_attestations,get,,orgs,orgs,attestations,list_attestations,select,$.attestations,List attestations +orgs.yaml,/orgs/{org}/attestations/bulk-list,orgs/list-attestations-bulk,orgs/list_attestations_bulk,post,,orgs,orgs,attestations,list_attestations_bulk,exec,,List attestations by bulk subject digests +orgs.yaml,/orgs/{org}/blocks,orgs/list-blocked-users,orgs/list_blocked_users,get,simple-user,orgs,orgs,blocking,list_blocked_users,select,,List users blocked by an organization +orgs.yaml,/orgs/{org}/failed_invitations,orgs/list-failed-invitations,orgs/list_failed_invitations,get,organization-invitation,orgs,orgs,failed_invitations,list_failed_invitations,select,,List failed organization invitations +orgs.yaml,/user/orgs,orgs/list-for-authenticated-user,orgs/list_for_authenticated_user,get,organization-simple,orgs,orgs,orgs_for_user,list_for_authenticated_user,select,,List organizations for the authenticated user +orgs.yaml,/users/{username}/orgs,orgs/list-for-user,orgs/list_for_user,get,organization-simple,orgs,orgs,orgs,list_for_user,select,,List organizations for a user +orgs.yaml,/orgs/{org}/invitations/{invitation_id}/teams,orgs/list-invitation-teams,orgs/list_invitation_teams,get,team,orgs,orgs,invitation_teams,list_invitation_teams,select,,List organization invitation teams +orgs.yaml,/orgs/{org}/issue-fields,orgs/list-issue-fields,orgs/list_issue_fields,get,,orgs,orgs,issue_fields,list_issue_fields,select,,List issue fields for an organization +orgs.yaml,/orgs/{org}/issue-types,orgs/list-issue-types,orgs/list_issue_types,get,,orgs,orgs,issue_types,list_issue_types,select,,List issue types for an organization +orgs.yaml,/orgs/{org}/members,orgs/list-members,orgs/list_members,get,simple-user,orgs,orgs,members,list_members,select,,List organization members +orgs.yaml,/user/memberships/orgs,orgs/list-memberships-for-authenticated-user,orgs/list_memberships_for_authenticated_user,get,org-membership,orgs,orgs,memberships,list_memberships_for_authenticated_user,select,,List organization memberships for the authenticated user +orgs.yaml,/orgs/{org}/organization-roles/{role_id}/teams,orgs/list-org-role-teams,orgs/list_org_role_teams,get,,orgs,orgs,role_team_assignments,list_org_role_teams,select,,List teams that are assigned to an organization role +orgs.yaml,/orgs/{org}/organization-roles/{role_id}/users,orgs/list-org-role-users,orgs/list_org_role_users,get,,orgs,orgs,role_user_assignments,list_org_role_users,select,,List users that are assigned to an organization role +orgs.yaml,/orgs/{org}/organization-roles,orgs/list-org-roles,orgs/list_org_roles,get,,orgs,orgs,roles,list_org_roles,select,$.roles,Get all organization roles for an organization +orgs.yaml,/orgs/{org}/outside_collaborators,orgs/list-outside-collaborators,orgs/list_outside_collaborators,get,simple-user,orgs,orgs,outside_collaborators,list_outside_collaborators,select,,List outside collaborators for an organization +orgs.yaml,/orgs/{org}/personal-access-tokens/{pat_id}/repositories,orgs/list-pat-grant-repositories,orgs/list_pat_grant_repositories,get,minimal-repository,orgs,orgs,repos_for_pat_grants,list_pat_grant_repositories,select,,List repositories a fine-grained personal access token has access to +orgs.yaml,/orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories,orgs/list-pat-grant-request-repositories,orgs/list_pat_grant_request_repositories,get,minimal-repository,orgs,orgs,repos_for_pat_grant_requests,list_pat_grant_request_repositories,select,,List repositories requested to be accessed by a fine-grained personal access token +orgs.yaml,/orgs/{org}/personal-access-token-requests,orgs/list-pat-grant-requests,orgs/list_pat_grant_requests,get,organization-programmatic-access-grant-request,orgs,orgs,pat_grant_requests,list_pat_grant_requests,select,,List requests to access organization resources with fine-grained personal access tokens +orgs.yaml,/orgs/{org}/personal-access-tokens,orgs/list-pat-grants,orgs/list_pat_grants,get,organization-programmatic-access-grant,orgs,orgs,pat_grants,list_pat_grants,select,,List fine-grained personal access tokens with access to organization resources +orgs.yaml,/orgs/{org}/invitations,orgs/list-pending-invitations,orgs/list_pending_invitations,get,organization-invitation,orgs,orgs,invitations,list_pending_invitations,select,,List pending organization invitations +orgs.yaml,/orgs/{org}/public_members,orgs/list-public-members,orgs/list_public_members,get,simple-user,orgs,orgs,public_members,list_public_members,select,,List public organization members +orgs.yaml,/orgs/{org}/security-managers,orgs/list-security-manager-teams,orgs/list_security_manager_teams,get,team-simple,orgs,orgs,security_managers,list_security_manager_teams,select,,List security manager teams +orgs.yaml,/orgs/{org}/hooks/{hook_id}/deliveries,orgs/list-webhook-deliveries,orgs/list_webhook_deliveries,get,hook-delivery-item,orgs,orgs,webhook_deliveries,list_webhook_deliveries,select,,List deliveries for an organization webhook +orgs.yaml,/orgs/{org}/hooks,orgs/list-webhooks,orgs/list_webhooks,get,org-hook,orgs,orgs,webhooks,list_webhooks,select,,List organization webhooks +orgs.yaml,/orgs/{org}/hooks/{hook_id}/pings,orgs/ping-webhook,orgs/ping_webhook,post,,orgs,orgs,webhooks,ping_webhook,exec,,Ping an organization webhook +orgs.yaml,/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts,orgs/redeliver-webhook-delivery,orgs/redeliver_webhook_delivery,post,,orgs,orgs,webhook_delivery,redeliver_webhook_delivery,exec,,Redeliver a delivery for an organization webhook +orgs.yaml,/orgs/{org}/members/{username},orgs/remove-member,orgs/remove_member,delete,,orgs,orgs,members,remove_member,delete,,Remove an organization member +orgs.yaml,/orgs/{org}/memberships/{username},orgs/remove-membership-for-user,orgs/remove_membership_for_user,delete,,orgs,orgs,memberships,remove_membership_for_user,delete,,Remove organization membership for a user +orgs.yaml,/orgs/{org}/outside_collaborators/{username},orgs/remove-outside-collaborator,orgs/remove_outside_collaborator,delete,,orgs,orgs,outside_collaborators,remove_outside_collaborator,delete,,Remove outside collaborator from an organization +orgs.yaml,/orgs/{org}/public_members/{username},orgs/remove-public-membership-for-authenticated-user,orgs/remove_public_membership_for_authenticated_user,delete,,orgs,orgs,public_members,remove_public_membership_for_authenticated_user,delete,,Remove public organization membership for the authenticated user +orgs.yaml,/orgs/{org}/security-managers/teams/{team_slug},orgs/remove-security-manager-team,orgs/remove_security_manager_team,delete,,orgs,orgs,security_managers,remove_security_manager_team,delete,,Remove a security manager team +orgs.yaml,/orgs/{org}/personal-access-token-requests/{pat_request_id},orgs/review-pat-grant-request,orgs/review_pat_grant_request,post,,orgs,orgs,pat_grant_requests,review_pat_grant_request,exec,,Review a request to access organization resources with a fine-grained personal access token +orgs.yaml,/orgs/{org}/personal-access-token-requests,orgs/review-pat-grant-requests-in-bulk,orgs/review_pat_grant_requests_in_bulk,post,,orgs,orgs,pat_grant_requests,review_pat_grant_requests_in_bulk,exec,,Review requests to access organization resources with fine-grained personal access tokens +orgs.yaml,/orgs/{org}/organization-roles/teams/{team_slug},orgs/revoke-all-org-roles-team,orgs/revoke_all_org_roles_team,delete,,orgs,orgs,role_team_assignments,revoke_all_org_roles_team,delete,,Remove all organization roles for a team +orgs.yaml,/orgs/{org}/organization-roles/users/{username},orgs/revoke-all-org-roles-user,orgs/revoke_all_org_roles_user,delete,,orgs,orgs,role_user_assignments,revoke_all_org_roles_user,delete,,Remove all organization roles for a user +orgs.yaml,/orgs/{org}/organization-roles/teams/{team_slug}/{role_id},orgs/revoke-org-role-team,orgs/revoke_org_role_team,delete,,orgs,orgs,role_team_assignments,revoke_org_role_team,delete,,Remove an organization role from a team +orgs.yaml,/orgs/{org}/organization-roles/users/{username}/{role_id},orgs/revoke-org-role-user,orgs/revoke_org_role_user,delete,,orgs,orgs,role_user_assignments,revoke_org_role_user,delete,,Remove an organization role from a user +orgs.yaml,/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster},orgs/set-cluster-deployment-records,orgs/set_cluster_deployment_records,post,,orgs,orgs,artifact_deployment_records,set_cluster_deployment_records,insert,,Set cluster deployment records +orgs.yaml,/orgs/{org}/settings/immutable-releases,orgs/set-immutable-releases-settings,orgs/set_immutable_releases_settings,put,,orgs,orgs,immutable_releases_settings,set_immutable_releases_settings,replace,,Set immutable releases settings for an organization +orgs.yaml,/orgs/{org}/settings/immutable-releases/repositories,orgs/set-immutable-releases-settings-repositories,orgs/set_immutable_releases_settings_repositories,put,,orgs,orgs,immutable_releases_repos,set_immutable_releases_settings_repositories,replace,,Set selected repositories for immutable releases enforcement +orgs.yaml,/orgs/{org}/memberships/{username},orgs/set-membership-for-user,orgs/set_membership_for_user,put,org-membership,orgs,orgs,memberships,set_membership_for_user,replace,,Set organization membership for a user +orgs.yaml,/orgs/{org}/public_members/{username},orgs/set-public-membership-for-authenticated-user,orgs/set_public_membership_for_authenticated_user,put,,orgs,orgs,public_members,set_public_membership_for_authenticated_user,replace,,Set public organization membership for the authenticated user +orgs.yaml,/orgs/{org}/blocks/{username},orgs/unblock-user,orgs/unblock_user,delete,,orgs,orgs,blocking,unblock_user,exec,,Unblock a user from an organization +orgs.yaml,/orgs/{org},orgs/update,orgs/update,patch,organization-full,orgs,orgs,orgs,update,update,,Update an organization +orgs.yaml,/orgs/{org}/issue-fields/{issue_field_id},orgs/update-issue-field,orgs/update_issue_field,patch,,orgs,orgs,issue_fields,update_issue_field,update,,Update issue field for an organization +orgs.yaml,/orgs/{org}/issue-types/{issue_type_id},orgs/update-issue-type,orgs/update_issue_type,put,,orgs,orgs,issue_types,update_issue_type,replace,,Update issue type for an organization +orgs.yaml,/user/memberships/orgs/{org},orgs/update-membership-for-authenticated-user,orgs/update_membership_for_authenticated_user,patch,org-membership,orgs,orgs,memberships,update_membership_for_authenticated_user,update,,Update an organization membership for the authenticated user +orgs.yaml,/orgs/{org}/personal-access-tokens/{pat_id},orgs/update-pat-access,orgs/update_pat_access,post,,orgs,orgs,pat_grants,update_pat_access,exec,,Update the access a fine-grained personal access token has to organization resources +orgs.yaml,/orgs/{org}/personal-access-tokens,orgs/update-pat-accesses,orgs/update_pat_accesses,post,,orgs,orgs,pat_grants,update_pat_accesses,exec,,Update the access to organization resources via fine-grained personal access tokens +orgs.yaml,/orgs/{org}/hooks/{hook_id},orgs/update-webhook,orgs/update_webhook,patch,org-hook,orgs,orgs,webhooks,update_webhook,update,,Update an organization webhook +orgs.yaml,/orgs/{org}/hooks/{hook_id}/config,orgs/update-webhook-config-for-org,orgs/update_webhook_config_for_org,patch,webhook-config,orgs,orgs,webhook_config,update_webhook_config_for_org,update,,Update a webhook configuration for an organization +packages.yaml,/user/packages/{package_type}/{package_name},packages/delete-package-for-authenticated-user,packages/delete_package_for_authenticated_user,delete,,packages,packages,packages,delete_package_for_authenticated_user,delete,,Delete a package for the authenticated user +packages.yaml,/orgs/{org}/packages/{package_type}/{package_name},packages/delete-package-for-org,packages/delete_package_for_org,delete,,packages,packages,packages,delete_package_for_org,delete,,Delete a package for an organization +packages.yaml,/users/{username}/packages/{package_type}/{package_name},packages/delete-package-for-user,packages/delete_package_for_user,delete,,packages,packages,packages,delete_package_for_user,delete,,Delete a package for a user +packages.yaml,/user/packages/{package_type}/{package_name}/versions/{package_version_id},packages/delete-package-version-for-authenticated-user,packages/delete_package_version_for_authenticated_user,delete,,packages,packages,package_versions,delete_package_version_for_authenticated_user,delete,,Delete a package version for the authenticated user +packages.yaml,/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id},packages/delete-package-version-for-org,packages/delete_package_version_for_org,delete,,packages,packages,package_versions,delete_package_version_for_org,delete,,Delete package version for an organization +packages.yaml,/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id},packages/delete-package-version-for-user,packages/delete_package_version_for_user,delete,,packages,packages,package_versions,delete_package_version_for_user,delete,,Delete package version for a user +packages.yaml,/user/packages/{package_type}/{package_name}/versions,packages/get-all-package-versions-for-package-owned-by-authenticated-user,packages/get_all_package_versions_for_package_owned_by_authenticated_user,get,package-version,packages,packages,package_versions,get_all_package_versions_for_package_owned_by_authenticated_user,select,,List package versions for a package owned by the authenticated user +packages.yaml,/orgs/{org}/packages/{package_type}/{package_name}/versions,packages/get-all-package-versions-for-package-owned-by-org,packages/get_all_package_versions_for_package_owned_by_org,get,package-version,packages,packages,package_versions,get_all_package_versions_for_package_owned_by_org,select,,List package versions for a package owned by an organization +packages.yaml,/users/{username}/packages/{package_type}/{package_name}/versions,packages/get-all-package-versions-for-package-owned-by-user,packages/get_all_package_versions_for_package_owned_by_user,get,package-version,packages,packages,package_versions,get_all_package_versions_for_package_owned_by_user,select,,List package versions for a package owned by a user +packages.yaml,/user/packages/{package_type}/{package_name},packages/get-package-for-authenticated-user,packages/get_package_for_authenticated_user,get,package,packages,packages,packages,get_package_for_authenticated_user,select,,Get a package for the authenticated user +packages.yaml,/orgs/{org}/packages/{package_type}/{package_name},packages/get-package-for-organization,packages/get_package_for_organization,get,package,packages,packages,packages,get_package_for_organization,select,,Get a package for an organization +packages.yaml,/users/{username}/packages/{package_type}/{package_name},packages/get-package-for-user,packages/get_package_for_user,get,package,packages,packages,packages,get_package_for_user,select,,Get a package for a user +packages.yaml,/user/packages/{package_type}/{package_name}/versions/{package_version_id},packages/get-package-version-for-authenticated-user,packages/get_package_version_for_authenticated_user,get,package-version,packages,packages,package_versions,get_package_version_for_authenticated_user,select,,Get a package version for the authenticated user +packages.yaml,/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id},packages/get-package-version-for-organization,packages/get_package_version_for_organization,get,package-version,packages,packages,package_versions,get_package_version_for_organization,select,,Get a package version for an organization +packages.yaml,/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id},packages/get-package-version-for-user,packages/get_package_version_for_user,get,package-version,packages,packages,package_versions,get_package_version_for_user,select,,Get a package version for a user +packages.yaml,/user/docker/conflicts,packages/list-docker-migration-conflicting-packages-for-authenticated-user,packages/list_docker_migration_conflicting_packages_for_authenticated_user,get,package,packages,packages,docker_migration_packages,list_docker_migration_conflicting_packages_for_authenticated_user,select,,Get list of conflicting packages during Docker migration for authenticated-user +packages.yaml,/orgs/{org}/docker/conflicts,packages/list-docker-migration-conflicting-packages-for-organization,packages/list_docker_migration_conflicting_packages_for_organization,get,package,packages,packages,docker_migration_packages,list_docker_migration_conflicting_packages_for_organization,select,,Get list of conflicting packages during Docker migration for organization +packages.yaml,/users/{username}/docker/conflicts,packages/list-docker-migration-conflicting-packages-for-user,packages/list_docker_migration_conflicting_packages_for_user,get,package,packages,packages,docker_migration_packages,list_docker_migration_conflicting_packages_for_user,select,,Get list of conflicting packages during Docker migration for user +packages.yaml,/user/packages,packages/list-packages-for-authenticated-user,packages/list_packages_for_authenticated_user,get,package,packages,packages,packages,list_packages_for_authenticated_user,select,,List packages for the authenticated user's namespace +packages.yaml,/orgs/{org}/packages,packages/list-packages-for-organization,packages/list_packages_for_organization,get,package,packages,packages,packages,list_packages_for_organization,select,,List packages for an organization +packages.yaml,/users/{username}/packages,packages/list-packages-for-user,packages/list_packages_for_user,get,package,packages,packages,packages,list_packages_for_user,select,,List packages for a user +packages.yaml,/user/packages/{package_type}/{package_name}/restore,packages/restore-package-for-authenticated-user,packages/restore_package_for_authenticated_user,post,,packages,packages,packages,restore_package_for_authenticated_user,exec,,Restore a package for the authenticated user +packages.yaml,/orgs/{org}/packages/{package_type}/{package_name}/restore,packages/restore-package-for-org,packages/restore_package_for_org,post,,packages,packages,packages,restore_package_for_org,exec,,Restore a package for an organization +packages.yaml,/users/{username}/packages/{package_type}/{package_name}/restore,packages/restore-package-for-user,packages/restore_package_for_user,post,,packages,packages,packages,restore_package_for_user,exec,,Restore a package for a user +packages.yaml,/user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore,packages/restore-package-version-for-authenticated-user,packages/restore_package_version_for_authenticated_user,post,,packages,packages,package_versions,restore_package_version_for_authenticated_user,exec,,Restore a package version for the authenticated user +packages.yaml,/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore,packages/restore-package-version-for-org,packages/restore_package_version_for_org,post,,packages,packages,package_versions,restore_package_version_for_org,exec,,Restore package version for an organization +packages.yaml,/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore,packages/restore-package-version-for-user,packages/restore_package_version_for_user,post,,packages,packages,package_versions,restore_package_version_for_user,exec,,Restore package version for a user +private_registries.yaml,/orgs/{org}/private-registries,private-registries/create-org-private-registry,private_registries/create_org_private_registry,post,,private-registries,private_registries,private_registries,create_org_private_registry,insert,,Create a private registry for an organization +private_registries.yaml,/orgs/{org}/private-registries/{secret_name},private-registries/delete-org-private-registry,private_registries/delete_org_private_registry,delete,,private-registries,private_registries,private_registries,delete_org_private_registry,delete,,Delete a private registry for an organization +private_registries.yaml,/orgs/{org}/private-registries/{secret_name},private-registries/get-org-private-registry,private_registries/get_org_private_registry,get,,private-registries,private_registries,private_registries,get_org_private_registry,select,,Get a private registry for an organization +private_registries.yaml,/orgs/{org}/private-registries/public-key,private-registries/get-org-public-key,private_registries/get_org_public_key,get,,private-registries,private_registries,private_registry_public_key,get_org_public_key,select,,Get private registries public key for an organization +private_registries.yaml,/orgs/{org}/private-registries,private-registries/list-org-private-registries,private_registries/list_org_private_registries,get,,private-registries,private_registries,private_registries,list_org_private_registries,select,$.configurations,List private registries for an organization +private_registries.yaml,/orgs/{org}/private-registries/{secret_name},private-registries/update-org-private-registry,private_registries/update_org_private_registry,patch,,private-registries,private_registries,private_registries,update_org_private_registry,update,,Update a private registry for an organization +projects.yaml,/orgs/{org}/projectsV2/{project_number}/fields,projects/add-field-for-org,projects/add_field_for_org,post,,projects,projects,project_fields,add_field_for_org,insert,,Add a field to an organization-owned project. +projects.yaml,/users/{username}/projectsV2/{project_number}/fields,projects/add-field-for-user,projects/add_field_for_user,post,,projects,projects,project_fields,add_field_for_user,insert,,Add field to user owned project +projects.yaml,/orgs/{org}/projectsV2/{project_number}/items,projects/add-item-for-org,projects/add_item_for_org,post,,projects,projects,project_items,add_item_for_org,insert,,Add item to organization owned project +projects.yaml,/users/{username}/projectsV2/{project_number}/items,projects/add-item-for-user,projects/add_item_for_user,post,,projects,projects,project_items,add_item_for_user,insert,,Add item to user owned project +projects.yaml,/user/{user_id}/projectsV2/{project_number}/drafts,projects/create-draft-item-for-authenticated-user,projects/create_draft_item_for_authenticated_user,post,,projects,projects,project_items,create_draft_item_for_authenticated_user,insert,,Create draft item for user owned project +projects.yaml,/orgs/{org}/projectsV2/{project_number}/drafts,projects/create-draft-item-for-org,projects/create_draft_item_for_org,post,,projects,projects,project_draft_items,create_draft_item_for_org,insert,,Create draft item for organization owned project +projects.yaml,/orgs/{org}/projectsV2/{project_number}/views,projects/create-view-for-org,projects/create_view_for_org,post,,projects,projects,project_views,create_view_for_org,insert,,Create a view for an organization-owned project +projects.yaml,/users/{user_id}/projectsV2/{project_number}/views,projects/create-view-for-user,projects/create_view_for_user,post,,projects,projects,project_views,create_view_for_user,insert,,Create a view for a user-owned project +projects.yaml,/orgs/{org}/projectsV2/{project_number}/items/{item_id},projects/delete-item-for-org,projects/delete_item_for_org,delete,,projects,projects,project_items,delete_item_for_org,delete,,Delete project item for organization +projects.yaml,/users/{username}/projectsV2/{project_number}/items/{item_id},projects/delete-item-for-user,projects/delete_item_for_user,delete,,projects,projects,project_items,delete_item_for_user,delete,,Delete project item for user +projects.yaml,/orgs/{org}/projectsV2/{project_number}/fields/{field_id},projects/get-field-for-org,projects/get_field_for_org,get,,projects,projects,project_fields,get_field_for_org,select,,Get project field for organization +projects.yaml,/users/{username}/projectsV2/{project_number}/fields/{field_id},projects/get-field-for-user,projects/get_field_for_user,get,,projects,projects,project_fields,get_field_for_user,select,,Get project field for user +projects.yaml,/orgs/{org}/projectsV2/{project_number},projects/get-for-org,projects/get_for_org,get,,projects,projects,projects,get_for_org,select,,Get project for organization +projects.yaml,/users/{username}/projectsV2/{project_number},projects/get-for-user,projects/get_for_user,get,,projects,projects,projects,get_for_user,select,,Get project for user +projects.yaml,/orgs/{org}/projectsV2/{project_number}/items/{item_id},projects/get-org-item,projects/get_org_item,get,,projects,projects,project_items,get_org_item,select,,Get an item for an organization owned project +projects.yaml,/users/{username}/projectsV2/{project_number}/items/{item_id},projects/get-user-item,projects/get_user_item,get,,projects,projects,project_items,get_user_item,select,,Get an item for a user owned project +projects.yaml,/orgs/{org}/projectsV2/{project_number}/fields,projects/list-fields-for-org,projects/list_fields_for_org,get,,projects,projects,project_fields,list_fields_for_org,select,,List project fields for organization +projects.yaml,/users/{username}/projectsV2/{project_number}/fields,projects/list-fields-for-user,projects/list_fields_for_user,get,,projects,projects,project_fields,list_fields_for_user,select,,List project fields for user +projects.yaml,/orgs/{org}/projectsV2,projects/list-for-org,projects/list_for_org,get,project,projects,projects,projects,list_for_org,select,,List organization projects +projects.yaml,/users/{username}/projectsV2,projects/list-for-user,projects/list_for_user,get,project,projects,projects,projects,list_for_user,select,,List user projects +projects.yaml,/orgs/{org}/projectsV2/{project_number}/items,projects/list-items-for-org,projects/list_items_for_org,get,,projects,projects,project_items,list_items_for_org,select,,List items for an organization owned project +projects.yaml,/users/{username}/projectsV2/{project_number}/items,projects/list-items-for-user,projects/list_items_for_user,get,,projects,projects,project_items,list_items_for_user,select,,List items for a user owned project +projects.yaml,/orgs/{org}/projectsV2/{project_number}/views/{view_number}/items,projects/list-view-items-for-org,projects/list_view_items_for_org,get,,projects,projects,project_view_items,list_view_items_for_org,select,,List items for an organization project view +projects.yaml,/users/{username}/projectsV2/{project_number}/views/{view_number}/items,projects/list-view-items-for-user,projects/list_view_items_for_user,get,,projects,projects,project_view_items,list_view_items_for_user,select,,List items for a user project view +projects.yaml,/orgs/{org}/projectsV2/{project_number}/items/{item_id},projects/update-item-for-org,projects/update_item_for_org,patch,,projects,projects,project_items,update_item_for_org,update,,Update project item for organization +projects.yaml,/users/{username}/projectsV2/{project_number}/items/{item_id},projects/update-item-for-user,projects/update_item_for_user,patch,,projects,projects,project_items,update_item_for_user,update,,Update project item for user +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/merge,pulls/check-if-merged,pulls/check_if_merged,get,,pulls,pulls,pull_request,check_if_merged,exec,,Check if a pull request has been merged +pulls.yaml,/repos/{owner}/{repo}/pulls,pulls/create,pulls/create,post,pull-request,pulls,pulls,pull_request,create,insert,,Create a pull request +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies,pulls/create-reply-for-review-comment,pulls/create_reply_for_review_comment,post,pull-request-review-comment,pulls,pulls,comments,create_reply_for_review_comment,insert,,Create a reply for a review comment +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/reviews,pulls/create-review,pulls/create_review,post,pull-request-review,pulls,pulls,reviews,create_review,insert,,Create a review for a pull request +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/comments,pulls/create-review-comment,pulls/create_review_comment,post,pull-request-review-comment,pulls,pulls,comments,create_review_comment,insert,,Create a review comment for a pull request +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id},pulls/delete-pending-review,pulls/delete_pending_review,delete,pull-request-review,pulls,pulls,reviews,delete_pending_review,delete,,Delete a pending review for a pull request +pulls.yaml,/repos/{owner}/{repo}/pulls/comments/{comment_id},pulls/delete-review-comment,pulls/delete_review_comment,delete,,pulls,pulls,comments,delete_review_comment,delete,,Delete a review comment for a pull request +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals,pulls/dismiss-review,pulls/dismiss_review,put,pull-request-review,pulls,pulls,reviews,dismiss_review,exec,,Dismiss a review for a pull request +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number},pulls/get,pulls/get,get,pull-request,pulls,pulls,pull_request,get,select,,Get a pull request +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id},pulls/get-review,pulls/get_review,get,pull-request-review,pulls,pulls,reviews,get_review,select,,Get a review for a pull request +pulls.yaml,/repos/{owner}/{repo}/pulls/comments/{comment_id},pulls/get-review-comment,pulls/get_review_comment,get,pull-request-review-comment,pulls,pulls,comments,get_review_comment,select,,Get a review comment for a pull request +pulls.yaml,/repos/{owner}/{repo}/pulls,pulls/list,pulls/list,get,pull-request-simple,pulls,pulls,pull_requests,list,select,,List pull requests +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments,pulls/list-comments-for-review,pulls/list_comments_for_review,get,review-comment,pulls,pulls,comments_for_review,list_comments_for_review,select,,List comments for a pull request review +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/commits,pulls/list-commits,pulls/list_commits,get,commit,pulls,pulls,commits,list_commits,select,,List commits on a pull request +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/files,pulls/list-files,pulls/list_files,get,diff-entry,pulls,pulls,files,list_files,select,,List pull requests files +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers,pulls/list-requested-reviewers,pulls/list_requested_reviewers,get,pull-request-review-request,pulls,pulls,review_requests,list_requested_reviewers,select,,Get all requested reviewers for a pull request +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/comments,pulls/list-review-comments,pulls/list_review_comments,get,pull-request-review-comment,pulls,pulls,comments,list_review_comments,select,,List review comments on a pull request +pulls.yaml,/repos/{owner}/{repo}/pulls/comments,pulls/list-review-comments-for-repo,pulls/list_review_comments_for_repo,get,pull-request-review-comment,pulls,pulls,comments,list_review_comments_for_repo,select,,List review comments in a repository +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/reviews,pulls/list-reviews,pulls/list_reviews,get,pull-request-review,pulls,pulls,reviews,list_reviews,select,,List reviews for a pull request +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/merge,pulls/merge,pulls/merge,put,pull-request-merge-result,pulls,pulls,pull_request,merge,exec,,Merge a pull request +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers,pulls/remove-requested-reviewers,pulls/remove_requested_reviewers,delete,pull-request-simple,pulls,pulls,review_requests,remove_requested_reviewers,delete,,Remove requested reviewers from a pull request +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers,pulls/request-reviewers,pulls/request_reviewers,post,pull-request-simple,pulls,pulls,review_requests,request_reviewers,insert,,Request reviewers for a pull request +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events,pulls/submit-review,pulls/submit_review,post,pull-request-review,pulls,pulls,reviews,submit_review,exec,,Submit a review for a pull request +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number},pulls/update,pulls/update,patch,pull-request,pulls,pulls,pull_request,update,update,,Update a pull request +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/update-branch,pulls/update-branch,pulls/update_branch,put,,pulls,pulls,pull_request,update_branch,exec,,Update a pull request branch +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id},pulls/update-review,pulls/update_review,put,pull-request-review,pulls,pulls,reviews,update_review,replace,,Update a review for a pull request +pulls.yaml,/repos/{owner}/{repo}/pulls/comments/{comment_id},pulls/update-review-comment,pulls/update_review_comment,patch,pull-request-review-comment,pulls,pulls,comments,update_review_comment,update,,Update a review comment for a pull request +rate_limit.yaml,/rate_limit,rate-limit/get,rate_limit/get,get,rate-limit-overview,rate-limit,rate_limit,rate_limit,get,select,,Get rate limit status for the authenticated user +reactions.yaml,/repos/{owner}/{repo}/comments/{comment_id}/reactions,reactions/create-for-commit-comment,reactions/create_for_commit_comment,post,reaction,reactions,reactions,commit_comments,create_for_commit_comment,insert,,Create reaction for a commit comment +reactions.yaml,/repos/{owner}/{repo}/issues/{issue_number}/reactions,reactions/create-for-issue,reactions/create_for_issue,post,reaction,reactions,reactions,issue_comments,create_for_issue,insert,,Create reaction for an issue +reactions.yaml,/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions,reactions/create-for-issue-comment,reactions/create_for_issue_comment,post,reaction,reactions,reactions,issue_comments,create_for_issue_comment,insert,,Create reaction for an issue comment +reactions.yaml,/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions,reactions/create-for-pull-request-review-comment,reactions/create_for_pull_request_review_comment,post,reaction,reactions,reactions,pr_comments,create_for_pull_request_review_comment,insert,,Create reaction for a pull request review comment +reactions.yaml,/repos/{owner}/{repo}/releases/{release_id}/reactions,reactions/create-for-release,reactions/create_for_release,post,reaction,reactions,reactions,release_comments,create_for_release,insert,,Create reaction for a release +reactions.yaml,/repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id},reactions/delete-for-commit-comment,reactions/delete_for_commit_comment,delete,,reactions,reactions,commit_comments,delete_for_commit_comment,delete,,Delete a commit comment reaction +reactions.yaml,/repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id},reactions/delete-for-issue,reactions/delete_for_issue,delete,,reactions,reactions,issue_comments,delete_for_issue,delete,,Delete an issue reaction +reactions.yaml,/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id},reactions/delete-for-issue-comment,reactions/delete_for_issue_comment,delete,,reactions,reactions,issue_comments,delete_for_issue_comment,delete,,Delete an issue comment reaction +reactions.yaml,/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id},reactions/delete-for-pull-request-comment,reactions/delete_for_pull_request_comment,delete,,reactions,reactions,pr_comments,delete_for_pull_request_comment,delete,,Delete a pull request comment reaction +reactions.yaml,/repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id},reactions/delete-for-release,reactions/delete_for_release,delete,,reactions,reactions,release_comments,delete_for_release,delete,,Delete a release reaction +reactions.yaml,/repos/{owner}/{repo}/comments/{comment_id}/reactions,reactions/list-for-commit-comment,reactions/list_for_commit_comment,get,reaction,reactions,reactions,commit_comments,list_for_commit_comment,select,,List reactions for a commit comment +reactions.yaml,/repos/{owner}/{repo}/issues/{issue_number}/reactions,reactions/list-for-issue,reactions/list_for_issue,get,reaction,reactions,reactions,issue_comments,list_for_issue,select,,List reactions for an issue +reactions.yaml,/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions,reactions/list-for-issue-comment,reactions/list_for_issue_comment,get,reaction,reactions,reactions,issue_comments,list_for_issue_comment,select,,List reactions for an issue comment +reactions.yaml,/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions,reactions/list-for-pull-request-review-comment,reactions/list_for_pull_request_review_comment,get,reaction,reactions,reactions,pr_comments,list_for_pull_request_review_comment,select,,List reactions for a pull request review comment +reactions.yaml,/repos/{owner}/{repo}/releases/{release_id}/reactions,reactions/list-for-release,reactions/list_for_release,get,reaction,reactions,reactions,release_comments,list_for_release,select,,List reactions for a release +repos.yaml,/user/repository_invitations/{invitation_id},repos/accept-invitation-for-authenticated-user,repos/accept_invitation_for_authenticated_user,patch,,repos,repos,invitations,accept_invitation_for_authenticated_user,exec,,Accept a repository invitation +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps,repos/add-app-access-restrictions,repos/add_app_access_restrictions,post,integration,repos,repos,app_access_restrictions,add_app_access_restrictions,insert,,Add app access restrictions +repos.yaml,/repos/{owner}/{repo}/collaborators/{username},repos/add-collaborator,repos/add_collaborator,put,repository-invitation,repos,repos,collaborators,add_collaborator,insert,,Add a repository collaborator +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts,repos/add-status-check-contexts,repos/add_status_check_contexts,post,,repos,repos,status_check_contexts,add_status_check_contexts,insert,,Add status check contexts +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams,repos/add-team-access-restrictions,repos/add_team_access_restrictions,post,team,repos,repos,team_access_restrictions,add_team_access_restrictions,insert,,Add team access restrictions +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users,repos/add-user-access-restrictions,repos/add_user_access_restrictions,post,simple-user,repos,repos,user_access_restrictions,add_user_access_restrictions,insert,,Add user access restrictions +repos.yaml,/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel,repos/cancel-pages-deployment,repos/cancel_pages_deployment,post,,repos,repos,repo_pages_deployments,cancel_pages_deployment,insert,,Cancel a GitHub Pages deployment +repos.yaml,/repos/{owner}/{repo}/automated-security-fixes,repos/check-automated-security-fixes,repos/check_automated_security_fixes,get,check-automated-security-fixes,repos,repos,security_fixes,check_automated_security_fixes,select,,Check if automated security fixes are enabled for a repository +repos.yaml,/repos/{owner}/{repo}/collaborators/{username},repos/check-collaborator,repos/check_collaborator,get,,repos,repos,collaborators,check_collaborator,exec,,Check if a user is a repository collaborator +repos.yaml,/repos/{owner}/{repo}/immutable-releases,repos/check-immutable-releases,repos/check_immutable_releases,get,,repos,repos,repo_immutable_releases,check_immutable_releases,select,,Check if immutable releases are enabled for a repository +repos.yaml,/repos/{owner}/{repo}/private-vulnerability-reporting,repos/check-private-vulnerability-reporting,repos/check_private_vulnerability_reporting,get,,repos,repos,private_vulnerability_reporting,check_private_vulnerability_reporting,select,,Check if private vulnerability reporting is enabled for a repository +repos.yaml,/repos/{owner}/{repo}/vulnerability-alerts,repos/check-vulnerability-alerts,repos/check_vulnerability_alerts,get,,repos,repos,vulnerability_alerts,check_vulnerability_alerts,exec,,Check if vulnerability alerts are enabled for a repository +repos.yaml,/repos/{owner}/{repo}/codeowners/errors,repos/codeowners-errors,repos/codeowners_errors,get,codeowners-errors,repos,repos,codeowners,codeowners_errors,select,$.errors,List CODEOWNERS errors +repos.yaml,/repos/{owner}/{repo}/compare/{basehead},repos/compare-commits,repos/compare_commits,get,commit-comparison,repos,repos,commits,compare_commits,select,,Compare two commits +repos.yaml,/repos/{owner}/{repo}/attestations,repos/create-attestation,repos/create_attestation,post,,repos,repos,attestations,create_attestation,insert,,Create an attestation +repos.yaml,/repos/{owner}/{repo}/autolinks,repos/create-autolink,repos/create_autolink,post,autolink,repos,repos,autolinks,create_autolink,insert,,Create an autolink reference for a repository +repos.yaml,/repos/{owner}/{repo}/commits/{commit_sha}/comments,repos/create-commit-comment,repos/create_commit_comment,post,commit-comment,repos,repos,comments,create_commit_comment,insert,,Create a commit comment +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures,repos/create-commit-signature-protection,repos/create_commit_signature_protection,post,protected-branch-admin-enforced,repos,repos,commit_signature_protection,create_commit_signature_protection,insert,,Create commit signature protection +repos.yaml,/repos/{owner}/{repo}/statuses/{sha},repos/create-commit-status,repos/create_commit_status,post,status,repos,repos,status_commits,create_commit_status,insert,,Create a commit status +repos.yaml,/repos/{owner}/{repo}/keys,repos/create-deploy-key,repos/create_deploy_key,post,deploy-key,repos,repos,deploy_keys,create_deploy_key,insert,,Create a deploy key +repos.yaml,/repos/{owner}/{repo}/deployments,repos/create-deployment,repos/create_deployment,post,deployment,repos,repos,deployments,create_deployment,insert,,Create a deployment +repos.yaml,/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies,repos/create-deployment-branch-policy,repos/create_deployment_branch_policy,post,deployment-branch-policy,repos,repos,branch_policies,create_deployment_branch_policy,insert,,Create a deployment branch policy +repos.yaml,/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules,repos/create-deployment-protection-rule,repos/create_deployment_protection_rule,post,deployment-protection-rule,repos,repos,protection_rules,create_deployment_protection_rule,insert,,Create a custom deployment protection rule on an environment +repos.yaml,/repos/{owner}/{repo}/deployments/{deployment_id}/statuses,repos/create-deployment-status,repos/create_deployment_status,post,deployment-status,repos,repos,status_deployments,create_deployment_status,insert,,Create a deployment status +repos.yaml,/repos/{owner}/{repo}/dispatches,repos/create-dispatch-event,repos/create_dispatch_event,post,,repos,repos,repository_dispatches,create_dispatch_event,insert,,Create a repository dispatch event +repos.yaml,/user/repos,repos/create-for-authenticated-user,repos/create_for_authenticated_user,post,repository,repos,repos,repos_for_auth_user,create_for_authenticated_user,insert,,Create a repository for the authenticated user +repos.yaml,/repos/{owner}/{repo}/forks,repos/create-fork,repos/create_fork,post,full-repository,repos,repos,forks,create_fork,insert,,Create a fork +repos.yaml,/orgs/{org}/repos,repos/create-in-org,repos/create_in_org,post,repository,repos,repos,repos,create_in_org,insert,,Create an organization repository +repos.yaml,/repos/{owner}/{repo}/environments/{environment_name},repos/create-or-update-environment,repos/create_or_update_environment,put,environment,repos,repos,environments,create_or_update_environment,insert,,Create or update an environment +repos.yaml,/repos/{owner}/{repo}/contents/{path},repos/create-or-update-file-contents,repos/create_or_update_file_contents,put,file-commit,repos,repos,contents,create_or_update_file_contents,insert,,Create or update file contents +repos.yaml,/orgs/{org}/rulesets,repos/create-org-ruleset,repos/create_org_ruleset,post,repository-ruleset,repos,repos,rules,create_org_ruleset,insert,,Create an organization repository ruleset +repos.yaml,/repos/{owner}/{repo}/pages/deployments,repos/create-pages-deployment,repos/create_pages_deployment,post,page-deployment,repos,repos,page_builds,create_pages_deployment,insert,,Create a GitHub Pages deployment +repos.yaml,/repos/{owner}/{repo}/pages,repos/create-pages-site,repos/create_pages_site,post,page,repos,repos,pages,create_pages_site,insert,,Create a GitHub Pages site +repos.yaml,/repos/{owner}/{repo}/releases,repos/create-release,repos/create_release,post,release,repos,repos,releases,create_release,insert,,Create a release +repos.yaml,/repos/{owner}/{repo}/rulesets,repos/create-repo-ruleset,repos/create_repo_ruleset,post,repository-ruleset,repos,repos,rules,create_repo_ruleset,insert,,Create a repository ruleset +repos.yaml,/repos/{template_owner}/{template_repo}/generate,repos/create-using-template,repos/create_using_template,post,repository,repos,repos,repos,create_using_template,insert,,Create a repository using a template +repos.yaml,/repos/{owner}/{repo}/hooks,repos/create-webhook,repos/create_webhook,post,hook,repos,repos,webhooks,create_webhook,insert,,Create a repository webhook +repos.yaml,/repos/{owner}/{repo}/properties/values,repos/custom-properties-for-repos-create-or-update-repository-values,repos/custom_properties_for_repos_create_or_update_repository_values,patch,,repos,repos,custom_property_values,custom_properties_for_repos_create_or_update_repository_values,update,,Create or update custom property values for a repository +repos.yaml,/repos/{owner}/{repo}/properties/values,repos/custom-properties-for-repos-get-repository-values,repos/custom_properties_for_repos_get_repository_values,get,,repos,repos,custom_property_values,custom_properties_for_repos_get_repository_values,select,,Get all custom property values for a repository +repos.yaml,/user/repository_invitations/{invitation_id},repos/decline-invitation-for-authenticated-user,repos/decline_invitation_for_authenticated_user,delete,,repos,repos,invitations,decline_invitation_for_authenticated_user,exec,,Decline a repository invitation +repos.yaml,/repos/{owner}/{repo},repos/delete,repos/delete,delete,,repos,repos,repos,delete,delete,,Delete a repository +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions,repos/delete-access-restrictions,repos/delete_access_restrictions,delete,,repos,repos,branch_restrictions,delete_access_restrictions,delete,,Delete access restrictions +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins,repos/delete-admin-branch-protection,repos/delete_admin_branch_protection,delete,,repos,repos,admin_branch_protection,delete_admin_branch_protection,delete,,Delete admin branch protection +repos.yaml,/repos/{owner}/{repo}/environments/{environment_name},repos/delete-an-environment,repos/delete_an_environment,delete,,repos,repos,environments,delete_an_environment,delete,,Delete an environment +repos.yaml,/repos/{owner}/{repo}/autolinks/{autolink_id},repos/delete-autolink,repos/delete_autolink,delete,,repos,repos,autolinks,delete_autolink,delete,,Delete an autolink reference from a repository +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection,repos/delete-branch-protection,repos/delete_branch_protection,delete,,repos,repos,branch_protection,delete_branch_protection,delete,,Delete branch protection +repos.yaml,/repos/{owner}/{repo}/comments/{comment_id},repos/delete-commit-comment,repos/delete_commit_comment,delete,,repos,repos,comments,delete_commit_comment,delete,,Delete a commit comment +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures,repos/delete-commit-signature-protection,repos/delete_commit_signature_protection,delete,,repos,repos,commit_signature_protection,delete_commit_signature_protection,delete,,Delete commit signature protection +repos.yaml,/repos/{owner}/{repo}/keys/{key_id},repos/delete-deploy-key,repos/delete_deploy_key,delete,,repos,repos,deploy_keys,delete_deploy_key,delete,,Delete a deploy key +repos.yaml,/repos/{owner}/{repo}/deployments/{deployment_id},repos/delete-deployment,repos/delete_deployment,delete,,repos,repos,deployments,delete_deployment,delete,,Delete a deployment +repos.yaml,/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id},repos/delete-deployment-branch-policy,repos/delete_deployment_branch_policy,delete,,repos,repos,branch_policies,delete_deployment_branch_policy,delete,,Delete a deployment branch policy +repos.yaml,/repos/{owner}/{repo}/contents/{path},repos/delete-file,repos/delete_file,delete,file-commit,repos,repos,contents,delete_file,delete,,Delete a file +repos.yaml,/repos/{owner}/{repo}/invitations/{invitation_id},repos/delete-invitation,repos/delete_invitation,delete,,repos,repos,invitations,delete_invitation,delete,,Delete a repository invitation +repos.yaml,/orgs/{org}/rulesets/{ruleset_id},repos/delete-org-ruleset,repos/delete_org_ruleset,delete,,repos,repos,rules,delete_org_ruleset,delete,,Delete an organization repository ruleset +repos.yaml,/repos/{owner}/{repo}/pages,repos/delete-pages-site,repos/delete_pages_site,delete,,repos,repos,pages,delete_pages_site,delete,,Delete a GitHub Pages site +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews,repos/delete-pull-request-review-protection,repos/delete_pull_request_review_protection,delete,,repos,repos,pr_review_protection,delete_pull_request_review_protection,delete,,Delete pull request review protection +repos.yaml,/repos/{owner}/{repo}/releases/{release_id},repos/delete-release,repos/delete_release,delete,,repos,repos,releases,delete_release,delete,,Delete a release +repos.yaml,/repos/{owner}/{repo}/releases/assets/{asset_id},repos/delete-release-asset,repos/delete_release_asset,delete,,repos,repos,assets,delete_release_asset,delete,,Delete a release asset +repos.yaml,/repos/{owner}/{repo}/rulesets/{ruleset_id},repos/delete-repo-ruleset,repos/delete_repo_ruleset,delete,,repos,repos,rules,delete_repo_ruleset,delete,,Delete a repository ruleset +repos.yaml,/repos/{owner}/{repo}/hooks/{hook_id},repos/delete-webhook,repos/delete_webhook,delete,,repos,repos,webhooks,delete_webhook,delete,,Delete a repository webhook +repos.yaml,/repos/{owner}/{repo}/automated-security-fixes,repos/disable-automated-security-fixes,repos/disable_automated_security_fixes,delete,,repos,repos,security_fixes,disable_automated_security_fixes,exec,,Disable automated security fixes +repos.yaml,/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id},repos/disable-deployment-protection-rule,repos/disable_deployment_protection_rule,delete,,repos,repos,protection_rules,disable_deployment_protection_rule,delete,,Disable a custom protection rule for an environment +repos.yaml,/repos/{owner}/{repo}/immutable-releases,repos/disable-immutable-releases,repos/disable_immutable_releases,delete,,repos,repos,repo_immutable_releases,disable_immutable_releases,delete,,Disable immutable releases +repos.yaml,/repos/{owner}/{repo}/private-vulnerability-reporting,repos/disable-private-vulnerability-reporting,repos/disable_private_vulnerability_reporting,delete,,repos,repos,private_vulnerability_reporting,disable_private_vulnerability_reporting,exec,,Disable private vulnerability reporting for a repository +repos.yaml,/repos/{owner}/{repo}/vulnerability-alerts,repos/disable-vulnerability-alerts,repos/disable_vulnerability_alerts,delete,,repos,repos,vulnerability_alerts,disable_vulnerability_alerts,exec,,Disable vulnerability alerts +repos.yaml,/repos/{owner}/{repo}/automated-security-fixes,repos/enable-automated-security-fixes,repos/enable_automated_security_fixes,put,,repos,repos,security_fixes,enable_automated_security_fixes,exec,,Enable automated security fixes +repos.yaml,/repos/{owner}/{repo}/immutable-releases,repos/enable-immutable-releases,repos/enable_immutable_releases,put,,repos,repos,repo_immutable_releases,enable_immutable_releases,replace,,Enable immutable releases +repos.yaml,/repos/{owner}/{repo}/private-vulnerability-reporting,repos/enable-private-vulnerability-reporting,repos/enable_private_vulnerability_reporting,put,,repos,repos,private_vulnerability_reporting,enable_private_vulnerability_reporting,exec,,Enable private vulnerability reporting for a repository +repos.yaml,/repos/{owner}/{repo}/vulnerability-alerts,repos/enable-vulnerability-alerts,repos/enable_vulnerability_alerts,put,,repos,repos,vulnerability_alerts,enable_vulnerability_alerts,exec,,Enable vulnerability alerts +repos.yaml,/repos/{owner}/{repo}/releases/generate-notes,repos/generate-release-notes,repos/generate_release_notes,post,release-notes-content,repos,repos,releases,generate_release_notes,exec,,Generate release notes content for a release +repos.yaml,/repos/{owner}/{repo},repos/get,repos/get,get,full-repository,repos,repos,details,get,select,,Get a repository +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions,repos/get-access-restrictions,repos/get_access_restrictions,get,branch-restriction-policy,repos,repos,branch_restrictions,get_access_restrictions,select,,Get access restrictions +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins,repos/get-admin-branch-protection,repos/get_admin_branch_protection,get,protected-branch-admin-enforced,repos,repos,admin_branch_protection,get_admin_branch_protection,select,,Get admin branch protection +repos.yaml,/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules,repos/get-all-deployment-protection-rules,repos/get_all_deployment_protection_rules,get,,repos,repos,protection_rules,get_all_deployment_protection_rules,select,,Get all deployment protection rules for an environment +repos.yaml,/repos/{owner}/{repo}/environments,repos/get-all-environments,repos/get_all_environments,get,,repos,repos,environments,get_all_environments,select,,List environments +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts,repos/get-all-status-check-contexts,repos/get_all_status_check_contexts,get,,repos,repos,status_check_contexts,get_all_status_check_contexts,select,,Get all status check contexts +repos.yaml,/repos/{owner}/{repo}/topics,repos/get-all-topics,repos/get_all_topics,get,topic,repos,repos,topics,get_all_topics,select,$.names,Get all repository topics +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps,repos/get-apps-with-access-to-protected-branch,repos/get_apps_with_access_to_protected_branch,get,integration,repos,repos,app_access_restrictions,get_apps_with_access_to_protected_branch,select,,Get apps with access to the protected branch +repos.yaml,/repos/{owner}/{repo}/autolinks/{autolink_id},repos/get-autolink,repos/get_autolink,get,autolink,repos,repos,autolinks,get_autolink,select,,Get an autolink reference of a repository +repos.yaml,/repos/{owner}/{repo}/branches/{branch},repos/get-branch,repos/get_branch,get,branch-with-protection,repos,repos,branch,get_branch,select,,Get a branch +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection,repos/get-branch-protection,repos/get_branch_protection,get,branch-protection,repos,repos,branch_protection,get_branch_protection,select,,Get branch protection +repos.yaml,/repos/{owner}/{repo}/rules/branches/{branch},repos/get-branch-rules,repos/get_branch_rules,get,repository-rule-detailed,repos,repos,rules,get_branch_rules,select,,Get rules for a branch +repos.yaml,/repos/{owner}/{repo}/traffic/clones,repos/get-clones,repos/get_clones,get,clone-traffic,repos,repos,clone_traffic,get_clones,select,,Get repository clones +repos.yaml,/repos/{owner}/{repo}/stats/code_frequency,repos/get-code-frequency-stats,repos/get_code_frequency_stats,get,code-frequency-stat,repos,repos,stats_code_frequency,get_code_frequency_stats,select,,Get the weekly commit activity +repos.yaml,/repos/{owner}/{repo}/collaborators/{username}/permission,repos/get-collaborator-permission-level,repos/get_collaborator_permission_level,get,repository-collaborator-permission,repos,repos,collaborator_permissions,get_collaborator_permission_level,select,,Get repository permissions for a user +repos.yaml,/repos/{owner}/{repo}/commits/{ref}/status,repos/get-combined-status-for-ref,repos/get_combined_status_for_ref,get,combined-commit-status,repos,repos,status_combined,get_combined_status_for_ref,select,,Get the combined status for a specific reference +repos.yaml,/repos/{owner}/{repo}/commits/{ref},repos/get-commit,repos/get_commit,get,commit,repos,repos,commits,get_commit,select,,Get a commit +repos.yaml,/repos/{owner}/{repo}/stats/commit_activity,repos/get-commit-activity-stats,repos/get_commit_activity_stats,get,commit-activity,repos,repos,stats_commit_activity,get_commit_activity_stats,select,,Get the last year of commit activity +repos.yaml,/repos/{owner}/{repo}/comments/{comment_id},repos/get-commit-comment,repos/get_commit_comment,get,commit-comment,repos,repos,comments,get_commit_comment,select,,Get a commit comment +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures,repos/get-commit-signature-protection,repos/get_commit_signature_protection,get,protected-branch-admin-enforced,repos,repos,commit_signature_protection,get_commit_signature_protection,select,,Get commit signature protection +repos.yaml,/repos/{owner}/{repo}/community/profile,repos/get-community-profile-metrics,repos/get_community_profile_metrics,get,community-profile,repos,repos,community,get_community_profile_metrics,select,,Get community profile metrics +repos.yaml,/repos/{owner}/{repo}/contents/{path},repos/get-content,repos/get_content,get,,repos,repos,content_tree,get_content,select,,Get repository content +repos.yaml,/repos/{owner}/{repo}/stats/contributors,repos/get-contributors-stats,repos/get_contributors_stats,get,contributor-activity,repos,repos,stats_contributors,get_contributors_stats,select,,Get all contributor commit activity +repos.yaml,/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id},repos/get-custom-deployment-protection-rule,repos/get_custom_deployment_protection_rule,get,deployment-protection-rule,repos,repos,protection_rules,get_custom_deployment_protection_rule,select,,Get a custom deployment protection rule +repos.yaml,/repos/{owner}/{repo}/keys/{key_id},repos/get-deploy-key,repos/get_deploy_key,get,deploy-key,repos,repos,deploy_keys,get_deploy_key,select,,Get a deploy key +repos.yaml,/repos/{owner}/{repo}/deployments/{deployment_id},repos/get-deployment,repos/get_deployment,get,deployment,repos,repos,deployments,get_deployment,select,,Get a deployment +repos.yaml,/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id},repos/get-deployment-branch-policy,repos/get_deployment_branch_policy,get,deployment-branch-policy,repos,repos,branch_policies,get_deployment_branch_policy,select,,Get a deployment branch policy +repos.yaml,/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id},repos/get-deployment-status,repos/get_deployment_status,get,deployment-status,repos,repos,status_deployments,get_deployment_status,select,,Get a deployment status +repos.yaml,/repos/{owner}/{repo}/environments/{environment_name},repos/get-environment,repos/get_environment,get,environment,repos,repos,environments,get_environment,select,,Get an environment +repos.yaml,/repos/{owner}/{repo}/pages/builds/latest,repos/get-latest-pages-build,repos/get_latest_pages_build,get,page-build,repos,repos,page_build_latest,get_latest_pages_build,select,,Get latest Pages build +repos.yaml,/repos/{owner}/{repo}/releases/latest,repos/get-latest-release,repos/get_latest_release,get,release,repos,repos,releases_latest,get_latest_release,select,,Get the latest release +repos.yaml,/orgs/{org}/rulesets/rule-suites/{rule_suite_id},repos/get-org-rule-suite,repos/get_org_rule_suite,get,,repos,repos,rule_suites,get_org_rule_suite,select,,Get an organization rule suite +repos.yaml,/orgs/{org}/rulesets/rule-suites,repos/get-org-rule-suites,repos/get_org_rule_suites,get,,repos,repos,rule_suites,get_org_rule_suites,select,,List organization rule suites +repos.yaml,/orgs/{org}/rulesets/{ruleset_id},repos/get-org-ruleset,repos/get_org_ruleset,get,repository-ruleset,repos,repos,rules,get_org_ruleset,select,,Get an organization repository ruleset +repos.yaml,/orgs/{org}/rulesets,repos/get-org-rulesets,repos/get_org_rulesets,get,repository-ruleset,repos,repos,rules,get_org_rulesets,select,,Get all organization repository rulesets +repos.yaml,/repos/{owner}/{repo}/pages,repos/get-pages,repos/get_pages,get,page,repos,repos,pages,get_pages,select,,Get a GitHub Pages site +repos.yaml,/repos/{owner}/{repo}/pages/builds/{build_id},repos/get-pages-build,repos/get_pages_build,get,page-build,repos,repos,page_builds,get_pages_build,select,,Get GitHub Pages build +repos.yaml,/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id},repos/get-pages-deployment,repos/get_pages_deployment,get,,repos,repos,repo_pages_deployments,get_pages_deployment,select,,Get the status of a GitHub Pages deployment +repos.yaml,/repos/{owner}/{repo}/pages/health,repos/get-pages-health-check,repos/get_pages_health_check,get,pages-health-check,repos,repos,pages_health_check,get_pages_health_check,select,,Get a DNS health check for GitHub Pages +repos.yaml,/repos/{owner}/{repo}/stats/participation,repos/get-participation-stats,repos/get_participation_stats,get,participation-stats,repos,repos,stats_participation,get_participation_stats,select,,Get the weekly commit count +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews,repos/get-pull-request-review-protection,repos/get_pull_request_review_protection,get,protected-branch-pull-request-review,repos,repos,pr_review_protection,get_pull_request_review_protection,select,,Get pull request review protection +repos.yaml,/repos/{owner}/{repo}/stats/punch_card,repos/get-punch-card-stats,repos/get_punch_card_stats,get,code-frequency-stat,repos,repos,stats_punch_cards,get_punch_card_stats,select,,Get the hourly commit count for each day +repos.yaml,/repos/{owner}/{repo}/readme,repos/get-readme,repos/get_readme,get,content-file,repos,repos,contents,get_readme,select,,Get a repository README +repos.yaml,/repos/{owner}/{repo}/readme/{dir},repos/get-readme-in-directory,repos/get_readme_in_directory,get,content-file,repos,repos,contents,get_readme_in_directory,select,,Get a repository README for a directory +repos.yaml,/repos/{owner}/{repo}/releases/{release_id},repos/get-release,repos/get_release,get,release,repos,repos,releases,get_release,select,,Get a release +repos.yaml,/repos/{owner}/{repo}/releases/assets/{asset_id},repos/get-release-asset,repos/get_release_asset,get,release-asset,repos,repos,assets,get_release_asset,select,,Get a release asset +repos.yaml,/repos/{owner}/{repo}/releases/tags/{tag},repos/get-release-by-tag,repos/get_release_by_tag,get,release,repos,repos,releases,get_release_by_tag,select,,Get a release by tag name +repos.yaml,/repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id},repos/get-repo-rule-suite,repos/get_repo_rule_suite,get,,repos,repos,rule_suites,get_repo_rule_suite,select,,Get a repository rule suite +repos.yaml,/repos/{owner}/{repo}/rulesets/rule-suites,repos/get-repo-rule-suites,repos/get_repo_rule_suites,get,,repos,repos,rule_suites,get_repo_rule_suites,select,,List repository rule suites +repos.yaml,/repos/{owner}/{repo}/rulesets/{ruleset_id},repos/get-repo-ruleset,repos/get_repo_ruleset,get,repository-ruleset,repos,repos,rules,get_repo_ruleset,select,,Get a repository ruleset +repos.yaml,/repos/{owner}/{repo}/rulesets/{ruleset_id}/history,repos/get-repo-ruleset-history,repos/get_repo_ruleset_history,get,,repos,repos,ruleset_history,get_repo_ruleset_history,select,,Get repository ruleset history +repos.yaml,/repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id},repos/get-repo-ruleset-version,repos/get_repo_ruleset_version,get,,repos,repos,ruleset_history,get_repo_ruleset_version,select,$.state,Get repository ruleset version +repos.yaml,/repos/{owner}/{repo}/rulesets,repos/get-repo-rulesets,repos/get_repo_rulesets,get,repository-ruleset,repos,repos,rules,get_repo_rulesets,select,,Get all repository rulesets +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks,repos/get-status-checks-protection,repos/get_status_checks_protection,get,status-check-policy,repos,repos,status_check_protection,get_status_checks_protection,select,,Get status checks protection +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams,repos/get-teams-with-access-to-protected-branch,repos/get_teams_with_access_to_protected_branch,get,team,repos,repos,team_access_restrictions,get_teams_with_access_to_protected_branch,select,,Get teams with access to the protected branch +repos.yaml,/repos/{owner}/{repo}/traffic/popular/paths,repos/get-top-paths,repos/get_top_paths,get,content-traffic,repos,repos,content_traffic,get_top_paths,select,,Get top referral paths +repos.yaml,/repos/{owner}/{repo}/traffic/popular/referrers,repos/get-top-referrers,repos/get_top_referrers,get,referrer-traffic,repos,repos,referrer_traffic,get_top_referrers,select,,Get top referral sources +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users,repos/get-users-with-access-to-protected-branch,repos/get_users_with_access_to_protected_branch,get,simple-user,repos,repos,user_access_restrictions,get_users_with_access_to_protected_branch,select,,Get users with access to the protected branch +repos.yaml,/repos/{owner}/{repo}/traffic/views,repos/get-views,repos/get_views,get,view-traffic,repos,repos,view_traffic,get_views,select,,Get page views +repos.yaml,/repos/{owner}/{repo}/hooks/{hook_id},repos/get-webhook,repos/get_webhook,get,hook,repos,repos,webhooks,get_webhook,select,,Get a repository webhook +repos.yaml,/repos/{owner}/{repo}/hooks/{hook_id}/config,repos/get-webhook-config-for-repo,repos/get_webhook_config_for_repo,get,webhook-config,repos,repos,webhook_config,get_webhook_config_for_repo,select,,Get a webhook configuration for a repository +repos.yaml,/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id},repos/get-webhook-delivery,repos/get_webhook_delivery,get,hook-delivery,repos,repos,webhook_delivery,get_webhook_delivery,select,,Get a delivery for a repository webhook +repos.yaml,/repos/{owner}/{repo}/activity,repos/list-activities,repos/list_activities,get,activity,repos,repos,activities,list_activities,select,,List repository activities +repos.yaml,/repos/{owner}/{repo}/attestations/{subject_digest},repos/list-attestations,repos/list_attestations,get,,repos,repos,attestations,list_attestations,select,$.attestations,List attestations +repos.yaml,/repos/{owner}/{repo}/autolinks,repos/list-autolinks,repos/list_autolinks,get,autolink,repos,repos,autolinks,list_autolinks,select,,List all autolinks of a repository +repos.yaml,/repos/{owner}/{repo}/branches,repos/list-branches,repos/list_branches,get,short-branch,repos,repos,branches,list_branches,select,,List branches +repos.yaml,/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head,repos/list-branches-for-head-commit,repos/list_branches_for_head_commit,get,branch-short,repos,repos,head_commit_branches,list_branches_for_head_commit,select,,List branches for HEAD commit +repos.yaml,/repos/{owner}/{repo}/collaborators,repos/list-collaborators,repos/list_collaborators,get,collaborator,repos,repos,collaborators,list_collaborators,select,,List repository collaborators +repos.yaml,/repos/{owner}/{repo}/commits/{commit_sha}/comments,repos/list-comments-for-commit,repos/list_comments_for_commit,get,commit-comment,repos,repos,comments,list_comments_for_commit,select,,List commit comments +repos.yaml,/repos/{owner}/{repo}/comments,repos/list-commit-comments-for-repo,repos/list_commit_comments_for_repo,get,commit-comment,repos,repos,comments,list_commit_comments_for_repo,select,,List commit comments for a repository +repos.yaml,/repos/{owner}/{repo}/commits/{ref}/statuses,repos/list-commit-statuses-for-ref,repos/list_commit_statuses_for_ref,get,status,repos,repos,status_commits,list_commit_statuses_for_ref,select,,List commit statuses for a reference +repos.yaml,/repos/{owner}/{repo}/commits,repos/list-commits,repos/list_commits,get,commit,repos,repos,commits,list_commits,select,,List commits +repos.yaml,/repos/{owner}/{repo}/contributors,repos/list-contributors,repos/list_contributors,get,contributor,repos,repos,contributors,list_contributors,select,,List repository contributors +repos.yaml,/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps,repos/list-custom-deployment-rule-integrations,repos/list_custom_deployment_rule_integrations,get,,repos,repos,deployment_rule_integrations,list_custom_deployment_rule_integrations,select,$.available_custom_deployment_protection_rule_integrations,List custom deployment rule integrations available for an environment +repos.yaml,/repos/{owner}/{repo}/keys,repos/list-deploy-keys,repos/list_deploy_keys,get,deploy-key,repos,repos,deploy_keys,list_deploy_keys,select,,List deploy keys +repos.yaml,/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies,repos/list-deployment-branch-policies,repos/list_deployment_branch_policies,get,,repos,repos,branch_policies,list_deployment_branch_policies,select,$.branch_policies,List deployment branch policies +repos.yaml,/repos/{owner}/{repo}/deployments/{deployment_id}/statuses,repos/list-deployment-statuses,repos/list_deployment_statuses,get,deployment-status,repos,repos,status_deployments,list_deployment_statuses,select,,List deployment statuses +repos.yaml,/repos/{owner}/{repo}/deployments,repos/list-deployments,repos/list_deployments,get,deployment,repos,repos,deployments,list_deployments,select,,List deployments +repos.yaml,/user/repos,repos/list-for-authenticated-user,repos/list_for_authenticated_user,get,repository,repos,repos,repos_for_auth_user,list_for_authenticated_user,select,,List repositories for the authenticated user +repos.yaml,/orgs/{org}/repos,repos/list-for-org,repos/list_for_org,get,minimal-repository,repos,repos,repos,list_for_org,select,,List organization repositories +repos.yaml,/users/{username}/repos,repos/list-for-user,repos/list_for_user,get,minimal-repository,repos,repos,repos,list_for_user,select,,List repositories for a user +repos.yaml,/repos/{owner}/{repo}/forks,repos/list-forks,repos/list_forks,get,minimal-repository,repos,repos,forks,list_forks,select,,List forks +repos.yaml,/repos/{owner}/{repo}/invitations,repos/list-invitations,repos/list_invitations,get,repository-invitation,repos,repos,invitations,list_invitations,select,,List repository invitations +repos.yaml,/user/repository_invitations,repos/list-invitations-for-authenticated-user,repos/list_invitations_for_authenticated_user,get,repository-invitation,repos,repos,invitations,list_invitations_for_authenticated_user,select,,List repository invitations for the authenticated user +repos.yaml,/repos/{owner}/{repo}/languages,repos/list-languages,repos/list_languages,get,language,repos,repos,repos,list_languages,exec,,List repository languages +repos.yaml,/repos/{owner}/{repo}/pages/builds,repos/list-pages-builds,repos/list_pages_builds,get,page-build,repos,repos,page_builds,list_pages_builds,select,,List GitHub Pages builds +repos.yaml,/repositories,repos/list-public,repos/list_public,get,minimal-repository,repos,repos,repos,list_public,select,,List public repositories +repos.yaml,/repos/{owner}/{repo}/commits/{commit_sha}/pulls,repos/list-pull-requests-associated-with-commit,repos/list_pull_requests_associated_with_commit,get,pull-request-simple,repos,repos,commit_pr_branches,list_pull_requests_associated_with_commit,select,,List pull requests associated with a commit +repos.yaml,/repos/{owner}/{repo}/releases/{release_id}/assets,repos/list-release-assets,repos/list_release_assets,get,release-asset,repos,repos,assets,list_release_assets,select,,List release assets +repos.yaml,/repos/{owner}/{repo}/releases,repos/list-releases,repos/list_releases,get,release,repos,repos,releases,list_releases,select,,List releases +repos.yaml,/repos/{owner}/{repo}/tags,repos/list-tags,repos/list_tags,get,tag,repos,repos,tags,list_tags,select,,List repository tags +repos.yaml,/repos/{owner}/{repo}/teams,repos/list-teams,repos/list_teams,get,team,repos,repos,teams,list_teams,select,,List repository teams +repos.yaml,/repos/{owner}/{repo}/hooks/{hook_id}/deliveries,repos/list-webhook-deliveries,repos/list_webhook_deliveries,get,hook-delivery-item,repos,repos,webhook_deliveries,list_webhook_deliveries,select,,List deliveries for a repository webhook +repos.yaml,/repos/{owner}/{repo}/hooks,repos/list-webhooks,repos/list_webhooks,get,hook,repos,repos,webhooks,list_webhooks,select,,List repository webhooks +repos.yaml,/repos/{owner}/{repo}/merges,repos/merge,repos/merge,post,commit,repos,repos,branch,merge,exec,,Merge a branch +repos.yaml,/repos/{owner}/{repo}/merge-upstream,repos/merge-upstream,repos/merge_upstream,post,merged-upstream,repos,repos,branch,merge_upstream,exec,,Sync a fork branch with the upstream repository +repos.yaml,/repos/{owner}/{repo}/hooks/{hook_id}/pings,repos/ping-webhook,repos/ping_webhook,post,,repos,repos,webhooks,ping_webhook,exec,,Ping a repository webhook +repos.yaml,/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts,repos/redeliver-webhook-delivery,repos/redeliver_webhook_delivery,post,,repos,repos,webhook_delivery,redeliver_webhook_delivery,exec,,Redeliver a delivery for a repository webhook +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps,repos/remove-app-access-restrictions,repos/remove_app_access_restrictions,delete,integration,repos,repos,app_access_restrictions,remove_app_access_restrictions,delete,,Remove app access restrictions +repos.yaml,/repos/{owner}/{repo}/collaborators/{username},repos/remove-collaborator,repos/remove_collaborator,delete,,repos,repos,collaborators,remove_collaborator,delete,,Remove a repository collaborator +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts,repos/remove-status-check-contexts,repos/remove_status_check_contexts,delete,,repos,repos,status_check_contexts,remove_status_check_contexts,delete,,Remove status check contexts +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks,repos/remove-status-check-protection,repos/remove_status_check_protection,delete,,repos,repos,status_check_protection,remove_status_check_protection,delete,,Remove status check protection +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams,repos/remove-team-access-restrictions,repos/remove_team_access_restrictions,delete,team,repos,repos,team_access_restrictions,remove_team_access_restrictions,delete,,Remove team access restrictions +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users,repos/remove-user-access-restrictions,repos/remove_user_access_restrictions,delete,simple-user,repos,repos,user_access_restrictions,remove_user_access_restrictions,delete,,Remove user access restrictions +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/rename,repos/rename-branch,repos/rename_branch,post,branch-with-protection,repos,repos,branch,rename_branch,exec,,Rename a branch +repos.yaml,/repos/{owner}/{repo}/topics,repos/replace-all-topics,repos/replace_all_topics,put,topic,repos,repos,topics,replace_all_topics,replace,,Replace all repository topics +repos.yaml,/repos/{owner}/{repo}/tarball/{ref},repos/download-tarball-archive,repos/download_tarball_archive,get,,repos,repos,skip_this_resource,repos/download_tarball_archive,exec,,Download a repository archive (tar) +repos.yaml,/repos/{owner}/{repo}/zipball/{ref},repos/download-zipball-archive,repos/download_zipball_archive,get,,repos,repos,skip_this_resource,repos/download_zipball_archive,exec,,Download a repository archive (zip) +repos.yaml,/repos/{owner}/{repo}/pages/builds,repos/request-pages-build,repos/request_pages_build,post,page-build-status,repos,repos,page_builds,request_pages_build,exec,,Request a GitHub Pages build +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins,repos/set-admin-branch-protection,repos/set_admin_branch_protection,post,protected-branch-admin-enforced,repos,repos,admin_branch_protection,set_admin_branch_protection,replace,,Set admin branch protection +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps,repos/set-app-access-restrictions,repos/set_app_access_restrictions,put,integration,repos,repos,app_access_restrictions,set_app_access_restrictions,replace,,Set app access restrictions +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts,repos/set-status-check-contexts,repos/set_status_check_contexts,put,,repos,repos,status_check_contexts,set_status_check_contexts,replace,,Set status check contexts +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams,repos/set-team-access-restrictions,repos/set_team_access_restrictions,put,team,repos,repos,team_access_restrictions,set_team_access_restrictions,replace,,Set team access restrictions +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users,repos/set-user-access-restrictions,repos/set_user_access_restrictions,put,simple-user,repos,repos,user_access_restrictions,set_user_access_restrictions,replace,,Set user access restrictions +repos.yaml,/repos/{owner}/{repo}/hooks/{hook_id}/tests,repos/test-push-webhook,repos/test_push_webhook,post,,repos,repos,webhooks,test_push_webhook,exec,,Test the push repository webhook +repos.yaml,/repos/{owner}/{repo}/transfer,repos/transfer,repos/transfer,post,minimal-repository,repos,repos,repos,transfer,exec,,Transfer a repository +repos.yaml,/repos/{owner}/{repo},repos/update,repos/update,patch,full-repository,repos,repos,repos,update,update,,Update a repository +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection,repos/update-branch-protection,repos/update_branch_protection,put,protected-branch,repos,repos,branch_protection,update_branch_protection,replace,,Update branch protection +repos.yaml,/repos/{owner}/{repo}/comments/{comment_id},repos/update-commit-comment,repos/update_commit_comment,patch,commit-comment,repos,repos,comments,update_commit_comment,update,,Update a commit comment +repos.yaml,/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id},repos/update-deployment-branch-policy,repos/update_deployment_branch_policy,put,deployment-branch-policy,repos,repos,branch_policies,update_deployment_branch_policy,replace,,Update a deployment branch policy +repos.yaml,/repos/{owner}/{repo}/pages,repos/update-information-about-pages-site,repos/update_information_about_pages_site,put,,repos,repos,pages,update_information_about_pages_site,replace,,Update information about a GitHub Pages site +repos.yaml,/repos/{owner}/{repo}/invitations/{invitation_id},repos/update-invitation,repos/update_invitation,patch,repository-invitation,repos,repos,invitations,update_invitation,update,,Update a repository invitation +repos.yaml,/orgs/{org}/rulesets/{ruleset_id},repos/update-org-ruleset,repos/update_org_ruleset,put,repository-ruleset,repos,repos,rules,update_org_ruleset,replace,,Update an organization repository ruleset +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews,repos/update-pull-request-review-protection,repos/update_pull_request_review_protection,patch,protected-branch-pull-request-review,repos,repos,pr_review_protection,update_pull_request_review_protection,update,,Update pull request review protection +repos.yaml,/repos/{owner}/{repo}/releases/{release_id},repos/update-release,repos/update_release,patch,release,repos,repos,releases,update_release,update,,Update a release +repos.yaml,/repos/{owner}/{repo}/releases/assets/{asset_id},repos/update-release-asset,repos/update_release_asset,patch,release-asset,repos,repos,assets,update_release_asset,update,,Update a release asset +repos.yaml,/repos/{owner}/{repo}/rulesets/{ruleset_id},repos/update-repo-ruleset,repos/update_repo_ruleset,put,repository-ruleset,repos,repos,rules,update_repo_ruleset,replace,,Update a repository ruleset +repos.yaml,/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks,repos/update-status-check-protection,repos/update_status_check_protection,patch,status-check-policy,repos,repos,status_check_protection,update_status_check_protection,update,,Update status check protection +repos.yaml,/repos/{owner}/{repo}/hooks/{hook_id},repos/update-webhook,repos/update_webhook,patch,hook,repos,repos,webhooks,update_webhook,update,,Update a repository webhook +repos.yaml,/repos/{owner}/{repo}/hooks/{hook_id}/config,repos/update-webhook-config-for-repo,repos/update_webhook_config_for_repo,patch,webhook-config,repos,repos,webhook_config,update_webhook_config_for_repo,update,,Update a webhook configuration for a repository +repos.yaml,/repos/{owner}/{repo}/releases/{release_id}/assets,repos/upload-release-asset,repos/upload_release_asset,post,release-asset,repos,repos,assets,upload_release_asset,insert,,Upload a release asset +search.yaml,/search/code,search/code,search/code,get,,search,search,code,code,select,,Search code +search.yaml,/search/commits,search/commits,search/commits,get,,search,search,commits,commits,select,,Search commits +search.yaml,/search/issues,search/issues-and-pull-requests,search/issues_and_pull_requests,get,,search,search,issues_and_pull_requests,issues_and_pull_requests,select,,Search issues and pull requests +search.yaml,/search/labels,search/labels,search/labels,get,,search,search,labels,labels,select,,Search labels +search.yaml,/search/repositories,search/repos,search/repos,get,,search,search,repos,repos,select,,Search repositories +search.yaml,/search/topics,search/topics,search/topics,get,,search,search,topics,topics,select,,Search topics +search.yaml,/search/users,search/users,search/users,get,,search,search,users,users,select,,Search users +secret_scanning.yaml,/repos/{owner}/{repo}/secret-scanning/push-protection-bypasses,secret-scanning/create-push-protection-bypass,secret_scanning/create_push_protection_bypass,post,,secret-scanning,secret_scanning,repo_push_protection_bypasses,create_push_protection_bypass,insert,,Create a push protection bypass +secret_scanning.yaml,/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number},secret-scanning/get-alert,secret_scanning/get_alert,get,secret-scanning-alert,secret-scanning,secret_scanning,alerts,get_alert,select,,Get a secret scanning alert +secret_scanning.yaml,/repos/{owner}/{repo}/secret-scanning/scan-history,secret-scanning/get-scan-history,secret_scanning/get_scan_history,get,,secret-scanning,secret_scanning,repo_secret_scan_history,get_scan_history,select,,Get secret scanning scan history for a repository +secret_scanning.yaml,/orgs/{org}/secret-scanning/alerts,secret-scanning/list-alerts-for-org,secret_scanning/list_alerts_for_org,get,organization-secret-scanning-alert,secret-scanning,secret_scanning,alerts,list_alerts_for_org,select,,List secret scanning alerts for an organization +secret_scanning.yaml,/repos/{owner}/{repo}/secret-scanning/alerts,secret-scanning/list-alerts-for-repo,secret_scanning/list_alerts_for_repo,get,secret-scanning-alert,secret-scanning,secret_scanning,alerts,list_alerts_for_repo,select,,List secret scanning alerts for a repository +secret_scanning.yaml,/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations,secret-scanning/list-locations-for-alert,secret_scanning/list_locations_for_alert,get,secret-scanning-location,secret-scanning,secret_scanning,locations,list_locations_for_alert,select,,List locations for a secret scanning alert +secret_scanning.yaml,/orgs/{org}/secret-scanning/pattern-configurations,secret-scanning/list-org-pattern-configs,secret_scanning/list_org_pattern_configs,get,,secret-scanning,secret_scanning,org_secret_scanning_pattern_configurations,list_org_pattern_configs,select,,List organization pattern configurations +secret_scanning.yaml,/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number},secret-scanning/update-alert,secret_scanning/update_alert,patch,secret-scanning-alert,secret-scanning,secret_scanning,alerts,update_alert,update,,Update a secret scanning alert +secret_scanning.yaml,/orgs/{org}/secret-scanning/pattern-configurations,secret-scanning/update-org-pattern-configs,secret_scanning/update_org_pattern_configs,patch,,secret-scanning,secret_scanning,org_secret_scanning_pattern_configurations,update_org_pattern_configs,update,,Update organization pattern configurations +security_advisories.yaml,/repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks,security-advisories/create-fork,security_advisories/create_fork,post,,security-advisories,security_advisories,security_advisory_forks,create_fork,insert,,Create a temporary private fork +security_advisories.yaml,/repos/{owner}/{repo}/security-advisories/reports,security-advisories/create-private-vulnerability-report,security_advisories/create_private_vulnerability_report,post,repository-advisory,security-advisories,security_advisories,private_vulnerability_reports,create_private_vulnerability_report,insert,,Privately report a security vulnerability +security_advisories.yaml,/repos/{owner}/{repo}/security-advisories,security-advisories/create-repository-advisory,security_advisories/create_repository_advisory,post,repository-advisory,security-advisories,security_advisories,repository_advisories,create_repository_advisory,insert,,Create a repository security advisory +security_advisories.yaml,/repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve,security-advisories/create-repository-advisory-cve-request,security_advisories/create_repository_advisory_cve_request,post,,security-advisories,security_advisories,repository_advisories,create_repository_advisory_cve_request,insert,,Request a CVE for a repository security advisory +security_advisories.yaml,/advisories/{ghsa_id},security-advisories/get-global-advisory,security_advisories/get_global_advisory,get,global-advisory,security-advisories,security_advisories,global_advisories,get_global_advisory,select,,Get a global security advisory +security_advisories.yaml,/repos/{owner}/{repo}/security-advisories/{ghsa_id},security-advisories/get-repository-advisory,security_advisories/get_repository_advisory,get,repository-advisory,security-advisories,security_advisories,repository_advisories,get_repository_advisory,select,,Get a repository security advisory +security_advisories.yaml,/advisories,security-advisories/list-global-advisories,security_advisories/list_global_advisories,get,global-advisory,security-advisories,security_advisories,global_advisories,list_global_advisories,select,,List global security advisories +security_advisories.yaml,/orgs/{org}/security-advisories,security-advisories/list-org-repository-advisories,security_advisories/list_org_repository_advisories,get,repository-advisory,security-advisories,security_advisories,repository_advisories,list_org_repository_advisories,select,,List repository security advisories for an organization +security_advisories.yaml,/repos/{owner}/{repo}/security-advisories,security-advisories/list-repository-advisories,security_advisories/list_repository_advisories,get,repository-advisory,security-advisories,security_advisories,repository_advisories,list_repository_advisories,select,,List repository security advisories +security_advisories.yaml,/repos/{owner}/{repo}/security-advisories/{ghsa_id},security-advisories/update-repository-advisory,security_advisories/update_repository_advisory,patch,repository-advisory,security-advisories,security_advisories,repository_advisories,update_repository_advisory,update,,Update a repository security advisory +teams.yaml,/teams/{team_id}/members/{username},teams/add-member-legacy,teams/add_member_legacy,put,,teams,teams,members,add_member_legacy,replace,,Add team member (Legacy) +teams.yaml,/orgs/{org}/teams/{team_slug}/memberships/{username},teams/add-or-update-membership-for-user-in-org,teams/add_or_update_membership_for_user_in_org,put,team-membership,teams,teams,membership,add_or_update_membership_for_user_in_org,replace,,Add or update team membership for a user +teams.yaml,/teams/{team_id}/memberships/{username},teams/add-or-update-membership-for-user-legacy,teams/add_or_update_membership_for_user_legacy,put,team-membership,teams,teams,membership,add_or_update_membership_for_user_legacy,replace,,Add or update team membership for a user (Legacy) +teams.yaml,/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo},teams/add-or-update-repo-permissions-in-org,teams/add_or_update_repo_permissions_in_org,put,,teams,teams,permissions,add_or_update_repo_permissions_in_org,replace,,Add or update team repository permissions +teams.yaml,/teams/{team_id}/repos/{owner}/{repo},teams/add-or-update-repo-permissions-legacy,teams/add_or_update_repo_permissions_legacy,put,,teams,teams,permissions,add_or_update_repo_permissions_legacy,replace,,Add or update team repository permissions (Legacy) +teams.yaml,/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo},teams/check-permissions-for-repo-in-org,teams/check_permissions_for_repo_in_org,get,team-repository,teams,teams,permissions,check_permissions_for_repo_in_org,select,,Check team permissions for a repository +teams.yaml,/teams/{team_id}/repos/{owner}/{repo},teams/check-permissions-for-repo-legacy,teams/check_permissions_for_repo_legacy,get,team-repository,teams,teams,permissions,check_permissions_for_repo_legacy,select,,Check team permissions for a repository (Legacy) +teams.yaml,/orgs/{org}/teams,teams/create,teams/create,post,team-full,teams,teams,teams,create,insert,,Create a team +teams.yaml,/orgs/{org}/teams/{team_slug},teams/delete-in-org,teams/delete_in_org,delete,,teams,teams,teams,delete_in_org,delete,,Delete a team +teams.yaml,/teams/{team_id},teams/delete-legacy,teams/delete_legacy,delete,,teams,teams,teams,delete_legacy,delete,,Delete a team (Legacy) +teams.yaml,/orgs/{org}/teams/{team_slug},teams/get-by-name,teams/get_by_name,get,team-full,teams,teams,details,get_by_name,select,,Get a team by name +teams.yaml,/teams/{team_id},teams/get-legacy,teams/get_legacy,get,team-full,teams,teams,teams,get_legacy,select,,Get a team (Legacy) +teams.yaml,/teams/{team_id}/members/{username},teams/get-member-legacy,teams/get_member_legacy,get,,teams,teams,members,get_member_legacy,select,,Get team member (Legacy) +teams.yaml,/orgs/{org}/teams/{team_slug}/memberships/{username},teams/get-membership-for-user-in-org,teams/get_membership_for_user_in_org,get,team-membership,teams,teams,membership,get_membership_for_user_in_org,select,,Get team membership for a user +teams.yaml,/teams/{team_id}/memberships/{username},teams/get-membership-for-user-legacy,teams/get_membership_for_user_legacy,get,team-membership,teams,teams,membership,get_membership_for_user_legacy,select,,Get team membership for a user (Legacy) +teams.yaml,/orgs/{org}/teams,teams/list,teams/list,get,team,teams,teams,teams,list,select,,List teams +teams.yaml,/orgs/{org}/teams/{team_slug}/teams,teams/list-child-in-org,teams/list_child_in_org,get,team,teams,teams,child_teams,list_child_in_org,select,,List child teams +teams.yaml,/teams/{team_id}/teams,teams/list-child-legacy,teams/list_child_legacy,get,team,teams,teams,child_teams,list_child_legacy,select,,List child teams (Legacy) +teams.yaml,/user/teams,teams/list-for-authenticated-user,teams/list_for_authenticated_user,get,team-full,teams,teams,teams_for_auth_user,list_for_authenticated_user,select,,List teams for the authenticated user +teams.yaml,/orgs/{org}/teams/{team_slug}/members,teams/list-members-in-org,teams/list_members_in_org,get,simple-user,teams,teams,members,list_members_in_org,select,,List team members +teams.yaml,/teams/{team_id}/members,teams/list-members-legacy,teams/list_members_legacy,get,simple-user,teams,teams,members,list_members_legacy,select,,List team members (Legacy) +teams.yaml,/orgs/{org}/teams/{team_slug}/invitations,teams/list-pending-invitations-in-org,teams/list_pending_invitations_in_org,get,organization-invitation,teams,teams,invitations,list_pending_invitations_in_org,select,,List pending team invitations +teams.yaml,/teams/{team_id}/invitations,teams/list-pending-invitations-legacy,teams/list_pending_invitations_legacy,get,organization-invitation,teams,teams,invitations,list_pending_invitations_legacy,select,,List pending team invitations (Legacy) +teams.yaml,/orgs/{org}/teams/{team_slug}/repos,teams/list-repos-in-org,teams/list_repos_in_org,get,minimal-repository,teams,teams,repos,list_repos_in_org,select,,List team repositories +teams.yaml,/teams/{team_id}/repos,teams/list-repos-legacy,teams/list_repos_legacy,get,minimal-repository,teams,teams,repos,list_repos_legacy,select,,List team repositories (Legacy) +teams.yaml,/teams/{team_id}/members/{username},teams/remove-member-legacy,teams/remove_member_legacy,delete,,teams,teams,members,remove_member_legacy,delete,,Remove team member (Legacy) +teams.yaml,/orgs/{org}/teams/{team_slug}/memberships/{username},teams/remove-membership-for-user-in-org,teams/remove_membership_for_user_in_org,delete,,teams,teams,membership,remove_membership_for_user_in_org,delete,,Remove team membership for a user +teams.yaml,/teams/{team_id}/memberships/{username},teams/remove-membership-for-user-legacy,teams/remove_membership_for_user_legacy,delete,,teams,teams,membership,remove_membership_for_user_legacy,delete,,Remove team membership for a user (Legacy) +teams.yaml,/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo},teams/remove-repo-in-org,teams/remove_repo_in_org,delete,,teams,teams,repos,remove_repo_in_org,delete,,Remove a repository from a team +teams.yaml,/teams/{team_id}/repos/{owner}/{repo},teams/remove-repo-legacy,teams/remove_repo_legacy,delete,,teams,teams,repos,remove_repo_legacy,delete,,Remove a repository from a team (Legacy) +teams.yaml,/orgs/{org}/teams/{team_slug},teams/update-in-org,teams/update_in_org,patch,team-full,teams,teams,teams,update_in_org,update,,Update a team +teams.yaml,/teams/{team_id},teams/update-legacy,teams/update_legacy,patch,team-full,teams,teams,teams,update_legacy,update,,Update a team (Legacy) +users.yaml,/user/emails,users/add-email-for-authenticated-user,users/add_email_for_authenticated_user,post,email,users,users,emails,add_email_for_authenticated_user,insert,,Add an email address for the authenticated user +users.yaml,/user/social_accounts,users/add-social-account-for-authenticated-user,users/add_social_account_for_authenticated_user,post,social-account,users,users,social_accounts,add_social_account_for_authenticated_user,insert,,Add social accounts for the authenticated user +users.yaml,/user/blocks/{username},users/block,users/block,put,,users,users,blocking,block,exec,,Block a user +users.yaml,/user/blocks/{username},users/check-blocked,users/check_blocked,get,,users,users,blocking,check_blocked,exec,,Check if a user is blocked by the authenticated user +users.yaml,/users/{username}/following/{target_user},users/check-following-for-user,users/check_following_for_user,get,,users,users,following,check_following_for_user,exec,,Check if a user follows another user +users.yaml,/user/following/{username},users/check-person-is-followed-by-authenticated,users/check_person_is_followed_by_authenticated,get,,users,users,following,check_person_is_followed_by_authenticated,exec,,Check if a person is followed by the authenticated user +users.yaml,/user/gpg_keys,users/create-gpg-key-for-authenticated-user,users/create_gpg_key_for_authenticated_user,post,gpg-key,users,users,gpg_keys,create_gpg_key_for_authenticated_user,insert,,Create a GPG key for the authenticated user +users.yaml,/user/keys,users/create-public-ssh-key-for-authenticated-user,users/create_public_ssh_key_for_authenticated_user,post,key,users,users,keys,create_public_ssh_key_for_authenticated_user,insert,,Create a public SSH key for the authenticated user +users.yaml,/user/ssh_signing_keys,users/create-ssh-signing-key-for-authenticated-user,users/create_ssh_signing_key_for_authenticated_user,post,ssh-signing-key,users,users,ssh_signing_keys,create_ssh_signing_key_for_authenticated_user,insert,,Create a SSH signing key for the authenticated user +users.yaml,/users/{username}/attestations/delete-request,users/delete-attestations-bulk,users/delete_attestations_bulk,post,,users,users,attestations_bulk_deletes,delete_attestations_bulk,exec,,Delete attestations in bulk +users.yaml,/users/{username}/attestations/{attestation_id},users/delete-attestations-by-id,users/delete_attestations_by_id,delete,,users,users,attestations,delete_attestations_by_id,delete,,Delete attestations by ID +users.yaml,/users/{username}/attestations/digest/{subject_digest},users/delete-attestations-by-subject-digest,users/delete_attestations_by_subject_digest,delete,,users,users,attestations,delete_attestations_by_subject_digest,delete,,Delete attestations by subject digest +users.yaml,/user/emails,users/delete-email-for-authenticated-user,users/delete_email_for_authenticated_user,delete,,users,users,emails,delete_email_for_authenticated_user,delete,,Delete an email address for the authenticated user +users.yaml,/user/gpg_keys/{gpg_key_id},users/delete-gpg-key-for-authenticated-user,users/delete_gpg_key_for_authenticated_user,delete,,users,users,gpg_keys,delete_gpg_key_for_authenticated_user,delete,,Delete a GPG key for the authenticated user +users.yaml,/user/keys/{key_id},users/delete-public-ssh-key-for-authenticated-user,users/delete_public_ssh_key_for_authenticated_user,delete,,users,users,keys,delete_public_ssh_key_for_authenticated_user,delete,,Delete a public SSH key for the authenticated user +users.yaml,/user/social_accounts,users/delete-social-account-for-authenticated-user,users/delete_social_account_for_authenticated_user,delete,,users,users,social_accounts,delete_social_account_for_authenticated_user,delete,,Delete social accounts for the authenticated user +users.yaml,/user/ssh_signing_keys/{ssh_signing_key_id},users/delete-ssh-signing-key-for-authenticated-user,users/delete_ssh_signing_key_for_authenticated_user,delete,,users,users,ssh_signing_keys,delete_ssh_signing_key_for_authenticated_user,delete,,Delete an SSH signing key for the authenticated user +users.yaml,/user/following/{username},users/follow,users/follow,put,,users,users,following,follow,exec,,Follow a user +users.yaml,/user,users/get-authenticated,users/get_authenticated,get,,users,users,users,get_authenticated,select,,Get the authenticated user +users.yaml,/user/{account_id},users/get-by-id,users/get_by_id,get,,users,users,users,get_by_id,select,,Get a user using their ID +users.yaml,/users/{username},users/get-by-username,users/get_by_username,get,,users,users,users,get_by_username,select,,Get a user +users.yaml,/users/{username}/hovercard,users/get-context-for-user,users/get_context_for_user,get,hovercard,users,users,hovercard,get_context_for_user,select,$.contexts,Get contextual information for a user +users.yaml,/user/gpg_keys/{gpg_key_id},users/get-gpg-key-for-authenticated-user,users/get_gpg_key_for_authenticated_user,get,gpg-key,users,users,gpg_keys,get_gpg_key_for_authenticated_user,select,,Get a GPG key for the authenticated user +users.yaml,/user/keys/{key_id},users/get-public-ssh-key-for-authenticated-user,users/get_public_ssh_key_for_authenticated_user,get,key,users,users,keys,get_public_ssh_key_for_authenticated_user,select,,Get a public SSH key for the authenticated user +users.yaml,/user/ssh_signing_keys/{ssh_signing_key_id},users/get-ssh-signing-key-for-authenticated-user,users/get_ssh_signing_key_for_authenticated_user,get,ssh-signing-key,users,users,ssh_signing_keys,get_ssh_signing_key_for_authenticated_user,select,,Get an SSH signing key for the authenticated user +users.yaml,/users,users/list,users/list,get,simple-user,users,users,public_users,list,select,,List users +users.yaml,/users/{username}/attestations/{subject_digest},users/list-attestations,users/list_attestations,get,,users,users,attestations,list_attestations,select,$.attestations,List attestations +users.yaml,/users/{username}/attestations/bulk-list,users/list-attestations-bulk,users/list_attestations_bulk,post,,users,users,attestations_bulk_list,list_attestations_bulk,insert,,List attestations by bulk subject digests +users.yaml,/user/blocks,users/list-blocked-by-authenticated-user,users/list_blocked_by_authenticated_user,get,simple-user,users,users,blocking,list_blocked_by_authenticated_user,select,,List users blocked by the authenticated user +users.yaml,/user/emails,users/list-emails-for-authenticated-user,users/list_emails_for_authenticated_user,get,email,users,users,emails,list_emails_for_authenticated_user,select,,List email addresses for the authenticated user +users.yaml,/user/following,users/list-followed-by-authenticated-user,users/list_followed_by_authenticated_user,get,simple-user,users,users,following,list_followed_by_authenticated_user,select,,List the people the authenticated user follows +users.yaml,/user/followers,users/list-followers-for-authenticated-user,users/list_followers_for_authenticated_user,get,simple-user,users,users,followers,list_followers_for_authenticated_user,select,,List followers of the authenticated user +users.yaml,/users/{username}/followers,users/list-followers-for-user,users/list_followers_for_user,get,simple-user,users,users,followers,list_followers_for_user,select,,List followers of a user +users.yaml,/users/{username}/following,users/list-following-for-user,users/list_following_for_user,get,simple-user,users,users,following,list_following_for_user,select,,List the people a user follows +users.yaml,/user/gpg_keys,users/list-gpg-keys-for-authenticated-user,users/list_gpg_keys_for_authenticated_user,get,gpg-key,users,users,gpg_keys,list_gpg_keys_for_authenticated_user,select,,List GPG keys for the authenticated user +users.yaml,/users/{username}/gpg_keys,users/list-gpg-keys-for-user,users/list_gpg_keys_for_user,get,gpg-key,users,users,gpg_keys,list_gpg_keys_for_user,select,,List GPG keys for a user +users.yaml,/user/public_emails,users/list-public-emails-for-authenticated-user,users/list_public_emails_for_authenticated_user,get,email,users,users,public_emails,list_public_emails_for_authenticated_user,select,,List public email addresses for the authenticated user +users.yaml,/users/{username}/keys,users/list-public-keys-for-user,users/list_public_keys_for_user,get,key-simple,users,users,keys,list_public_keys_for_user,select,,List public keys for a user +users.yaml,/user/keys,users/list-public-ssh-keys-for-authenticated-user,users/list_public_ssh_keys_for_authenticated_user,get,key,users,users,keys,list_public_ssh_keys_for_authenticated_user,select,,List public SSH keys for the authenticated user +users.yaml,/user/social_accounts,users/list-social-accounts-for-authenticated-user,users/list_social_accounts_for_authenticated_user,get,social-account,users,users,social_accounts,list_social_accounts_for_authenticated_user,select,,List social accounts for the authenticated user +users.yaml,/users/{username}/social_accounts,users/list-social-accounts-for-user,users/list_social_accounts_for_user,get,social-account,users,users,social_accounts,list_social_accounts_for_user,select,,List social accounts for a user +users.yaml,/user/ssh_signing_keys,users/list-ssh-signing-keys-for-authenticated-user,users/list_ssh_signing_keys_for_authenticated_user,get,ssh-signing-key,users,users,ssh_signing_keys,list_ssh_signing_keys_for_authenticated_user,select,,List SSH signing keys for the authenticated user +users.yaml,/users/{username}/ssh_signing_keys,users/list-ssh-signing-keys-for-user,users/list_ssh_signing_keys_for_user,get,ssh-signing-key,users,users,ssh_signing_keys,list_ssh_signing_keys_for_user,select,,List SSH signing keys for a user +users.yaml,/user/email/visibility,users/set-primary-email-visibility-for-authenticated-user,users/set_primary_email_visibility_for_authenticated_user,patch,email,users,users,emails,set_primary_email_visibility_for_authenticated_user,update,,Set primary email visibility for the authenticated user +users.yaml,/user/blocks/{username},users/unblock,users/unblock,delete,,users,users,blocking,unblock,exec,,Unblock a user +users.yaml,/user/following/{username},users/unfollow,users/unfollow,delete,,users,users,following,unfollow,exec,,Unfollow a user +users.yaml,/user,users/update-authenticated,users/update_authenticated,patch,private-user,users,users,users,update_authenticated,update,,Update the authenticated user +actions.yaml,/repos/{owner}/{repo}/actions/concurrency_groups,actions/list-concurrency-groups-for-repository,actions/list_concurrency_groups_for_repository,get,concurrency-group-list,actions,actions,concurrency_groups,list_concurrency_groups_for_repository,select,$.concurrency_groups,List concurrency groups for a repository +actions.yaml,/repos/{owner}/{repo}/actions/concurrency_groups/{concurrency_group_name},actions/get-concurrency-group-for-repository,actions/get_concurrency_group_for_repository,get,concurrency-group,actions,actions,concurrency_groups,get_concurrency_group_for_repository,select,,Get a concurrency group for a repository +actions.yaml,/repos/{owner}/{repo}/actions/runs/{run_id}/concurrency_groups,actions/list-concurrency-groups-for-workflow-run,actions/list_concurrency_groups_for_workflow_run,get,concurrency-group-run-list,actions,actions,workflow_run_concurrency_groups,list_concurrency_groups_for_workflow_run,select,$.concurrency_groups,List concurrency groups for a workflow run +agents.yaml,/orgs/{org}/agents/secrets,agents/list-org-secrets,agents/list_org_secrets,get,,agents,agents,secrets,list_org_secrets,select,$.secrets,List organization secrets +agents.yaml,/orgs/{org}/agents/secrets/public-key,agents/get-org-public-key,agents/get_org_public_key,get,actions-public-key,agents,agents,public_keys,get_org_public_key,select,,Get an organization public key +agents.yaml,/orgs/{org}/agents/secrets/{secret_name},agents/get-org-secret,agents/get_org_secret,get,organization-actions-secret,agents,agents,secrets,get_org_secret,select,,Get an organization secret +agents.yaml,/orgs/{org}/agents/secrets/{secret_name},agents/create-or-update-org-secret,agents/create_or_update_org_secret,put,empty-object,agents,agents,secrets,create_or_update_org_secret,insert,,Create or update an organization secret +agents.yaml,/orgs/{org}/agents/secrets/{secret_name},agents/delete-org-secret,agents/delete_org_secret,delete,,agents,agents,secrets,delete_org_secret,delete,,Delete an organization secret +agents.yaml,/orgs/{org}/agents/secrets/{secret_name}/repositories,agents/list-selected-repos-for-org-secret,agents/list_selected_repos_for_org_secret,get,,agents,agents,repos_for_secret,list_selected_repos_for_org_secret,select,$.repositories,List selected repositories for an organization secret +agents.yaml,/orgs/{org}/agents/secrets/{secret_name}/repositories,agents/set-selected-repos-for-org-secret,agents/set_selected_repos_for_org_secret,put,,agents,agents,repos_for_secret,set_selected_repos_for_org_secret,replace,,Set selected repositories for an organization secret +agents.yaml,/orgs/{org}/agents/secrets/{secret_name}/repositories/{repository_id},agents/add-selected-repo-to-org-secret,agents/add_selected_repo_to_org_secret,put,,agents,agents,repos_for_secret,add_selected_repo_to_org_secret,insert,,Add selected repository to an organization secret +agents.yaml,/orgs/{org}/agents/secrets/{secret_name}/repositories/{repository_id},agents/remove-selected-repo-from-org-secret,agents/remove_selected_repo_from_org_secret,delete,,agents,agents,repos_for_secret,remove_selected_repo_from_org_secret,delete,,Remove selected repository from an organization secret +agents.yaml,/orgs/{org}/agents/variables,agents/list-org-variables,agents/list_org_variables,get,,agents,agents,variables,list_org_variables,select,$.variables,List organization variables +agents.yaml,/orgs/{org}/agents/variables,agents/create-org-variable,agents/create_org_variable,post,empty-object,agents,agents,variables,create_org_variable,insert,,Create an organization variable +agents.yaml,/orgs/{org}/agents/variables/{name},agents/get-org-variable,agents/get_org_variable,get,organization-actions-variable,agents,agents,variables,get_org_variable,select,,Get an organization variable +agents.yaml,/orgs/{org}/agents/variables/{name},agents/update-org-variable,agents/update_org_variable,patch,,agents,agents,variables,update_org_variable,update,,Update an organization variable +agents.yaml,/orgs/{org}/agents/variables/{name},agents/delete-org-variable,agents/delete_org_variable,delete,,agents,agents,variables,delete_org_variable,delete,,Delete an organization variable +agents.yaml,/orgs/{org}/agents/variables/{name}/repositories,agents/list-selected-repos-for-org-variable,agents/list_selected_repos_for_org_variable,get,,agents,agents,repos_for_org_variable,list_selected_repos_for_org_variable,select,$.repositories,List selected repositories for an organization variable +agents.yaml,/orgs/{org}/agents/variables/{name}/repositories,agents/set-selected-repos-for-org-variable,agents/set_selected_repos_for_org_variable,put,,agents,agents,repos_for_org_variable,set_selected_repos_for_org_variable,replace,,Set selected repositories for an organization variable +agents.yaml,/orgs/{org}/agents/variables/{name}/repositories/{repository_id},agents/add-selected-repo-to-org-variable,agents/add_selected_repo_to_org_variable,put,,agents,agents,repos_for_org_variable,add_selected_repo_to_org_variable,insert,,Add selected repository to an organization variable +agents.yaml,/orgs/{org}/agents/variables/{name}/repositories/{repository_id},agents/remove-selected-repo-from-org-variable,agents/remove_selected_repo_from_org_variable,delete,,agents,agents,repos_for_org_variable,remove_selected_repo_from_org_variable,delete,,Remove selected repository from an organization variable +agents.yaml,/repos/{owner}/{repo}/agents/organization-secrets,agents/list-repo-organization-secrets,agents/list_repo_organization_secrets,get,,agents,agents,repo_org_secrets,list_repo_organization_secrets,select,$.secrets,List repository organization secrets +agents.yaml,/repos/{owner}/{repo}/agents/organization-variables,agents/list-repo-organization-variables,agents/list_repo_organization_variables,get,,agents,agents,repo_org_variables,list_repo_organization_variables,select,$.variables,List repository organization variables +agents.yaml,/repos/{owner}/{repo}/agents/secrets,agents/list-repo-secrets,agents/list_repo_secrets,get,,agents,agents,secrets,list_repo_secrets,select,$.secrets,List repository secrets +agents.yaml,/repos/{owner}/{repo}/agents/secrets/public-key,agents/get-repo-public-key,agents/get_repo_public_key,get,actions-public-key,agents,agents,public_keys,get_repo_public_key,select,,Get a repository public key +agents.yaml,/repos/{owner}/{repo}/agents/secrets/{secret_name},agents/get-repo-secret,agents/get_repo_secret,get,actions-secret,agents,agents,secrets,get_repo_secret,select,,Get a repository secret +agents.yaml,/repos/{owner}/{repo}/agents/secrets/{secret_name},agents/create-or-update-repo-secret,agents/create_or_update_repo_secret,put,empty-object,agents,agents,secrets,create_or_update_repo_secret,insert,,Create or update a repository secret +agents.yaml,/repos/{owner}/{repo}/agents/secrets/{secret_name},agents/delete-repo-secret,agents/delete_repo_secret,delete,,agents,agents,secrets,delete_repo_secret,delete,,Delete a repository secret +agents.yaml,/repos/{owner}/{repo}/agents/variables,agents/list-repo-variables,agents/list_repo_variables,get,,agents,agents,variables,list_repo_variables,select,$.variables,List repository variables +agents.yaml,/repos/{owner}/{repo}/agents/variables,agents/create-repo-variable,agents/create_repo_variable,post,empty-object,agents,agents,variables,create_repo_variable,insert,,Create a repository variable +agents.yaml,/repos/{owner}/{repo}/agents/variables/{name},agents/get-repo-variable,agents/get_repo_variable,get,actions-variable,agents,agents,variables,get_repo_variable,select,,Get a repository variable +agents.yaml,/repos/{owner}/{repo}/agents/variables/{name},agents/update-repo-variable,agents/update_repo_variable,patch,,agents,agents,variables,update_repo_variable,update,,Update a repository variable +agents.yaml,/repos/{owner}/{repo}/agents/variables/{name},agents/delete-repo-variable,agents/delete_repo_variable,delete,,agents,agents,variables,delete_repo_variable,delete,,Delete a repository variable +agent_tasks.yaml,/agents/repos/{owner}/{repo}/tasks,agent-tasks/create-task-in-repo,agent_tasks/create_task_in_repo,post,,agent-tasks,agent_tasks,repo_tasks,create_task_in_repo,insert,,Start a task +billing.yaml,/organizations/{org}/settings/billing/ai_credit/usage,billing/get-github-billing-ai-credit-usage-report-org,billing/get_github_billing_ai_credit_usage_report_org,get,,billing,billing,org_ai_credit_usage,get_github_billing_ai_credit_usage_report_org,select,$.usageItems,Get billing AI credit usage report for an organization +billing.yaml,/organizations/{org}/settings/billing/budgets,billing/create-organization-budget,billing/create_organization_budget,post,create-budget,billing,billing,org_budgets,create_organization_budget,insert,,Create a budget for an organization +billing.yaml,/users/{username}/settings/billing/ai_credit/usage,billing/get-github-billing-ai-credit-usage-report-user,billing/get_github_billing_ai_credit_usage_report_user,get,,billing,billing,ai_credit_usage,get_github_billing_ai_credit_usage_report_user,select,$.usageItems,Get billing AI credit usage report for a user +code_quality.yaml,/repos/{owner}/{repo}/code-quality/findings,code-quality/list-findings-for-repo,code_quality/list_findings_for_repo,get,list-findings-for-repoResponse,code-quality,code_quality,findings,list_findings_for_repo,select,,List code quality findings for a repository +code_quality.yaml,/repos/{owner}/{repo}/code-quality/findings/{finding_number},code-quality/get-finding,code_quality/get_finding,get,code-quality-finding,code-quality,code_quality,findings,get_finding,select,,Get a code quality finding +code_quality.yaml,/repos/{owner}/{repo}/code-quality/setup,code-quality/get-setup,code_quality/get_setup,get,code-quality-setup,code-quality,code_quality,setup,get_setup,select,,Get a code quality setup configuration +code_quality.yaml,/repos/{owner}/{repo}/code-quality/setup,code-quality/update-setup,code_quality/update_setup,patch,empty-object,code-quality,code_quality,setup,update_setup,update,,Update a code quality setup configuration +copilot.yaml,/enterprises/{enterprise}/copilot/metrics/reports/repos-1-day,copilot/copilot-enterprise-repos-one-day-report,copilot/copilot_enterprise_repos_one_day_report,get,copilot-usage-metrics-1-day-report,copilot,copilot,copilot_repos_one_day_report,copilot_enterprise_repos_one_day_report,select,,Get Copilot enterprise repository report for a specific day +copilot.yaml,/enterprises/{enterprise}/copilot/metrics/reports/user-teams-1-day,copilot/copilot-enterprise-user-teams-one-day-report,copilot/copilot_enterprise_user_teams_one_day_report,get,copilot-usage-metrics-1-day-report,copilot,copilot,copilot_user_teams_one_day_report,copilot_enterprise_user_teams_one_day_report,select,,Get Copilot enterprise user-teams report for a specific day +copilot.yaml,/enterprises/{enterprise}/copilot/policies/coding_agent,copilot/set-enterprise-coding-agent-policy,copilot/set_enterprise_coding_agent_policy,put,,copilot,copilot,coding_agent_policy,set_enterprise_coding_agent_policy,replace,,Set the coding agent policy for an enterprise +copilot.yaml,/enterprises/{enterprise}/copilot/policies/coding_agent/organizations,copilot/add-organizations-to-enterprise-coding-agent-policy,copilot/add_organizations_to_enterprise_coding_agent_policy,post,,copilot,copilot,coding_agent_policy_orgs,add_organizations_to_enterprise_coding_agent_policy,insert,,Add organizations to the enterprise coding agent policy +copilot.yaml,/enterprises/{enterprise}/copilot/policies/coding_agent/organizations,copilot/remove-organizations-from-enterprise-coding-agent-policy,copilot/remove_organizations_from_enterprise_coding_agent_policy,delete,,copilot,copilot,coding_agent_policy_orgs,remove_organizations_from_enterprise_coding_agent_policy,delete,,Remove organizations from the enterprise coding agent policy +copilot.yaml,/orgs/{org}/copilot/metrics/reports/repos-1-day,copilot/copilot-organization-repos-one-day-report,copilot/copilot_organization_repos_one_day_report,get,copilot-usage-metrics-1-day-report,copilot,copilot,org_copilot_repos_one_day_report,copilot_organization_repos_one_day_report,select,,Get Copilot organization repository report for a specific day +copilot.yaml,/orgs/{org}/copilot/metrics/reports/user-teams-1-day,copilot/copilot-organization-user-teams-one-day-report,copilot/copilot_organization_user_teams_one_day_report,get,copilot-usage-metrics-1-day-report,copilot,copilot,org_copilot_user_teams_one_day_report,copilot_organization_user_teams_one_day_report,select,,Get Copilot organization user-teams report for a specific day +copilot.yaml,/repos/{owner}/{repo}/copilot/cloud-agent/configuration,copilot/get-copilot-cloud-agent-configuration,copilot/get_copilot_cloud_agent_configuration,get,,copilot,copilot,repo_cloud_agent_configuration,get_copilot_cloud_agent_configuration,select,,Get Copilot cloud agent configuration for a repository +copilot_spaces.yaml,/orgs/{org}/copilot-spaces,copilot-spaces/list-for-org,copilot_spaces/list_for_org,get,,copilot-spaces,copilot_spaces,spaces,list_for_org,select,$.spaces,List organization Copilot Spaces +copilot_spaces.yaml,/orgs/{org}/copilot-spaces,copilot-spaces/create-for-org,copilot_spaces/create_for_org,post,copilot-space,copilot-spaces,copilot_spaces,spaces,create_for_org,insert,,Create an organization Copilot Space +copilot_spaces.yaml,/orgs/{org}/copilot-spaces/{space_number},copilot-spaces/get-for-org,copilot_spaces/get_for_org,get,copilot-space,copilot-spaces,copilot_spaces,spaces,get_for_org,select,,Get an organization Copilot Space +copilot_spaces.yaml,/orgs/{org}/copilot-spaces/{space_number},copilot-spaces/update-for-org,copilot_spaces/update_for_org,put,copilot-space,copilot-spaces,copilot_spaces,spaces,update_for_org,replace,,Set an organization Copilot Space +copilot_spaces.yaml,/orgs/{org}/copilot-spaces/{space_number},copilot-spaces/delete-for-org,copilot_spaces/delete_for_org,delete,,copilot-spaces,copilot_spaces,spaces,delete_for_org,delete,,Delete an organization Copilot Space +copilot_spaces.yaml,/orgs/{org}/copilot-spaces/{space_number}/collaborators,copilot-spaces/list-collaborators-for-org,copilot_spaces/list_collaborators_for_org,get,,copilot-spaces,copilot_spaces,collaborators,list_collaborators_for_org,select,$.collaborators,List collaborators for an organization Copilot Space +copilot_spaces.yaml,/orgs/{org}/copilot-spaces/{space_number}/collaborators,copilot-spaces/add-collaborator-for-org,copilot_spaces/add_collaborator_for_org,post,copilot-space-collaborator,copilot-spaces,copilot_spaces,collaborators,add_collaborator_for_org,insert,,Add a collaborator to an organization Copilot Space +copilot_spaces.yaml,/orgs/{org}/copilot-spaces/{space_number}/collaborators/{actor_type}/{actor_identifier},copilot-spaces/update-collaborator-for-org,copilot_spaces/update_collaborator_for_org,put,copilot-space-collaborator,copilot-spaces,copilot_spaces,collaborators,update_collaborator_for_org,replace,,Set a collaborator role for an organization Copilot Space +copilot_spaces.yaml,/orgs/{org}/copilot-spaces/{space_number}/collaborators/{actor_type}/{actor_identifier},copilot-spaces/remove-collaborator-for-org,copilot_spaces/remove_collaborator_for_org,delete,,copilot-spaces,copilot_spaces,collaborators,remove_collaborator_for_org,delete,,Remove a collaborator from an organization Copilot Space +copilot_spaces.yaml,/orgs/{org}/copilot-spaces/{space_number}/resources,copilot-spaces/list-resources-for-org,copilot_spaces/list_resources_for_org,get,,copilot-spaces,copilot_spaces,resources,list_resources_for_org,select,$.resources,List resources for an organization Copilot Space +copilot_spaces.yaml,/orgs/{org}/copilot-spaces/{space_number}/resources,copilot-spaces/create-resource-for-org,copilot_spaces/create_resource_for_org,post,copilot-space-resource,copilot-spaces,copilot_spaces,resources,create_resource_for_org,insert,,Create a resource for an organization Copilot Space +copilot_spaces.yaml,/orgs/{org}/copilot-spaces/{space_number}/resources/{space_resource_id},copilot-spaces/get-resource-for-org,copilot_spaces/get_resource_for_org,get,copilot-space-resource,copilot-spaces,copilot_spaces,resources,get_resource_for_org,select,,Get a resource for an organization Copilot Space +copilot_spaces.yaml,/orgs/{org}/copilot-spaces/{space_number}/resources/{space_resource_id},copilot-spaces/update-resource-for-org,copilot_spaces/update_resource_for_org,put,copilot-space-resource,copilot-spaces,copilot_spaces,resources,update_resource_for_org,replace,,Set a resource for an organization Copilot Space +copilot_spaces.yaml,/orgs/{org}/copilot-spaces/{space_number}/resources/{space_resource_id},copilot-spaces/delete-resource-for-org,copilot_spaces/delete_resource_for_org,delete,,copilot-spaces,copilot_spaces,resources,delete_resource_for_org,delete,,Delete a resource from an organization Copilot Space +copilot_spaces.yaml,/users/{username}/copilot-spaces,copilot-spaces/list-for-user,copilot_spaces/list_for_user,get,,copilot-spaces,copilot_spaces,spaces,list_for_user,select,$.spaces,List Copilot Spaces for a user +copilot_spaces.yaml,/users/{username}/copilot-spaces,copilot-spaces/create-for-user,copilot_spaces/create_for_user,post,copilot-space,copilot-spaces,copilot_spaces,spaces,create_for_user,insert,,Create a Copilot Space for a user +copilot_spaces.yaml,/users/{username}/copilot-spaces/{space_number},copilot-spaces/get-for-user,copilot_spaces/get_for_user,get,copilot-space,copilot-spaces,copilot_spaces,spaces,get_for_user,select,,Get a Copilot Space for a user +copilot_spaces.yaml,/users/{username}/copilot-spaces/{space_number},copilot-spaces/update-for-user,copilot_spaces/update_for_user,put,copilot-space,copilot-spaces,copilot_spaces,spaces,update_for_user,replace,,Set a Copilot Space for a user +copilot_spaces.yaml,/users/{username}/copilot-spaces/{space_number},copilot-spaces/delete-for-user,copilot_spaces/delete_for_user,delete,,copilot-spaces,copilot_spaces,spaces,delete_for_user,delete,,Delete a Copilot Space for a user +copilot_spaces.yaml,/users/{username}/copilot-spaces/{space_number}/collaborators,copilot-spaces/list-collaborators-for-user,copilot_spaces/list_collaborators_for_user,get,,copilot-spaces,copilot_spaces,collaborators,list_collaborators_for_user,select,$.collaborators,List collaborators for a Copilot Space for a user +copilot_spaces.yaml,/users/{username}/copilot-spaces/{space_number}/collaborators,copilot-spaces/add-collaborator-for-user,copilot_spaces/add_collaborator_for_user,post,copilot-space-collaborator,copilot-spaces,copilot_spaces,collaborators,add_collaborator_for_user,insert,,Add a collaborator to a Copilot Space for a user +copilot_spaces.yaml,/users/{username}/copilot-spaces/{space_number}/collaborators/{actor_type}/{actor_identifier},copilot-spaces/update-collaborator-for-user,copilot_spaces/update_collaborator_for_user,put,copilot-space-collaborator,copilot-spaces,copilot_spaces,collaborators,update_collaborator_for_user,replace,,Set a collaborator role for a Copilot Space for a user +copilot_spaces.yaml,/users/{username}/copilot-spaces/{space_number}/collaborators/{actor_type}/{actor_identifier},copilot-spaces/remove-collaborator-for-user,copilot_spaces/remove_collaborator_for_user,delete,,copilot-spaces,copilot_spaces,collaborators,remove_collaborator_for_user,delete,,Remove a collaborator from a Copilot Space for a user +copilot_spaces.yaml,/users/{username}/copilot-spaces/{space_number}/resources,copilot-spaces/list-resources-for-user,copilot_spaces/list_resources_for_user,get,,copilot-spaces,copilot_spaces,resources,list_resources_for_user,select,$.resources,List resources for a Copilot Space for a user +copilot_spaces.yaml,/users/{username}/copilot-spaces/{space_number}/resources,copilot-spaces/create-resource-for-user,copilot_spaces/create_resource_for_user,post,copilot-space-resource,copilot-spaces,copilot_spaces,resources,create_resource_for_user,insert,,Create a resource for a Copilot Space for a user +copilot_spaces.yaml,/users/{username}/copilot-spaces/{space_number}/resources/{space_resource_id},copilot-spaces/get-resource-for-user,copilot_spaces/get_resource_for_user,get,copilot-space-resource,copilot-spaces,copilot_spaces,resources,get_resource_for_user,select,,Get a resource for a Copilot Space for a user +copilot_spaces.yaml,/users/{username}/copilot-spaces/{space_number}/resources/{space_resource_id},copilot-spaces/update-resource-for-user,copilot_spaces/update_resource_for_user,put,copilot-space-resource,copilot-spaces,copilot_spaces,resources,update_resource_for_user,replace,,Set a resource for a Copilot Space for a user +copilot_spaces.yaml,/users/{username}/copilot-spaces/{space_number}/resources/{space_resource_id},copilot-spaces/delete-resource-for-user,copilot_spaces/delete_resource_for_user,delete,,copilot-spaces,copilot_spaces,resources,delete_resource_for_user,delete,,Delete a resource from a Copilot Space for a user +dependabot.yaml,/enterprises/{enterprise}/dependabot/repository-access,dependabot/repository-access-for-enterprise,dependabot/repository_access_for_enterprise,get,dependabot-repository-access-details,dependabot,dependabot,enterprise_dependabot_repository_access,repository_access_for_enterprise,select,,Lists the repositories Dependabot can access in an enterprise +dependabot.yaml,/enterprises/{enterprise}/dependabot/repository-access,dependabot/update-repository-access-for-enterprise,dependabot/update_repository_access_for_enterprise,patch,,dependabot,dependabot,enterprise_dependabot_repository_access,update_repository_access_for_enterprise,update,,Updates Dependabot's repository access list for an enterprise +dependabot.yaml,/enterprises/{enterprise}/dependabot/repository-access/default-level,dependabot/set-repository-access-default-level-for-enterprise,dependabot/set_repository_access_default_level_for_enterprise,put,,dependabot,dependabot,enterprise_dependabot_repository_access,set_repository_access_default_level_for_enterprise,replace,,Set the default repository access level for Dependabot in an enterprise +dependency_graph.yaml,/repos/{owner}/{repo}/dependency-graph/sbom/fetch-report/{sbom_uuid},dependency-graph/fetch-sbom-report,dependency_graph/fetch_sbom_report,get,,dependency-graph,dependency_graph,sbom_reports,fetch_sbom_report,exec,,Fetch a software bill of materials (SBOM) for a repository. +dependency_graph.yaml,/repos/{owner}/{repo}/dependency-graph/sbom/generate-report,dependency-graph/generate-sbom-report,dependency_graph/generate_sbom_report,get,,dependency-graph,dependency_graph,sbom_reports,generate_sbom_report,exec,,Request generation of a software bill of materials (SBOM) for a repository. +interactions.yaml,/orgs/{org}/interaction-limits/pulls/creation-cap,interactions/get-pull-request-creation-cap-for-org,interactions/get_pull_request_creation_cap_for_org,get,,interactions,interactions,org_pull_request_creation_caps,get_pull_request_creation_cap_for_org,select,,Get pull request creation cap for an org +interactions.yaml,/orgs/{org}/interaction-limits/pulls/creation-cap,interactions/update-pull-request-creation-cap-for-org,interactions/update_pull_request_creation_cap_for_org,patch,,interactions,interactions,org_pull_request_creation_caps,update_pull_request_creation_cap_for_org,update,,Update pull request creation cap for an org +interactions.yaml,/repos/{owner}/{repo}/interaction-limits/pulls/bypass-list,interactions/get-pull-request-bypass-list-for-repo,interactions/get_pull_request_bypass_list_for_repo,get,get-pull-request-bypass-list-for-repoResponse,interactions,interactions,repo_pull_request_bypass_lists,get_pull_request_bypass_list_for_repo,select,,Get pull request creation cap bypass list for a repository +interactions.yaml,/repos/{owner}/{repo}/interaction-limits/pulls/bypass-list,interactions/set-pull-request-bypass-list-for-repo,interactions/set_pull_request_bypass_list_for_repo,put,,interactions,interactions,repo_pull_request_bypass_lists,set_pull_request_bypass_list_for_repo,replace,,Add users to the pull request creation cap bypass list for a repository +interactions.yaml,/repos/{owner}/{repo}/interaction-limits/pulls/bypass-list,interactions/remove-pull-request-bypass-list-for-repo,interactions/remove_pull_request_bypass_list_for_repo,delete,,interactions,interactions,repo_pull_request_bypass_lists,remove_pull_request_bypass_list_for_repo,delete,,Remove users from the pull request creation cap bypass list for a repository +interactions.yaml,/repos/{owner}/{repo}/interaction-limits/pulls/creation-cap,interactions/get-pull-request-creation-cap-for-repo,interactions/get_pull_request_creation_cap_for_repo,get,,interactions,interactions,repo_pull_request_creation_caps,get_pull_request_creation_cap_for_repo,select,,Get pull request creation cap for a repository +interactions.yaml,/repos/{owner}/{repo}/interaction-limits/pulls/creation-cap,interactions/update-pull-request-creation-cap-for-repo,interactions/update_pull_request_creation_cap_for_repo,patch,,interactions,interactions,repo_pull_request_creation_caps,update_pull_request_creation_cap_for_repo,update,,Update pull request creation cap for a repository +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/suggestions,issues/list-suggestions,issues/list_suggestions,get,list-suggestionsResponse,issues,issues,issue_suggestions,list_suggestions,select,,List issue suggestions +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/suggestions/{suggestion_id}/approve,issues/approve-suggestion,issues/approve_suggestion,post,issue-suggestion,issues,issues,issue_suggestions,approve_suggestion,exec,,Approve an issue suggestion +issues.yaml,/repos/{owner}/{repo}/issues/{issue_number}/suggestions/{suggestion_id}/dismiss,issues/dismiss-suggestion,issues/dismiss_suggestion,post,issue-suggestion,issues,issues,issue_suggestions,dismiss_suggestion,exec,,Dismiss an issue suggestion +orgs.yaml,/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs,orgs/create-cluster-deployment-records-job,orgs/create_cluster_deployment_records_job,post,,orgs,orgs,cluster_deployment_records_jobs,create_cluster_deployment_records_job,insert,,Create a cluster deployment records job +orgs.yaml,/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs/{job_id},orgs/get-cluster-deployment-records-job,orgs/get_cluster_deployment_records_job,get,,orgs,orgs,cluster_deployment_records_jobs,get_cluster_deployment_records_job,select,,Get cluster deployment records job status +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/merge-async,pulls/merge-async,pulls/merge_async,put,pull-request-merge-async-result,pulls,pulls,pull_request_async_merges,merge_async,exec,,Merge a pull request asynchronously +pulls.yaml,/repos/{owner}/{repo}/pulls/{pull_number}/merge-async/{uuid},pulls/get-merge-async-result,pulls/get_merge_async_result,get,pull-request-merge-async-result,pulls,pulls,pull_request_async_merges,get_merge_async_result,select,,Get the result of an asynchronous merge +pulls.yaml,/repos/{owner}/{repo}/stacks,pull-request-stacks/list,pull_request_stacks/list,get,listResponse,pulls,pulls,stacks,list,select,,List pull request stacks +pulls.yaml,/repos/{owner}/{repo}/stacks,pull-request-stacks/create,pull_request_stacks/create,post,,pulls,pulls,stacks,create,insert,,Create a pull request stack +pulls.yaml,/repos/{owner}/{repo}/stacks/{stack_number},pull-request-stacks/get,pull_request_stacks/get,get,,pulls,pulls,stacks,get,select,,Get a pull request stack +pulls.yaml,/repos/{owner}/{repo}/stacks/{stack_number}/add,pull-request-stacks/add,pull_request_stacks/add,post,,pulls,pulls,stacks,add,exec,,Add pull requests to a pull request stack +pulls.yaml,/repos/{owner}/{repo}/stacks/{stack_number}/unstack,pull-request-stacks/unstack,pull_request_stacks/unstack,post,,pulls,pulls,stacks,unstack,exec,,Remove pull requests from a pull request stack +repos.yaml,/repos/{owner}/{repo}/hash-algorithm,repos/get-hash-algorithm,repos/get_hash_algorithm,get,repository-hash-algorithm,repos,repos,hash_algorithm,get_hash_algorithm,select,,Get the hash algorithm for a repository +repos.yaml,/repos/{owner}/{repo}/issue-types,repos/list-issue-types,repos/list_issue_types,get,list-issue-typesResponse,repos,repos,issue_types,list_issue_types,select,,List issue types for a repository +secret_scanning.yaml,/orgs/{org}/secret-scanning/custom-patterns,secret-scanning/list-org-custom-patterns,secret_scanning/list_org_custom_patterns,get,list-org-custom-patternsResponse,secret-scanning,secret_scanning,org_custom_patterns,list_org_custom_patterns,select,,List organization custom patterns +secret_scanning.yaml,/orgs/{org}/secret-scanning/custom-patterns,secret-scanning/bulk-create-org-custom-patterns,secret_scanning/bulk_create_org_custom_patterns,post,,secret-scanning,secret_scanning,org_custom_patterns,bulk_create_org_custom_patterns,insert,,Bulk create organization custom patterns +secret_scanning.yaml,/orgs/{org}/secret-scanning/custom-patterns,secret-scanning/bulk-delete-org-custom-patterns,secret_scanning/bulk_delete_org_custom_patterns,delete,,secret-scanning,secret_scanning,org_custom_patterns,bulk_delete_org_custom_patterns,delete,,Bulk delete organization custom patterns +secret_scanning.yaml,/orgs/{org}/secret-scanning/custom-patterns/{pattern_id},secret-scanning/update-org-custom-pattern,secret_scanning/update_org_custom_pattern,patch,secret-scanning-custom-pattern,secret-scanning,secret_scanning,org_custom_patterns,update_org_custom_pattern,update,,Update an organization custom pattern +secret_scanning.yaml,/repos/{owner}/{repo}/secret-scanning/custom-patterns,secret-scanning/list-repo-custom-patterns,secret_scanning/list_repo_custom_patterns,get,list-repo-custom-patternsResponse,secret-scanning,secret_scanning,repo_custom_patterns,list_repo_custom_patterns,select,,List repository custom patterns +secret_scanning.yaml,/repos/{owner}/{repo}/secret-scanning/custom-patterns,secret-scanning/bulk-create-repo-custom-patterns,secret_scanning/bulk_create_repo_custom_patterns,post,,secret-scanning,secret_scanning,repo_custom_patterns,bulk_create_repo_custom_patterns,insert,,Bulk create repository custom patterns +secret_scanning.yaml,/repos/{owner}/{repo}/secret-scanning/custom-patterns,secret-scanning/bulk-delete-repo-custom-patterns,secret_scanning/bulk_delete_repo_custom_patterns,delete,,secret-scanning,secret_scanning,repo_custom_patterns,bulk_delete_repo_custom_patterns,delete,,Bulk delete repository custom patterns +secret_scanning.yaml,/repos/{owner}/{repo}/secret-scanning/custom-patterns/{pattern_id},secret-scanning/update-repo-custom-pattern,secret_scanning/update_repo_custom_pattern,patch,secret-scanning-custom-pattern,secret-scanning,secret_scanning,repo_custom_patterns,update_repo_custom_pattern,update,,Update a repository custom pattern diff --git a/provider-dev/config/provider_config.json b/provider-dev/config/provider_config.json new file mode 100644 index 0000000..15de5cc --- /dev/null +++ b/provider-dev/config/provider_config.json @@ -0,0 +1 @@ +{"auth": {"type": "basic", "username_var": "STACKQL_GITHUB_USERNAME", "password_var": "STACKQL_GITHUB_PASSWORD"}} diff --git a/provider-dev/config/servers.json b/provider-dev/config/servers.json new file mode 100644 index 0000000..49e86bc --- /dev/null +++ b/provider-dev/config/servers.json @@ -0,0 +1 @@ +[{"url": "https://api.github.com"}] diff --git a/provider-dev/config/service_config.json b/provider-dev/config/service_config.json new file mode 100644 index 0000000..b0c068e --- /dev/null +++ b/provider-dev/config/service_config.json @@ -0,0 +1,6 @@ +{ + "pagination": { + "requestToken": {"key": "", "location": "request"}, + "responseToken": {"key": "Link", "location": "header"} + } +} diff --git a/provider-dev/docgen/provider-data/headerContent2.txt b/provider-dev/docgen/provider-data/headerContent2.txt index ec6649a..475958d 100644 --- a/provider-dev/docgen/provider-data/headerContent2.txt +++ b/provider-dev/docgen/provider-data/headerContent2.txt @@ -1,43 +1,430 @@ -See also: -[[` SHOW `]](https://stackql.io/docs/language-spec/show) [[` DESCRIBE `]](https://stackql.io/docs/language-spec/describe) [[` REGISTRY `]](https://stackql.io/docs/language-spec/registry) -* * * - -## Installation - -To pull the latest version of the `github` provider, run the following command: - -```bash -REGISTRY PULL github; -``` -> To view previous provider versions or to pull a specific provider version, see [here](https://stackql.io/docs/language-spec/registry). - -## Authentication - -The following system environment variables are used for authentication by default: - -- - GitHub username (login) -- - GitHub Personal Access Token (see Creating a personal access token) - -These variables are sourced at runtime (from the local machine or as CI variables/secrets). - -
- -Using different environment variables - -To use different environment variables (instead of the defaults), use the `--auth` flag of the `stackql` program. For example: - -```bash - -AUTH='{ "github": { "type": "basic", "username_var": "YOUR_GITHUB_USERNAME_VAR", "password_var": "YOUR_GITHUB_PASSWORD_VAR" }}' -stackql shell --auth="${AUTH}" - -``` -or using PowerShell: - -```powershell - -$Auth = "{ 'github': { 'type': 'basic', 'username_var': 'YOUR_GITHUB_USERNAME_VAR', 'password_var': 'YOUR_GITHUB_PASSWORD_VAR' }}" -stackql.exe shell --auth=$Auth - -``` -
\ No newline at end of file +See also: +[[` SHOW `]](https://stackql.io/docs/language-spec/show) [[` DESCRIBE `]](https://stackql.io/docs/language-spec/describe) [[` REGISTRY `]](https://stackql.io/docs/language-spec/registry) +* * * + +## Installation + +To pull the latest version of the `github` provider, run the following command: + +```bash +REGISTRY PULL github; +``` +> To view previous provider versions or to pull a specific provider version, see [here](https://stackql.io/docs/language-spec/registry). + +## Authentication + +The following system environment variables are used for authentication by default: + +- - GitHub username (login) +- - GitHub Personal Access Token (see Creating a personal access token) + +These variables are sourced at runtime (from the local machine or as CI variables/secrets). + +
+ +Using different environment variables + +To use different environment variables (instead of the defaults), use the `--auth` flag of the `stackql` program. For example: + +```bash + +AUTH='{ "github": { "type": "basic", "username_var": "YOUR_GITHUB_USERNAME_VAR", "password_var": "YOUR_GITHUB_PASSWORD_VAR" }}' +stackql shell --auth="${AUTH}" + +``` +or using PowerShell: + +```powershell + +$Auth = "{ 'github': { 'type': 'basic', 'username_var': 'YOUR_GITHUB_USERNAME_VAR', 'password_var': 'YOUR_GITHUB_PASSWORD_VAR' }}" +stackql.exe shell --auth=$Auth + +``` +
+ +### Authenticating with the GitHub CLI (no PAT required) + +If you are logged in to the [GitHub CLI](https://cli.github.com/) (`gh auth login`), you can reuse its stored OAuth token instead of creating a Personal Access Token. The token is supplied to the provider using the `bearer` auth type: + +```bash +export STACKQL_GITHUB_TOKEN=$(gh auth token) +stackql exec --auth='{"github":{"type":"bearer","credentialsenvvar":"STACKQL_GITHUB_TOKEN"}}' \ + "SELECT login FROM github.users.users" +``` + +or using PowerShell: + +```powershell +$env:STACKQL_GITHUB_TOKEN = (gh auth token) +$Auth = "{ 'github': { 'type': 'bearer', 'credentialsenvvar': 'STACKQL_GITHUB_TOKEN' }}" +stackql.exe shell --auth=$Auth +``` + +The same `bearer` configuration works with any GitHub token source, including the `GITHUB_TOKEN` injected into GitHub Actions workflows (set `credentialsenvvar` to `GITHUB_TOKEN`), so no PAT is required in CI either. + +### Using the github provider with agent assistants (MCP) + +StackQL ships an MCP server (`stackql mcp`), so agent assistants such as Claude Code, Claude Desktop, Codex and other MCP clients can query GitHub with SQL, pre-authenticated and without a PAT. + +First, store the GitHub CLI token in a dotenv file that the server sources at startup: + +```bash +mkdir -p ~/.stackql +echo "STACKQL_GITHUB_TOKEN=$(gh auth token)" > ~/.stackql/github.env +``` + +Then register the server with your MCP client, passing the `bearer` auth configuration and the env file. + +For Claude Code: + +```bash +claude mcp add stackql -- stackql mcp \ + --auth='{"github":{"type":"bearer","credentialsenvvar":"STACKQL_GITHUB_TOKEN"}}' \ + --env.file="$HOME/.stackql/github.env" +``` + +For Claude Desktop (`claude_desktop_config.json`) or any client configured with JSON: + +```json +{ + "mcpServers": { + "stackql": { + "command": "stackql", + "args": [ + "mcp", + "--auth={\"github\":{\"type\":\"bearer\",\"credentialsenvvar\":\"STACKQL_GITHUB_TOKEN\"}}", + "--env.file=/path/to/.stackql/github.env" + ] + } + } +} +``` + +For Codex (`~/.codex/config.toml`): + +```toml +[mcp_servers.stackql] +command = "stackql" +args = [ + "mcp", + "--auth={\"github\":{\"type\":\"bearer\",\"credentialsenvvar\":\"STACKQL_GITHUB_TOKEN\"}}", + "--env.file=/path/to/.stackql/github.env" +] +``` + +The agent can then discover and query GitHub using the server's tools (`list_resources`, `describe_resource`, `run_select_query` and so on). Credential values are resolved inside the server process and are never visible to the agent. If you re-authenticate with `gh auth login`, rewrite the dotenv file and ask the agent to call the `reload_credentials` tool (or restart the server) to pick up the new token. + + +## Repository inventory + +Repositories in an organization, with size, language and activity signals: + +```sql +SELECT + name, + visibility, + language, + default_branch, + stargazers_count, + forks_count, + open_issues_count, + pushed_at +FROM github.repos.repos +WHERE org = 'stackql' +ORDER BY pushed_at DESC; +``` + +Repository counts by primary language: + +```sql +SELECT language, count(*) AS repos +FROM github.repos.repos +WHERE org = 'stackql' +GROUP BY language +ORDER BY repos DESC; +``` + +A single repository: + +```sql +SELECT name, full_name, description, default_branch, license +FROM github.repos.details +WHERE owner = 'stackql' AND repo = 'stackql'; +``` + +## Contributors and window functions + +The SQL engine supports window functions, so ranking, running totals and +percentiles run locally over the API results. Rank contributors in a +repository: + +```sql +SELECT + login, + contributions, + RANK() OVER (ORDER BY contributions DESC) AS rank, + ROUND(100.0 * contributions / SUM(contributions) OVER (), 2) AS pct_of_total, + SUM(contributions) OVER (ORDER BY contributions DESC) AS running_total +FROM github.repos.contributors +WHERE owner = 'stackql' AND repo = 'stackql'; +``` + +Group contributors into quartiles: + +```sql +SELECT + login, + contributions, + CASE NTILE(4) OVER (ORDER BY contributions DESC) + WHEN 1 THEN 'Top Contributors' + WHEN 2 THEN 'Active Contributors' + WHEN 3 THEN 'Moderate Contributors' + ELSE 'Occasional Contributors' + END AS contributor_tier +FROM github.repos.contributors +WHERE owner = 'stackql' AND repo = 'stackql'; +``` + +Rank contributors across several repositories with `IN` (one request per +repository, unioned by the engine): + +```sql +SELECT + DENSE_RANK() OVER (ORDER BY SUM(contributions) DESC) AS rank, + login, + SUM(contributions) AS total_contributions, + MAX(html_url) AS html_url +FROM github.repos.contributors +WHERE owner = 'stackql' +AND repo IN ('stackql', 'stackql-deploy', 'stackql-provider-registry') +GROUP BY login +ORDER BY total_contributions DESC; +``` + +## Release cadence + +Days between releases, using `LAG` and `LEAD`: + +```sql +SELECT + tag_name, + published_at, + LAG(tag_name, 1) OVER (ORDER BY published_at) AS previous_release, + LEAD(tag_name, 1) OVER (ORDER BY published_at) AS next_release, + ROUND(julianday(published_at) - julianday(LAG(published_at, 1) OVER (ORDER BY published_at)), 1) AS days_since_last_release +FROM github.repos.releases +WHERE owner = 'stackql' AND repo = 'stackql' +ORDER BY published_at; +``` + +## Issues and pull requests + +Cumulative issue count over time: + +```sql +SELECT + number, + title, + state, + created_at, + COUNT(*) OVER (ORDER BY created_at) AS cumulative_issues, + COUNT(*) OVER (PARTITION BY state ORDER BY created_at) AS cumulative_by_state +FROM github.issues.issues +WHERE owner = 'stackql' AND repo = 'stackql' AND state = 'all' +ORDER BY created_at; +``` + +Open pull requests with their age in days (`state` is pushed to the API as a +query parameter): + +```sql +SELECT + number, + title, + json_extract(user, '$.login') AS author, + ROUND(julianday('now') - julianday(created_at)) AS age_days +FROM github.pulls.pull_requests +WHERE owner = 'stackql' AND repo = 'stackql' AND state = 'open'; +``` + +## Commit activity + +Four-week moving average of commits, expanding the weekly `days` array with +`json_each`: + +```sql +WITH weekly_totals AS ( + SELECT + datetime(week, 'unixepoch') AS week_start, + SUM(json_each.value) AS commits_this_week + FROM github.repos.stats_commit_activity, json_each(days) + WHERE owner = 'stackql' AND repo = 'stackql' + GROUP BY week +) +SELECT + week_start, + commits_this_week, + ROUND(AVG(commits_this_week) OVER (ORDER BY week_start ROWS BETWEEN 3 PRECEDING AND CURRENT ROW), 1) AS four_week_moving_avg, + SUM(commits_this_week) OVER (ORDER BY week_start) AS cumulative_commits +FROM weekly_totals +ORDER BY week_start; +``` + +## GitHub Actions + +Workflows and their most recent runs: + +```sql +SELECT id, name, state, path +FROM github.actions.workflows +WHERE owner = 'stackql' AND repo = 'stackql'; +``` + +```sql +SELECT + id, + display_title, + status, + conclusion, + run_started_at, + ROUND((julianday(updated_at) - julianday(run_started_at)) * 1440) AS duration_minutes +FROM github.actions.workflow_runs +WHERE owner = 'stackql' AND repo = 'stackql' AND workflow_id = 130624966; +``` + +Success rate by workflow: + +```sql +SELECT + name, + COUNT(*) AS runs, + SUM(conclusion = 'success') AS succeeded, + ROUND(100.0 * SUM(conclusion = 'success') / COUNT(*), 1) AS success_pct +FROM github.actions.workflow_runs +WHERE owner = 'stackql' AND repo = 'stackql' +GROUP BY name; +``` + +## Discussions, stars and contribution graphs + +Nested objects in these resources come back as JSON columns; use +`json_extract` to pull out individual fields. + +Discussions in a repository with their category and comment counts: + +```sql +SELECT + number, + title, + json_extract(category, '$.name') AS category, + json_extract(author, '$.login') AS author, + json_extract(comments, '$.total_count') AS comments, + is_answered, + created_at +FROM github.discussions.discussions +WHERE owner = 'stackql' AND repo = 'stackql'; +``` + +Star growth by month (each star with the time it was given). Start a shell +with the GitHub CLI token and no page cap so the full history is fetched: + +```bash +export STACKQL_GITHUB_TOKEN=$(gh auth token) +stackql shell \ + --auth='{"github":{"type":"bearer","credentialsenvvar":"STACKQL_GITHUB_TOKEN"}}' \ + --http.response.pageLimit=0 +``` + +```sql +SELECT + strftime('%Y-%m', starred_at) AS month, + COUNT(*) AS stars, + SUM(COUNT(*)) OVER (ORDER BY strftime('%Y-%m', starred_at)) AS cumulative_stars +FROM github.activity.star_history +WHERE owner = 'stackql' AND repo = 'stackql' +GROUP BY month +ORDER BY month; +``` + +:::note Resources that require a bearer token + +The following resources return `Resource not accessible by personal access token` +when authenticated with a fine-grained personal access token. Use a bearer +token with access to the repository or organization instead, such as the +GitHub CLI token shown above (`gh auth token`): + +- `github.activity.star_history` and `github.activity.repo_stargazers` (stargazer + listings are limited to repository admins and collaborators) +- `github.orgs.saml_identities` (requires organization owner access) + +::: + +A user's contribution calendar, one row per day: + +```sql +SELECT + json_extract(d.value, '$.date') AS day, + json_extract(d.value, '$.contribution_count') AS contributions +FROM github.users.contribution_calendar c, json_each(c.contribution_days) d +WHERE c.username = 'jeffreyaven' +ORDER BY day; +``` + +Unresolved review threads on a pull request: + +```sql +SELECT path, line, json_extract(comments, '$.total_count') AS comments +FROM github.pulls.review_threads +WHERE owner = 'stackql' AND repo = 'stackql' AND pull_number = 600 +AND is_resolved = 0; +``` + +## Rate limits + +```sql +SELECT + json_extract(rate, '$.limit') AS rate_limit, + json_extract(rate, '$.remaining') AS remaining, + json_extract(rate, '$.used') AS used, + datetime(json_extract(rate, '$.reset'), 'unixepoch') AS reset_at +FROM github.rate_limit.rate_limit; +``` + +## Provision, mutate and tear down + +Mutations use the same SQL grammar: `INSERT` creates, `UPDATE` patches, +`EXEC` invokes lifecycle methods and `DELETE` removes. Request body fields are +supplied as columns using their API names. An issue end to end: + +```sql +-- create +INSERT INTO github.issues.issues (owner, repo, title, body, labels) +SELECT 'stackql', 'my-repo', 'Example issue', 'Created with StackQL', '["documentation"]'; + +-- update +UPDATE github.issues.issues +SET state = 'closed', state_reason = 'completed' +WHERE owner = 'stackql' AND repo = 'my-repo' AND issue_number = 1; + +-- lock the conversation +EXEC github.issues.issues.lock + @owner = 'stackql', @repo = 'my-repo', @issue_number = 1 + @@json = '{"lock_reason": "resolved"}'; +``` + +Create a repository in an organization, then delete it: + +```sql +INSERT INTO github.repos.repos (org, name, description, private, auto_init) +SELECT 'stackql', 'stackql-example', 'Created with StackQL', true, true; + +DELETE FROM github.repos.repos +WHERE owner = 'stackql' AND repo = 'stackql-example'; +``` + +Re-run the failed jobs of a workflow run: + +```sql +EXEC github.actions.workflow_runs.re_run_workflow_failed_jobs + @owner = 'stackql', @repo = 'stackql', @run_id = 1234567890; +``` diff --git a/provider-dev/downloaded/api.github.com.json b/provider-dev/downloaded/api.github.com.json index 73609fb..7b0ab28 100644 --- a/provider-dev/downloaded/api.github.com.json +++ b/provider-dev/downloaded/api.github.com.json @@ -136,6 +136,10 @@ "name": "users", "description": "Interact with and view information about users and also current user." }, + { + "name": "code-quality", + "description": "Insights into reliability, maintainability, and efficiency of your codebase." + }, { "name": "codespaces", "description": "Endpoints to manage Codespaces using the REST API." @@ -144,6 +148,10 @@ "name": "copilot", "description": "Endpoints to manage Copilot using the REST API." }, + { + "name": "copilot-spaces", + "description": "Endpoints to manage Copilot Spaces using the REST API." + }, { "name": "security-advisories", "description": "Manage security advisories." @@ -199,6 +207,10 @@ { "name": "agent-tasks", "description": "Endpoints to manage and interact with agent tasks." + }, + { + "name": "agents", + "description": "Endpoints for Agents secrets and variables." } ], "servers": [ @@ -525,7 +537,7 @@ "/agents/repos/{owner}/{repo}/tasks": { "get": { "summary": "List tasks for repository", - "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nReturns a list of tasks for a specific repository\n", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nReturns a list of tasks for a specific repository\n\n**Fine-grained access tokens for \"List tasks for repository\"**\n\nThis endpoint works with the following fine-grained token types:\n\n* [GitHub App user access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app)\n* [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token)\n\nThe fine-grained token must have the following permission set:\n\n* \"Agent tasks\" repository permissions (read)\n\nGitHub App installation access tokens are not supported for this endpoint.\n", "tags": [ "agent-tasks" ], @@ -636,9 +648,12 @@ "name": "creator_id", "in": "query", "schema": { - "type": "integer" + "type": "array", + "items": { + "type": "integer" + } }, - "description": "Filter tasks by creator user ID" + "description": "Filter tasks by creator user ID. Accepts one or more user IDs." } ], "responses": { @@ -854,6 +869,16 @@ "type": "string", "format": "date-time", "description": "Timestamp when the task was created" + }, + "custom_agent": { + "type": "object", + "description": "Custom agent metadata associated with this task", + "properties": { + "id": { + "type": "string", + "description": "The custom agent's filename without the extension - for example, `performance-optimizer` for a `.github/agents/performance-optimizer.agent.md` custom agent." + } + } } } }, @@ -1185,15 +1210,15 @@ } }, "post": { - "summary": "Create a task", - "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nCreates a new task for a repository.\n", + "summary": "Start a task", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nStarts a new Copilot cloud agent task for a repository.\n\nThis endpoint is only available to users with a Copilot Business or Copilot Enterprise subscription.\n\n**Fine-grained access tokens for \"Start a task\"**\n\nThis endpoint works with the following fine-grained token types:\n\n* [GitHub App user access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app)\n* [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token)\n\nThe fine-grained token must have the following permission set:\n\n* \"Agent tasks\" repository permissions (read and write)\n\nGitHub App installation access tokens are not supported for this endpoint.\n", "tags": [ "agent-tasks" ], - "operationId": "agent-tasks/create-task", + "operationId": "agent-tasks/create-task-in-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/agent-tasks/agent-tasks#create-a-task" + "url": "https://docs.github.com/rest/agent-tasks/agent-tasks#start-a-task" }, "x-github": { "githubCloudOnly": false, @@ -1223,6 +1248,7 @@ ], "requestBody": { "required": true, + "description": "The task creation parameters, including the user's prompt and optional agent settings.", "content": { "application/json": { "schema": { @@ -1239,6 +1265,10 @@ "type": "string", "description": "The model to use for this task. The allowed models may change over time and depend on the user's GitHub Copilot plan and organization policies. Currently supported values: `claude-sonnet-4.6`, `claude-opus-4.6`, `gpt-5.2-codex`, `gpt-5.3-codex`, `gpt-5.4`, `claude-sonnet-4.5`, `claude-opus-4.5`" }, + "custom_agent": { + "type": "string", + "description": "Optional identifier for a custom agent to use for this task. Use the custom agent's filename without the extension - for example, for a `.github/agents/performance-optimizer.agent.md` custom agent, use `performance-optimizer`." + }, "create_pull_request": { "type": "boolean", "description": "Whether to create a PR.", @@ -1247,6 +1277,10 @@ "base_ref": { "type": "string", "description": "Base ref for new branch/PR" + }, + "head_ref": { + "type": "string", + "description": "Head ref for existing branch/PR. If provided with `base_ref`, the agent looks up open PR context for `head_ref` targeting `base_ref` and commits to `head_ref` instead of creating a new branch." } } }, @@ -1256,6 +1290,14 @@ "prompt": "Fix the login button on the homepage", "base_ref": "main" } + }, + "with-custom-agent": { + "summary": "Task with a custom agent", + "value": { + "prompt": "Fix the login button on the homepage", + "base_ref": "main", + "custom_agent": "my-custom-agent" + } } } } @@ -1457,6 +1499,16 @@ "type": "string", "format": "date-time", "description": "Timestamp when the task was created" + }, + "custom_agent": { + "type": "object", + "description": "Custom agent metadata associated with this task", + "properties": { + "id": { + "type": "string", + "description": "The custom agent's filename without the extension - for example, `performance-optimizer` for a `.github/agents/performance-optimizer.agent.md` custom agent." + } + } } } }, @@ -1484,6 +1536,34 @@ "created_at": "2025-01-01T00:00:00Z", "updated_at": "2025-01-01T00:00:00Z" } + }, + "with-custom-agent": { + "summary": "Task created with a custom agent", + "value": { + "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "url": "https://api.github.com/agents/repos/octocat/hello-world/tasks/a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "html_url": "https://github.com/octocat/hello-world/copilot/tasks/a1b2c3d4-e5f6-7890-abcd-ef1234567890", + "name": "Fix the login button on the homepage", + "creator": { + "id": 1 + }, + "creator_type": "user", + "owner": { + "id": 1 + }, + "repository": { + "id": 1296269 + }, + "state": "queued", + "session_count": 1, + "custom_agent": { + "id": "my-custom-agent" + }, + "artifacts": [], + "archived_at": null, + "created_at": "2025-01-01T00:00:00Z", + "updated_at": "2025-01-01T00:00:00Z" + } } } } @@ -1711,7 +1791,7 @@ "/agents/repos/{owner}/{repo}/tasks/{task_id}": { "get": { "summary": "Get a task by repo", - "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nReturns a task by ID scoped to an owner/repo path\n", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nReturns a task by ID scoped to an owner/repo path\n\n**Fine-grained access tokens for \"Get a task by repo\"**\n\nThis endpoint works with the following fine-grained token types:\n\n* [GitHub App user access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app)\n* [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token)\n\nThe fine-grained token must have the following permission set:\n\n* \"Agent tasks\" repository permissions (read)\n\nGitHub App installation access tokens are not supported for this endpoint.\n", "tags": [ "agent-tasks" ], @@ -1953,6 +2033,16 @@ "type": "string", "format": "date-time", "description": "Timestamp when the task was created" + }, + "custom_agent": { + "type": "object", + "description": "Custom agent metadata associated with this task", + "properties": { + "id": { + "type": "string", + "description": "The custom agent's filename without the extension - for example, `performance-optimizer` for a `.github/agents/performance-optimizer.agent.md` custom agent." + } + } } } }, @@ -2060,6 +2150,29 @@ "type": "string", "description": "Model used for this session" }, + "usage": { + "type": "object", + "description": "Structured information about billing units consumed by the session.", + "required": [ + "type", + "amount" + ], + "properties": { + "type": { + "type": "string", + "description": "Billing unit used for this session. New sessions since June 1, 2026 use `ai_credits`, but older sessions use `premium_requests`.", + "enum": [ + "ai_credits", + "premium_requests" + ] + }, + "amount": { + "type": "number", + "format": "double", + "description": "Number of billing units used by this session. When the `type` is `ai_credits`, the value is a whole number, expressed in nano units. When presenting this to a human, divide by 1,000,000,000 and round to one decimal place. When aggregating (for example, summing usage across sessions), sum the nano values first, and divide once at the end before presenting to a human to avoid losing precision. When the `type` is `premium_requests`, the value may be fractional (for example `1.5`)." + } + } + }, "error": { "type": "object", "description": "Error details for a failed session", @@ -2415,7 +2528,7 @@ "/agents/tasks": { "get": { "summary": "List tasks", - "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nReturns a list of tasks for the authenticated user\n", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nReturns a list of tasks for the authenticated user\n\n**Fine-grained access tokens for \"List tasks\"**\n\nThis endpoint works with the following fine-grained token types:\n\n* [GitHub App user access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app)\n* [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token)\n\nThe fine-grained token must have the following permission set:\n\n* \"Agent tasks\" repository permissions (read)\n\nGitHub App installation access tokens are not supported for this endpoint.\n", "tags": [ "agent-tasks" ], @@ -2718,6 +2831,16 @@ "type": "string", "format": "date-time", "description": "Timestamp when the task was created" + }, + "custom_agent": { + "type": "object", + "description": "Custom agent metadata associated with this task", + "properties": { + "id": { + "type": "string", + "description": "The custom agent's filename without the extension - for example, `performance-optimizer` for a `.github/agents/performance-optimizer.agent.md` custom agent." + } + } } } }, @@ -2996,7 +3119,7 @@ "/agents/tasks/{task_id}": { "get": { "summary": "Get a task by ID", - "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nReturns a task by ID with its associated sessions\n", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nReturns a task by ID with its associated sessions\n\n**Fine-grained access tokens for \"Get a task by ID\"**\n\nThis endpoint works with the following fine-grained token types:\n\n* [GitHub App user access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app)\n* [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token)\n\nThe fine-grained token must have the following permission set:\n\n* \"Agent tasks\" repository permissions (read)\n\nGitHub App installation access tokens are not supported for this endpoint.\n", "tags": [ "agent-tasks" ], @@ -3220,6 +3343,16 @@ "type": "string", "format": "date-time", "description": "Timestamp when the task was created" + }, + "custom_agent": { + "type": "object", + "description": "Custom agent metadata associated with this task", + "properties": { + "id": { + "type": "string", + "description": "The custom agent's filename without the extension - for example, `performance-optimizer` for a `.github/agents/performance-optimizer.agent.md` custom agent." + } + } } } }, @@ -3327,6 +3460,29 @@ "type": "string", "description": "Model used for this session" }, + "usage": { + "type": "object", + "description": "Structured information about billing units consumed by the session.", + "required": [ + "type", + "amount" + ], + "properties": { + "type": { + "type": "string", + "description": "Billing unit used for this session. New sessions since June 1, 2026 use `ai_credits`, but older sessions use `premium_requests`.", + "enum": [ + "ai_credits", + "premium_requests" + ] + }, + "amount": { + "type": "number", + "format": "double", + "description": "Number of billing units used by this session. When the `type` is `ai_credits`, the value is a whole number, expressed in nano units. When presenting this to a human, divide by 1,000,000,000 and round to one decimal place. When aggregating (for example, summing usage across sessions), sum the nano values first, and divide once at the end before presenting to a human to avoid losing precision. When the `type` is `premium_requests`, the value may be fractional (for example `1.5`)." + } + } + }, "error": { "type": "object", "description": "Error details for a failed session", @@ -4257,7 +4413,7 @@ "/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.\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.", + "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\n> [!NOTE]\n> Starting April 27, 2026, GitHub began a staged rollout of a stateless format (`ghs_APPID_JWT`) to all newly minted GitHub App installation tokens, making them more performant and improving the reliability of our API surface. If your application expects or relies on installation tokens being exactly 40 characters long, it may not handle this new token format correctly. You can now validate your apps and workflows using a temporary request header that lets you enable the token format on demand. For more information about the temporary header, see [the GitHub blog](https://github.blog/changelog/2026-05-15-github-app-installation-tokens-per-request-override-header).\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" ], @@ -4845,15 +5001,15 @@ }, "/assignments/{assignment_id}": { "get": { - "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.", + "summary": "Closing down - Get an assignment", + "description": "> [!WARNING]\n> **Closing down notice:** This operation is closing down and will be removed on August 28, 2026.\n> For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset).\n\nGets a GitHub Classroom assignment. Assignment will only be returned if the current user is an administrator of the GitHub Classroom for the assignment.", "tags": [ "classroom" ], "operationId": "classroom/get-an-assignment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/classroom/classroom#get-an-assignment" + "url": "https://docs.github.com/rest/classroom/classroom#closing-down---get-an-assignment" }, "parameters": [ { @@ -4878,26 +5034,32 @@ }, "404": { "$ref": "#/components/responses/not_found" + }, + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "enabledForGitHubApps": true, "category": "classroom", - "subcategory": "classroom" - } + "subcategory": "classroom", + "deprecationDate": "2026-05-22", + "removalDate": "2026-08-28" + }, + "deprecated": true } }, "/assignments/{assignment_id}/accepted_assignments": { "get": { - "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.", + "summary": "Closing down - List accepted assignments for an assignment", + "description": "> [!WARNING]\n> **Closing down notice:** This operation is closing down and will be removed on August 28, 2026.\n> For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset).\n\nLists 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": [ "classroom" ], "operationId": "classroom/list-accepted-assignments-for-an-assignment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/classroom/classroom#list-accepted-assignments-for-an-assignment" + "url": "https://docs.github.com/rest/classroom/classroom#closing-down---list-accepted-assignments-for-an-assignment" }, "parameters": [ { @@ -4928,26 +5090,32 @@ } } } + }, + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "enabledForGitHubApps": true, "category": "classroom", - "subcategory": "classroom" - } + "subcategory": "classroom", + "deprecationDate": "2026-05-22", + "removalDate": "2026-08-28" + }, + "deprecated": true } }, "/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.", + "summary": "Closing down - Get assignment grades", + "description": "> [!WARNING]\n> **Closing down notice:** This operation is closing down and will be removed on August 28, 2026.\n> For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset).\n\nGets 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": [ "classroom" ], "operationId": "classroom/get-assignment-grades", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/classroom/classroom#get-assignment-grades" + "url": "https://docs.github.com/rest/classroom/classroom#closing-down---get-assignment-grades" }, "parameters": [ { @@ -4975,26 +5143,32 @@ }, "404": { "$ref": "#/components/responses/not_found" + }, + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "enabledForGitHubApps": true, "category": "classroom", - "subcategory": "classroom" - } + "subcategory": "classroom", + "deprecationDate": "2026-05-22", + "removalDate": "2026-08-28" + }, + "deprecated": true } }, "/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.", + "summary": "Closing down - List classrooms", + "description": "> [!WARNING]\n> **Closing down notice:** This operation is closing down and will be removed on August 28, 2026.\n> For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset).\n\nLists 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": [ "classroom" ], "operationId": "classroom/list-classrooms", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/classroom/classroom#list-classrooms" + "url": "https://docs.github.com/rest/classroom/classroom#closing-down---list-classrooms" }, "parameters": [ { @@ -5022,26 +5196,32 @@ } } } + }, + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "enabledForGitHubApps": true, "category": "classroom", - "subcategory": "classroom" - } + "subcategory": "classroom", + "deprecationDate": "2026-05-22", + "removalDate": "2026-08-28" + }, + "deprecated": true } }, "/classrooms/{classroom_id}": { "get": { - "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.", + "summary": "Closing down - Get a classroom", + "description": "> [!WARNING]\n> **Closing down notice:** This operation is closing down and will be removed on August 28, 2026.\n> For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset).\n\nGets 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": [ "classroom" ], "operationId": "classroom/get-a-classroom", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/classroom/classroom#get-a-classroom" + "url": "https://docs.github.com/rest/classroom/classroom#closing-down---get-a-classroom" }, "parameters": [ { @@ -5066,26 +5246,32 @@ }, "404": { "$ref": "#/components/responses/not_found" + }, + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "enabledForGitHubApps": true, "category": "classroom", - "subcategory": "classroom" - } + "subcategory": "classroom", + "deprecationDate": "2026-05-22", + "removalDate": "2026-08-28" + }, + "deprecated": true } }, "/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.", + "summary": "Closing down - List assignments for a classroom", + "description": "> [!WARNING]\n> **Closing down notice:** This operation is closing down and will be removed on August 28, 2026.\n> For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset).\n\nLists GitHub Classroom assignments for a classroom. Assignments will only be returned if the current user is an administrator of the GitHub Classroom.", "tags": [ "classroom" ], "operationId": "classroom/list-assignments-for-a-classroom", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/classroom/classroom#list-assignments-for-a-classroom" + "url": "https://docs.github.com/rest/classroom/classroom#closing-down---list-assignments-for-a-classroom" }, "parameters": [ { @@ -5116,13 +5302,19 @@ } } } + }, + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "enabledForGitHubApps": true, "category": "classroom", - "subcategory": "classroom" - } + "subcategory": "classroom", + "deprecationDate": "2026-05-22", + "removalDate": "2026-08-28" + }, + "deprecated": true } }, "/codes_of_conduct": { @@ -6002,8 +6194,7 @@ } }, "required": [ - "name", - "description" + "name" ] }, "examples": { @@ -6832,6 +7023,117 @@ } } }, + "/enterprises/{enterprise}/copilot/metrics/reports/repos-1-day": { + "get": { + "summary": "Get Copilot enterprise repository report for a specific day", + "description": "Use this endpoint to retrieve download links for the Copilot enterprise repository report for a specific day. The report provides per-repository pull request metrics for Copilot across the enterprise, with one entry per repository.\n\nThe report contains repository-level pull request activity for the specified day, including the Copilot Coding Agent (CCA) and Copilot Code Review (CCR) breakdowns. Only repositories that had activity on the specified day are included. Reports are generated daily and made available for download through signed URLs with a limited expiration time.\n\nThe response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed.\n\nEnterprise owners, billing managers, and authorized users with fine-grained \"View Enterprise Copilot Metrics\" permission can retrieve Copilot metrics reports for the enterprise. OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `read:enterprise` scopes to use this endpoint.", + "tags": [ + "copilot" + ], + "operationId": "copilot/copilot-enterprise-repos-one-day-report", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-enterprise-repository-report-for-a-specific-day" + }, + "parameters": [ + { + "$ref": "#/components/parameters/enterprise" + }, + { + "$ref": "#/components/parameters/day" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/copilot-usage-metrics-1-day-report" + }, + "examples": { + "default": { + "$ref": "#/components/examples/copilot-usage-metrics-1-day-report" + } + } + } + } + }, + "204": { + "$ref": "#/components/responses/no_content" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "copilot", + "subcategory": "copilot-usage-metrics" + } + } + }, + "/enterprises/{enterprise}/copilot/metrics/reports/user-teams-1-day": { + "get": { + "summary": "Get Copilot enterprise user-teams report for a specific day", + "description": "Use this endpoint to retrieve download links for the Copilot enterprise user-teams report for a specific day. The report provides user-team join data for Copilot across the enterprise, with one entry per user-team pair.\n\nThe report contains user-team membership data for the specified day, enabling consumers to join with the existing enterprise user reports to compute team-level usage metrics. Reports are generated daily and made available for download through signed URLs with a limited expiration time.\n\nThe response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed.\n\nEnterprise owners, billing managers, and authorized users with fine-grained \"View Enterprise Copilot Metrics\" permission can retrieve Copilot metrics reports for the enterprise. OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `read:enterprise` scopes to use this endpoint.", + "tags": [ + "copilot" + ], + "operationId": "copilot/copilot-enterprise-user-teams-one-day-report", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-enterprise-user-teams-report-for-a-specific-day" + }, + "parameters": [ + { + "$ref": "#/components/parameters/enterprise" + }, + { + "$ref": "#/components/parameters/day" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/copilot-usage-metrics-1-day-report" + }, + "examples": { + "default": { + "$ref": "#/components/examples/copilot-usage-metrics-1-day-report" + } + } + } + } + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "copilot", + "subcategory": "copilot-usage-metrics" + } + } + }, "/enterprises/{enterprise}/copilot/metrics/reports/users-1-day": { "get": { "summary": "Get Copilot users usage metrics for a specific day", @@ -6937,6 +7239,262 @@ } } }, + "/enterprises/{enterprise}/copilot/policies/coding_agent": { + "put": { + "summary": "Set the coding agent policy for an enterprise", + "description": "Sets the policy for Copilot cloud agent usage across an enterprise.\n\nEnterprise owners can configure whether Copilot cloud agent is enabled for all\norganizations, disabled for all organizations, configured by individual organization\nadmins, or enabled for selected organizations only.\n\nOnly enterprise owners can set the coding agent policy for their enterprise.\n\nOAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:enterprise` scopes to use this endpoint.", + "tags": [ + "copilot" + ], + "operationId": "copilot/set-enterprise-coding-agent-policy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/copilot/copilot-coding-agent-management#set-the-coding-agent-policy-for-an-enterprise" + }, + "parameters": [ + { + "$ref": "#/components/parameters/enterprise" + } + ], + "requestBody": { + "description": "The coding agent policy configuration", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "policy_state": { + "type": "string", + "description": "The policy state for Copilot cloud agent in the enterprise. Can be one of `enabled_for_all_orgs`, `disabled_for_all_orgs`, `enabled_for_selected_orgs`, or `configured_by_org_admins`.", + "enum": [ + "enabled_for_all_orgs", + "disabled_for_all_orgs", + "enabled_for_selected_orgs", + "configured_by_org_admins" + ] + } + }, + "required": [ + "policy_state" + ] + }, + "examples": { + "default": { + "summary": "Enable coding agent for all organizations", + "value": { + "policy_state": "enabled_for_all_orgs" + } + } + } + } + } + }, + "responses": { + "204": { + "$ref": "#/components/responses/no_content" + }, + "400": { + "$ref": "#/components/responses/bad_request" + } + }, + "x-github": { + "enabledForGitHubApps": false, + "category": "copilot", + "subcategory": "copilot-coding-agent-management" + } + } + }, + "/enterprises/{enterprise}/copilot/policies/coding_agent/organizations": { + "post": { + "summary": "Add organizations to the enterprise coding agent policy", + "description": "Enables Copilot cloud agent for the specified organizations within the enterprise.\n\nThe enterprise's coding agent policy must be set to `enabled_for_selected_orgs` before\nusing this endpoint. Organizations can be specified by login or matched via custom properties.\n\nOnly organizations that have Copilot enabled and belong to the enterprise will be affected.\n\nOnly enterprise owners can add organizations to the coding agent policy.\n\nOAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:enterprise` scopes to use this endpoint.", + "tags": [ + "copilot" + ], + "operationId": "copilot/add-organizations-to-enterprise-coding-agent-policy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/copilot/copilot-coding-agent-management#add-organizations-to-the-enterprise-coding-agent-policy" + }, + "parameters": [ + { + "$ref": "#/components/parameters/enterprise" + } + ], + "requestBody": { + "description": "The organizations to enable Copilot cloud agent for", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "organizations": { + "type": "array", + "description": "List of organization logins within the enterprise to enable Copilot cloud agent for.", + "items": { + "type": "string" + } + }, + "custom_properties": { + "type": "array", + "description": "List of custom property filters to match organizations. Organizations matching any of the specified property name/value pairs will be included. This is a one-time operation, setting the property on an organization in the future will not automatically update its coding agent policy.", + "items": { + "type": "object", + "properties": { + "property_name": { + "type": "string", + "description": "The name of the custom property to filter by." + }, + "values": { + "type": "array", + "description": "The values of the custom property to match.", + "items": { + "type": "string" + } + } + }, + "required": [ + "property_name", + "values" + ] + } + } + } + }, + "examples": { + "default": { + "summary": "Add organizations that match a login or have a custom property", + "value": { + "organizations": [ + "my-org-1", + "my-org-2" + ], + "custom_properties": [ + { + "property_name": "department", + "values": [ + "engineering", + "security" + ] + } + ] + } + } + } + } + } + }, + "responses": { + "204": { + "$ref": "#/components/responses/no_content" + }, + "400": { + "$ref": "#/components/responses/bad_request" + } + }, + "x-github": { + "enabledForGitHubApps": false, + "category": "copilot", + "subcategory": "copilot-coding-agent-management" + } + }, + "delete": { + "summary": "Remove organizations from the enterprise coding agent policy", + "description": "Disables Copilot cloud agent for the specified organizations within the enterprise.\n\nThe enterprise's coding agent policy must be set to `enabled_for_selected_orgs` before\nusing this endpoint. Organizations can be specified by login or matched via custom properties.\n\nOnly organizations that have Copilot enabled and belong to the enterprise will be affected.\n\nOnly enterprise owners can remove organizations from the coding agent policy.\n\nOAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:enterprise` scopes to use this endpoint.", + "tags": [ + "copilot" + ], + "operationId": "copilot/remove-organizations-from-enterprise-coding-agent-policy", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/copilot/copilot-coding-agent-management#remove-organizations-from-the-enterprise-coding-agent-policy" + }, + "parameters": [ + { + "$ref": "#/components/parameters/enterprise" + } + ], + "requestBody": { + "description": "The organizations to disable Copilot cloud agent for", + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "organizations": { + "type": "array", + "description": "List of organization logins within the enterprise to disable Copilot cloud agent for.", + "items": { + "type": "string" + } + }, + "custom_properties": { + "type": "array", + "description": "List of custom property filters to match organizations. Organizations matching any of the specified property name/value pairs will be included. This is a one-time operation, setting the property on an organization in the future will not automatically update its coding agent policy.", + "items": { + "type": "object", + "properties": { + "property_name": { + "type": "string", + "description": "The name of the custom property to filter by." + }, + "values": { + "type": "array", + "description": "The values of the custom property to match.", + "items": { + "type": "string" + } + } + }, + "required": [ + "property_name", + "values" + ] + } + } + } + }, + "examples": { + "default": { + "summary": "Remove organizations that match a login or have a custom property", + "value": { + "organizations": [ + "my-org-1", + "my-org-2" + ], + "custom_properties": [ + { + "property_name": "department", + "values": [ + "engineering", + "security" + ] + } + ] + } + } + } + } + } + }, + "responses": { + "204": { + "$ref": "#/components/responses/no_content" + }, + "400": { + "$ref": "#/components/responses/bad_request" + } + }, + "x-github": { + "enabledForGitHubApps": false, + "category": "copilot", + "subcategory": "copilot-coding-agent-management" + } + } + }, "/enterprises/{enterprise}/dependabot/alerts": { "get": { "summary": "List Dependabot alerts for an enterprise", @@ -6980,6 +7538,9 @@ { "$ref": "#/components/parameters/dependabot-alert-scope" }, + { + "$ref": "#/components/parameters/dependabot-alert-relationship" + }, { "$ref": "#/components/parameters/dependabot-alert-sort" }, @@ -7037,6 +7598,236 @@ } } }, + "/enterprises/{enterprise}/dependabot/repository-access": { + "get": { + "summary": "Lists the repositories Dependabot can access in an enterprise", + "description": "Lists repositories that enterprise admins have allowed Dependabot to access when updating dependencies across organizations in the enterprise.\n\nThe authenticated user must be an enterprise owner to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/repository-access-for-enterprise", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/dependabot/repository-access#lists-the-repositories-dependabot-can-access-in-an-enterprise" + }, + "parameters": [ + { + "$ref": "#/components/parameters/enterprise" + }, + { + "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": false, + "category": "dependabot", + "subcategory": "repository-access" + } + }, + "patch": { + "summary": "Updates Dependabot's repository access list for an enterprise", + "description": "Updates repositories according to the list of repositories that enterprise admins have given Dependabot access to when they've updated dependencies across organizations in the enterprise.\n\nThe authenticated user must be an enterprise owner to use 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-enterprise", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/dependabot/repository-access#updates-dependabots-repository-access-list-for-an-enterprise" + }, + "parameters": [ + { + "$ref": "#/components/parameters/enterprise" + } + ], + "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": false, + "category": "dependabot", + "subcategory": "repository-access" + } + } + }, + "/enterprises/{enterprise}/dependabot/repository-access/default-level": { + "put": { + "summary": "Set the default repository access level for Dependabot in an enterprise", + "description": "Sets the default level of repository access Dependabot will have while performing an update across organizations in the enterprise. 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\nThe authenticated user must be an enterprise owner to use this endpoint.", + "tags": [ + "dependabot" + ], + "operationId": "dependabot/set-repository-access-default-level-for-enterprise", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/dependabot/repository-access#set-the-default-repository-access-level-for-dependabot-in-an-enterprise" + }, + "parameters": [ + { + "$ref": "#/components/parameters/enterprise" + } + ], + "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": false, + "category": "dependabot", + "subcategory": "repository-access" + } + } + }, "/enterprises/{enterprise}/teams": { "get": { "summary": "List enterprise teams", @@ -7150,6 +7941,14 @@ "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)." + }, + "notification_setting": { + "type": "string", + "description": "The notification setting the team is set to. The options are:\n\n* `notifications_enabled` - team members receive notifications when the team is @mentioned.\n* `notifications_disabled` - no one receives notifications.\n\nDefault: `notifications_enabled`\n", + "enum": [ + "notifications_enabled", + "notifications_disabled" + ] } }, "required": [ @@ -7986,6 +8785,14 @@ "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." + }, + "notification_setting": { + "type": "string", + "description": "The notification setting the team is set to. The options are:\n\n* `notifications_enabled` - team members receive notifications when the team is @mentioned.\n* `notifications_disabled` - no one receives notifications.\n", + "enum": [ + "notifications_enabled", + "notifications_disabled" + ] } } }, @@ -9537,6 +10344,16 @@ "allOf": [ { "$ref": "#/components/schemas/repository" + }, + { + "type": "object", + "properties": { + "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. Present for org repos only.", + "additionalProperties": true + } + } } ] } @@ -10421,7 +11238,7 @@ "/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://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.", + "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, and the public keys used by GitHub to sign commits made through the web UI.\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" ], @@ -11271,240 +12088,73 @@ } } }, - "/organizations/{org}/dependabot/repository-access": { + "/organizations/{org}/settings/billing/ai_credit/usage": { "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.", + "summary": "Get billing AI credit usage report for an organization", + "description": "Gets a report of AI credit 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": [ - "dependabot" + "billing" ], - "operationId": "dependabot/repository-access-for-org", + "operationId": "billing/get-github-billing-ai-credit-usage-report-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/dependabot/repository-access#lists-the-repositories-dependabot-can-access-in-an-organization" + "url": "https://docs.github.com/rest/billing/usage#get-billing-ai-credit-usage-report-for-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 - } + "$ref": "#/components/parameters/billing-usage-report-year" }, { - "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" - } - } - } - } + "$ref": "#/components/parameters/billing-usage-report-month-default" }, - "403": { - "$ref": "#/components/responses/forbidden" + { + "$ref": "#/components/parameters/billing-usage-report-day" }, - "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" + "$ref": "#/components/parameters/billing-usage-report-user" }, - "403": { - "$ref": "#/components/responses/forbidden" + { + "$ref": "#/components/parameters/billing-usage-report-model" }, - "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" + "$ref": "#/components/parameters/billing-usage-report-product" } ], - "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" + "200": { + "$ref": "#/components/responses/billing_ai_credit_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": "dependabot", - "subcategory": "repository-access" + "category": "billing", + "subcategory": "usage" } } }, "/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.\nEach page returns up to 10 budgets.", + "description": "Gets all budgets for an organization. The authenticated user must be an organization admin or billing manager.\nEach page returns up to 100 budgets.", "tags": [ "billing" ], @@ -11528,7 +12178,7 @@ }, { "name": "per_page", - "description": "The number of results per page (max 10).", + "description": "The number of results per page (max 100).", "in": "query", "schema": { "type": "integer", @@ -11537,7 +12187,7 @@ }, { "name": "scope", - "description": "Filter budgets by scope type.", + "description": "Filter budgets by scope type.\n\n- `organization`: Budgets scoped to the organization.\n- `repository`: Budgets scoped to a repository.\n- `multi_user_customer`: Universal budgets that apply to all users in the organization.\n- `user`: Budgets scoped to an individual user.", "in": "query", "schema": { "type": "string", @@ -11545,9 +12195,19 @@ "enterprise", "organization", "repository", - "cost_center" + "cost_center", + "multi_user_customer", + "user" ] } + }, + { + "name": "user", + "description": "Filter consumed amount details for budgets by the specified user login.", + "in": "query", + "schema": { + "type": "string" + } } ], "responses": { @@ -11570,12 +12230,214 @@ "category": "billing", "subcategory": "budgets" } + }, + "post": { + "summary": "Create a budget for an organization", + "description": "Creates a new budget for an organization. The authenticated user must be an\norganization admin or billing manager.", + "tags": [ + "billing" + ], + "operationId": "billing/create-organization-budget", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/billing/budgets#create-a-budget-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + } + ], + "requestBody": { + "required": false, + "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. For `user` and `multi_user_customer` scopes, this must be `true`." + }, + "budget_alerting": { + "type": "object", + "properties": { + "will_alert": { + "type": "boolean", + "description": "Whether alerts are enabled for this budget. Rejected for user-scope as alerting is always disabled for them." + }, + "alert_recipients": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of user login names who will receive alerts. Rejected for user-scope as alerting is always disabled for them." + } + } + }, + "budget_scope": { + "type": "string", + "description": "The scope of the budget for this organization.\n\n- `organization`: Apply the budget to the organization.\n- `repository`: Apply the budget to a specific repository in the organization.\n- `multi_user_customer`: Apply a universal budget to all users in the organization.\n- `user`: Apply the budget to a single user in the organization.\n\n`user` and `multi_user_customer` scopes are only supported when\n`budget_product_sku` is `ai_credits` or `premium_requests`.", + "enum": [ + "organization", + "repository", + "multi_user_customer", + "user" + ] + }, + "budget_entity_name": { + "type": "string", + "description": "The name of the entity to apply the budget to", + "default": "" + }, + "budget_type": { + "description": "The type of pricing model used by the budget. Determines how `budget_product_sku` is interpreted.\n\n- `BundlePricing`: Covers all AI credit SKUs. Set `budget_product_sku` to `ai_credits`.\n- `ProductPricing`: Covers all SKUs that belong to a product. Set `budget_product_sku` to a product such as `actions` or `packages`.\n- `SkuPricing`: Covers a single, specific SKU. Set `budget_product_sku` to a SKU such as `actions_linux`.", + "oneOf": [ + { + "type": "string", + "enum": [ + "BundlePricing" + ] + }, + { + "type": "string", + "enum": [ + "ProductPricing" + ] + }, + { + "type": "string", + "enum": [ + "SkuPricing" + ] + } + ] + }, + "budget_product_sku": { + "type": "string", + "description": "A single product or SKU that will be covered in the budget" + }, + "user": { + "type": "string", + "description": "The username of the user for `user` scope budgets. This field is required when `budget_scope` is `user`." + } + } + }, + "examples": { + "create-organization-budget": { + "summary": "Create organization budget example", + "value": { + "budget_amount": 500, + "prevent_further_usage": true, + "budget_scope": "organization", + "budget_entity_name": "", + "budget_type": "ProductPricing", + "budget_product_sku": "actions", + "budget_alerting": { + "will_alert": false, + "alert_recipients": [] + } + } + } + } + } + } + }, + "responses": { + "200": { + "description": "Budget created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/create-budget" + }, + "examples": { + "create-organization-budget": { + "$ref": "#/components/examples/create-budget" + } + } + } + } + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "description": "Insufficient permissions", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + }, + "examples": { + "insufficient-permissions": { + "value": { + "message": "Insufficient permissions to create a budget.", + "documentation_url": "https://docs.github.com/rest/billing/budgets#create-a-budget-for-an-organization" + } + } + } + } + } + }, + "404": { + "description": "Feature not enabled or organization not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + }, + "examples": { + "feature-not-enabled": { + "value": { + "message": "Not Found", + "documentation_url": "https://docs.github.com/rest/billing/budgets#create-a-budget-for-an-organization" + } + } + } + } + } + }, + "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 create budget.", + "documentation_url": "https://docs.github.com/rest/billing/budgets#create-a-budget-for-an-organization" + } + } + } + } + } + } + }, + "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.", + "description": "Gets a budget by ID. The authenticated user must be an organization admin or billing manager.", "tags": [ "billing" ], @@ -11621,7 +12483,7 @@ }, "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.", + "description": "Updates an existing budget for an organization. The authenticated user must be an organization admin or billing manager.", "tags": [ "billing" ], @@ -11651,32 +12513,34 @@ }, "prevent_further_usage": { "type": "boolean", - "description": "Whether to prevent additional spending once the budget is exceeded" + "description": "Whether to prevent additional spending once the budget is exceeded. For budgets with `user` or `multi_user_customer` scope, this must remain `true`." }, "budget_alerting": { "type": "object", "properties": { "will_alert": { "type": "boolean", - "description": "Whether alerts are enabled for this budget" + "description": "Whether alerts are enabled for this budget. Ignored for user-scopes as alerting is always disabled for them." }, "alert_recipients": { "type": "array", "items": { "type": "string" }, - "description": "Array of user login names who will receive alerts" + "description": "Array of user login names who will receive alerts. Ignored for user-scopes as alerting is always disabled for them." } } }, "budget_scope": { "type": "string", - "description": "The scope of the budget", + "description": "The scope of the budget for this organization.\n\n- `organization`: Apply the budget to the organization.\n- `repository`: Apply the budget to a specific repository in the organization.\n- `multi_user_customer`: Apply a universal budget to all users in the organization.\n- `user`: Apply the budget to a single user in the organization.", "enum": [ "enterprise", "organization", "repository", - "cost_center" + "cost_center", + "multi_user_customer", + "user" ] }, "budget_entity_name": { @@ -11684,8 +12548,14 @@ "description": "The name of the entity to apply the budget to" }, "budget_type": { - "description": "The type of pricing for the budget", + "description": "The type of pricing model used by the budget. Determines how `budget_product_sku` is interpreted.\n\n- `BundlePricing`: Covers all AI credit SKUs. Set `budget_product_sku` to `ai_credits`.\n- `ProductPricing`: Covers all SKUs that belong to a product. Set `budget_product_sku` to a product such as `actions` or `packages`.\n- `SkuPricing`: Covers a single, specific SKU. Set `budget_product_sku` to a SKU such as `actions_linux`.", "oneOf": [ + { + "type": "string", + "enum": [ + "BundlePricing" + ] + }, { "type": "string", "enum": [ @@ -11703,6 +12573,10 @@ "budget_product_sku": { "type": "string", "description": "A single product or SKU that will be covered in the budget" + }, + "user": { + "type": "string", + "description": "The username of the user for `user` scope budgets." } } }, @@ -11728,87 +12602,7 @@ "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": { - "description": "The type of pricing for the budget", - "oneOf": [ - { - "type": "string", - "enum": [ - "ProductPricing" - ] - }, - { - "type": "string", - "enum": [ - "SkuPricing" - ] - } - ] - }, - "budget_product_sku": { - "type": "string", - "description": "A single product or SKU that will be covered in the budget" - } - } - } - } + "$ref": "#/components/schemas/update-budget" }, "examples": { "update-budget": { @@ -11882,7 +12676,7 @@ }, "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.", + "description": "Deletes a budget by ID for an organization. The authenticated user must be an organization admin or billing manager.", "tags": [ "billing" ], @@ -13395,6 +14189,15 @@ "description": "The machine size of the runner. To list available sizes, use `GET actions/hosted-runners/machine-sizes`", "type": "string" }, + "image_source": { + "description": "The source type of the runner image to use. Must match the source of the image specified by `image_id`. Can be one of `github`, `partner`, or `custom`.", + "type": "string", + "enum": [ + "github", + "partner", + "custom" + ] + }, "image_id": { "description": "The unique identifier of the runner image. To list available images, use `GET /actions/hosted-runners/images/github-owned`, `GET /actions/hosted-runners/images/partner`, or `GET /actions/hosted-runners/images/custom`.", "type": "string" @@ -13403,6 +14206,10 @@ "description": "The version of the runner image to deploy. This is relevant only for runners using custom images.", "type": "string", "nullable": true + }, + "image_gen": { + "description": "Whether to enable image generation for this runner pool. When enabled, the runner pool is used to build and publish custom runner images.", + "type": "boolean" } } }, @@ -13725,6 +14532,10 @@ "items": { "type": "string" } + }, + "use_immutable_subject": { + "description": "Whether to opt in to the immutable OIDC subject claim format for the organization. When `true`, new OIDC tokens will use a stable, repository-ID-based `sub` claim instead of the name-based format.", + "type": "boolean" } } }, @@ -17390,432 +18201,177 @@ } } }, - "/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.", + "/orgs/{org}/agents/secrets": { + "get": { + "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": [ - "orgs" + "agents" ], - "operationId": "orgs/create-artifact-deployment-record", + "operationId": "agents/list-org-secrets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/artifact-metadata#create-an-artifact-deployment-record" + "url": "https://docs.github.com/rest/agents/secrets#list-organization-secrets" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], - "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": 128 - }, - "physical_environment": { - "type": "string", - "description": "The physical region of the deployment.", - "maxLength": 128 - }, - "cluster": { - "type": "string", - "description": "The deployment cluster.", - "maxLength": 128 - }, - "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", - "maxLength": 256 - }, - "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" - }, - "return_records": { - "type": "boolean", - "default": true, - "description": "If true, the endpoint will return the created or updated record in the response body.\n" - } - }, - "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.", + "description": "Response", "content": { "application/json": { "schema": { "type": "object", + "required": [ + "total_count", + "secrets" + ], "properties": { "total_count": { - "description": "The number of deployment records created", "type": "integer" }, - "deployment_records": { + "secrets": { "type": "array", "items": { - "$ref": "#/components/schemas/artifact-deployment-record" + "$ref": "#/components/schemas/organization-actions-secret" } } - }, - "required": [ - "total_count" - ] + } }, "examples": { "default": { - "$ref": "#/components/examples/artifact-deployment-record-list" + "$ref": "#/components/examples/organization-actions-secret-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "artifact-metadata" + "category": "agents", + "subcategory": "secrets" } } }, - "/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.", + "/orgs/{org}/agents/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\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": [ - "orgs" + "agents" ], - "operationId": "orgs/set-cluster-deployment-records", + "operationId": "agents/get-org-public-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/artifact-metadata#set-cluster-deployment-records" + "url": "https://docs.github.com/rest/agents/secrets#get-an-organization-public-key" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "name": "cluster", - "in": "path", - "description": "The cluster name.", - "required": true, - "schema": { - "type": "string", - "minLength": 1, - "maxLength": 128, - "pattern": "^[a-zA-Z0-9._-]+$" - } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "logical_environment": { - "type": "string", - "description": "The stage of the deployment.", - "minLength": 1, - "maxLength": 128 - }, - "physical_environment": { - "type": "string", - "description": "The physical region of the deployment.", - "maxLength": 128 - }, - "deployments": { - "type": "array", - "description": "The list of deployments to record.", - "maxItems": 1000, - "items": { - "type": "object", - "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", - "maxLength": 100, - "x-multi-segment": true, - "example": "1.2.3" - }, - "status": { - "type": "string", - "description": "The deployment status of the artifact.", - "default": "deployed", - "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": 256 - }, - "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.", - "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" - ] - } - }, - "return_records": { - "type": "boolean", - "default": true, - "description": "If true, the endpoint will return the set records in the response body\n" - } - }, - "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", + "description": "Response", "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" - } - } - }, - "required": [ - "total_count" - ] + "$ref": "#/components/schemas/actions-public-key" }, "examples": { "default": { - "$ref": "#/components/examples/artifact-deployment-record-list" + "$ref": "#/components/examples/actions-public-key" } } } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "agents", + "subcategory": "secrets" + } + } + }, + "/orgs/{org}/agents/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": [ + "agents" + ], + "operationId": "agents/get-org-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/agents/secrets#get-an-organization-secret" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" }, - "403": { - "description": "Forbidden", + { + "$ref": "#/components/parameters/secret-name" + } + ], + "responses": { + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/basic-error" + "$ref": "#/components/schemas/organization-actions-secret" }, "examples": { - "insufficient_repo_permissions": { - "value": { - "message": { - "cause": "artifact metadata write permission required on one or more repositories", - "repositories": [ - 123, - 345 - ] - } - } + "default": { + "$ref": "#/components/examples/organization-actions-secret" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "artifact-metadata" + "category": "agents", + "subcategory": "secrets" } - } - }, - "/orgs/{org}/artifacts/metadata/storage-record": { - "post": { - "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.", + }, + "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": [ - "orgs" + "agents" ], - "operationId": "orgs/create-artifact-storage-record", + "operationId": "agents/create-or-update-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/artifact-metadata#create-artifact-metadata-storage-record" + "url": "https://docs.github.com/rest/agents/secrets#create-or-update-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/secret-name" } ], "requestBody": { @@ -17825,96 +18381,48 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "The name of the artifact.", - "example": "libfoo", - "minLength": 1, - "maxLength": 256 - }, - "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": { + "encrypted_value": { "type": "string", - "format": "uri", - "pattern": "^https://", - "description": "The base URL of the artifact registry.", - "example": "https://reg.example.com/artifactory/", - "minLength": 1 + "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/agents/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})$" }, - "repository": { + "key_id": { "type": "string", - "description": "The repository name within the registry.", - "example": "bar" + "description": "ID of the key you used to encrypt the secret." }, - "status": { + "visibility": { "type": "string", - "description": "The status of the artifact (e.g., active, inactive).", - "example": "active", + "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": [ - "active", - "eol", - "deleted" - ], - "default": "active" - }, - "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" + "all", + "private", + "selected" + ] }, - "return_records": { - "type": "boolean", - "default": true, - "description": "If true, the endpoint will return the created record in the response body.\n" + "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/agents/secrets#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/agents/secrets#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/agents/secrets#remove-selected-repository-from-an-organization-secret) endpoints.", + "items": { + "type": "integer" + } } }, "required": [ - "name", - "digest", - "registry_url" + "encrypted_value", + "key_id", + "visibility" ] }, "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" + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678", + "visibility": "selected", + "selected_repository_ids": [ + 1296269, + 1296280 + ] } } } @@ -17922,183 +18430,88 @@ } }, "responses": { - "200": { - "description": "Artifact metadata storage record stored successfully.", + "201": { + "description": "Response when creating a secret", "content": { "application/json": { "schema": { - "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" - } - } - } - } - }, - "required": [ - "total_count" - ] + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "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" - } - ] - } + "value": null } } } } }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" + "204": { + "description": "Response when updating a secret" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "artifact-metadata" + "category": "agents", + "subcategory": "secrets" } - } - }, - "/orgs/{org}/artifacts/{subject_digest}/metadata/deployment-records": { - "get": { - "summary": "List artifact deployment records", - "description": "List deployment records for an artifact metadata associated with an organization.", + }, + "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": [ - "orgs" + "agents" ], - "operationId": "orgs/list-artifact-deployment-records", + "operationId": "agents/delete-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/artifact-metadata#list-artifact-deployment-records" + "url": "https://docs.github.com/rest/agents/secrets#delete-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/subject-digest" + "$ref": "#/components/parameters/secret-name" } ], "responses": { - "200": { - "description": "Successful response", - "content": { - "application/json": { - "schema": { - "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/artifact-deployment-record-list" - } - } - } - } + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "artifact-metadata" + "category": "agents", + "subcategory": "secrets" } } }, - "/orgs/{org}/artifacts/{subject_digest}/metadata/storage-records": { + "/orgs/{org}/agents/secrets/{secret_name}/repositories": { "get": { - "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.", + "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": [ - "orgs" + "agents" ], - "operationId": "orgs/list-artifact-storage-records", + "operationId": "agents/list-selected-repos-for-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/artifact-metadata#list-artifact-storage-records" + "url": "https://docs.github.com/rest/agents/secrets#list-selected-repositories-for-an-organization-secret" }, "parameters": [ { "$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, - "example": "sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72", - "schema": { - "type": "string", - "minLength": 71, - "maxLength": 71, - "pattern": "^sha256:[a-f0-9]{64}$" - }, - "x-multi-segment": true + "$ref": "#/components/parameters/secret-name" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/per-page" } ], "responses": { @@ -18108,65 +18521,25 @@ "application/json": { "schema": { "type": "object", + "required": [ + "total_count", + "repositories" + ], "properties": { "total_count": { - "description": "The number of storage records for this digest and organization", - "example": 3, "type": "integer" }, - "storage_records": { + "repositories": { "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" - } - } + "$ref": "#/components/schemas/minimal-repository" } } } }, "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" - } - ] - } + "$ref": "#/components/examples/public-repository-paginated" } } } @@ -18176,35 +18549,27 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "artifact-metadata" + "category": "agents", + "subcategory": "secrets" } - } - }, - "/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).", + }, + "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/agents/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": [ - "orgs" + "agents" ], - "operationId": "orgs/list-attestations-bulk", + "operationId": "agents/set-selected-repos-for-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/attestations#list-attestations-by-bulk-subject-digests" + "url": "https://docs.github.com/rest/agents/secrets#set-selected-repositories-for-an-organization-secret" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/pagination-before" - }, - { - "$ref": "#/components/parameters/pagination-after" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/secret-name" } ], "requestBody": { @@ -18214,385 +18579,106 @@ "schema": { "type": "object", "properties": { - "subject_digests": { + "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/agents/secrets#add-selected-repository-to-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/agents/secrets#remove-selected-repository-from-an-organization-secret) endpoints.", "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." + "type": "integer" + } } }, "required": [ - "subject_digests" + "selected_repository_ids" ] }, "examples": { "default": { - "$ref": "#/components/examples/bulk-subject-digest-body" - }, - "withPredicateType": { - "$ref": "#/components/examples/bulk-subject-digest-body-with-predicate-type" + "value": { + "selected_repository_ids": [ + 64780797 + ] + } } } } } }, "responses": { - "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" - }, - "x-github-breaking-changes": [ - { - "changeset": "remove_bundle", - "patch": { - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "properties": { - "attestations_subject_digests": { - "additionalProperties": { - "items": { - "properties": { - "bundle": null - } - } - } - } - } - } - } - } - } - } - }, - "version": "2026-03-10" - } - ] - } - }, - "/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": { + "204": { "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "attestations" + "category": "agents", + "subcategory": "secrets" } } }, - "/orgs/{org}/attestations/digest/{subject_digest}": { - "delete": { - "summary": "Delete attestations by subject digest", - "description": "Delete an artifact attestation by subject digest.", + "/orgs/{org}/agents/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/agents/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": [ - "orgs" + "agents" ], - "operationId": "orgs/delete-attestations-by-subject-digest", + "operationId": "agents/add-selected-repo-to-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/attestations#delete-attestations-by-subject-digest" + "url": "https://docs.github.com/rest/agents/secrets#add-selected-repository-to-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "name": "subject_digest", - "description": "Subject Digest", + "$ref": "#/components/parameters/secret-name" + }, + { + "name": "repository_id", "in": "path", "required": true, "schema": { - "type": "string" - }, - "x-multi-segment": true + "type": "integer" + } } ], "responses": { - "200": { - "description": "Response" - }, "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": true, - "category": "orgs", - "subcategory": "attestations" + "category": "agents", + "subcategory": "secrets" } - } - }, - "/orgs/{org}/attestations/repositories": { - "get": { - "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", + }, + "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/agents/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": [ - "orgs" + "agents" ], - "operationId": "orgs/list-attestation-repositories", + "operationId": "agents/remove-selected-repo-from-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/attestations#list-attestation-repositories" + "url": "https://docs.github.com/rest/agents/secrets#remove-selected-repository-from-an-organization-secret" }, "parameters": [ - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/pagination-before" - }, - { - "$ref": "#/components/parameters/pagination-after" - }, { "$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" - } - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "object", - "properties": { - "id": { - "type": "integer" - }, - "name": { - "type": "string" - } - } - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/list-attestation-repositories" - } - } - } - } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "attestations" - } - } - }, - "/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": [ - "orgs" - ], - "operationId": "orgs/delete-attestations-by-id", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/attestations#delete-attestations-by-id" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/secret-name" }, { - "name": "attestation_id", - "description": "Attestation ID", + "name": "repository_id", "in": "path", "required": true, "schema": { @@ -18601,70 +18687,42 @@ } ], "responses": { - "200": { - "description": "Response" - }, "204": { - "description": "Response" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "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": true, - "category": "orgs", - "subcategory": "attestations" + "category": "agents", + "subcategory": "secrets" } } }, - "/orgs/{org}/attestations/{subject_digest}": { + "/orgs/{org}/agents/variables": { "get": { - "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).", + "summary": "List organization variables", + "description": "Lists all agent variables available in an organization.\nReturned variables include their values.\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" + "agents" ], - "operationId": "orgs/list-attestations", + "operationId": "agents/list-org-variables", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/attestations#list-attestations" + "url": "https://docs.github.com/rest/agents/variables#list-organization-variables" }, "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 + "$ref": "#/components/parameters/variables-per-page" }, { - "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" - } + "$ref": "#/components/parameters/page" } ], "responses": { @@ -18674,127 +18732,124 @@ "application/json": { "schema": { "type": "object", + "required": [ + "total_count", + "variables" + ], "properties": { - "attestations": { + "total_count": { + "type": "integer" + }, + "variables": { "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" - } - } + "$ref": "#/components/schemas/organization-actions-variable" } } } }, "examples": { "default": { - "$ref": "#/components/examples/list-attestations" + "$ref": "#/components/examples/organization-actions-variables-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "attestations" - }, - "x-github-breaking-changes": [ - { - "changeset": "remove_bundle", - "patch": { - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "properties": { - "attestations": { - "items": { - "properties": { - "bundle": null - } - } - } - } - } - } - } - } - } - }, - "version": "2026-03-10" - } - ] - } - }, - "/orgs/{org}/blocks": { - "get": { - "summary": "List users blocked by an organization", - "description": "List the users blocked by an organization.", + "category": "agents", + "subcategory": "variables" + } + }, + "post": { + "summary": "Create an organization variable", + "description": "Creates an organization agent 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" + "agents" ], - "operationId": "orgs/list-blocked-users", + "operationId": "agents/create-org-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/blocking#list-users-blocked-by-an-organization" + "url": "https://docs.github.com/rest/agents/variables#create-an-organization-variable" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], + "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" + } + } + }, + "required": [ + "name", + "value", + "visibility" + ] + }, + "examples": { + "default": { + "value": { + "name": "USERNAME", + "value": "octocat", + "visibility": "selected", + "selected_repository_ids": [ + 1296269, + 1296280 + ] + } + } + } + } + } + }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "Response when creating a variable", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "value": null } } } @@ -18804,41 +18859,43 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "blocking" + "category": "agents", + "subcategory": "variables" } } }, - "/orgs/{org}/blocks/{username}": { + "/orgs/{org}/agents/variables/{name}": { "get": { - "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.", + "summary": "Get an organization variable", + "description": "Gets a specific agent 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": [ - "orgs" + "agents" ], - "operationId": "orgs/check-blocked-user", + "operationId": "agents/get-org-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/blocking#check-if-a-user-is-blocked-by-an-organization" + "url": "https://docs.github.com/rest/agents/variables#get-an-organization-variable" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/variable-name" } ], "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/organization-actions-variable" + }, + "examples": { + "default": { + "$ref": "#/components/examples/organization-actions-variable" + } } } } @@ -18847,61 +18904,107 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "blocking" + "category": "agents", + "subcategory": "variables" } }, - "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.", + "patch": { + "summary": "Update an organization variable", + "description": "Updates an organization agent 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": [ - "orgs" + "agents" ], - "operationId": "orgs/block-user", + "operationId": "agents/update-org-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/blocking#block-a-user-from-an-organization" + "url": "https://docs.github.com/rest/agents/variables#update-an-organization-variable" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "$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" - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "blocking" + "category": "agents", + "subcategory": "variables" } }, "delete": { - "summary": "Unblock a user from an organization", - "description": "Unblocks the given user on behalf of the specified organization.", + "summary": "Delete an organization variable", + "description": "Deletes an organization agent 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": [ - "orgs" + "agents" ], - "operationId": "orgs/unblock-user", + "operationId": "agents/delete-org-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/blocking#unblock-a-user-from-an-organization" + "url": "https://docs.github.com/rest/agents/variables#delete-an-organization-variable" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/variable-name" } ], "responses": { @@ -18912,60 +19015,35 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "blocking" + "category": "agents", + "subcategory": "variables" } } }, - "/orgs/{org}/campaigns": { + "/orgs/{org}/agents/variables/{name}/repositories": { "get": { - "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.", + "summary": "List selected repositories for an organization variable", + "description": "Lists all repositories that can access an organization agent 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": [ - "campaigns" + "agents" ], - "operationId": "campaigns/list-org-campaigns", + "operationId": "agents/list-selected-repos-for-org-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/campaigns/campaigns#list-campaigns-for-an-organization" + "url": "https://docs.github.com/rest/agents/variables#list-selected-repositories-for-an-organization-variable" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/direction" + "$ref": "#/components/parameters/variable-name" }, { - "name": "state", - "description": "If specified, only campaigns with this state will be returned.", - "in": "query", - "required": false, - "schema": { - "$ref": "#/components/schemas/campaign-state" - } + "$ref": "#/components/parameters/page" }, { - "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" - } + "$ref": "#/components/parameters/per-page" } ], "responses": { @@ -18974,52 +19052,59 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/campaign-summary" + "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/campaign-org-items" + "$ref": "#/components/examples/public-repository-paginated" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "409": { + "description": "Response when the visibility of the variable is not set to `selected`" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "campaigns", - "subcategory": "campaigns" + "category": "agents", + "subcategory": "variables" } }, - "post": { - "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.", + "put": { + "summary": "Set selected repositories for an organization variable", + "description": "Replaces all repositories for an organization agent 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": [ - "campaigns" + "agents" ], - "operationId": "campaigns/create-campaign", + "operationId": "agents/set-selected-repos-for-org-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/campaigns/campaigns#create-a-campaign-for-an-organization" + "url": "https://docs.github.com/rest/agents/variables#set-selected-repositories-for-an-organization-variable" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/variable-name" } ], "requestBody": { @@ -19028,118 +19113,24 @@ "application/json": { "schema": { "type": "object", - "additionalProperties": false, "properties": { - "name": { - "description": "The name of the campaign", - "type": "string", - "minLength": 1, - "maxLength": 50 - }, - "description": { - "description": "A description for the campaign", - "type": "string", - "minLength": 1, - "maxLength": 255 - }, - "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": { - "description": "The login of each manager", - "type": "string" - } - }, - "team_managers": { - "description": "The slugs of the teams to set as the campaign managers.", + "selected_repository_ids": { "type": "array", - "maxItems": 10, + "description": "The IDs of the repositories that can access the organization variable.", "items": { - "description": "The slug of each team", - "type": "string" + "type": "integer" } - }, - "ends_at": { - "description": "The end date and time of the campaign. The date must be in the future.", - "type": "string", - "format": "date-time" - }, - "contact_link": { - "description": "The contact link of the campaign. Must be a URI.", - "type": "string", - "format": "uri", - "nullable": true - }, - "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", - "description", - "ends_at" - ], - "oneOf": [ - { - "required": [ - "code_scanning_alerts" - ] - }, - { - "required": [ - "secret_scanning_alerts" - ] - } + "selected_repository_ids" ] }, "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 - ] - } + "selected_repository_ids": [ + 64780797 ] } } @@ -19148,78 +19139,42 @@ } }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/campaign-summary" - }, - "examples": { - "default": { - "$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" - } - } - } - }, - "429": { - "description": "Too Many Requests" + "204": { + "description": "Response" }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "409": { + "description": "Response when the visibility of the variable is not set to `selected`" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "campaigns", - "subcategory": "campaigns" + "category": "agents", + "subcategory": "variables" } } }, - "/orgs/{org}/campaigns/{campaign_number}": { - "get": { - "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.", + "/orgs/{org}/agents/variables/{name}/repositories/{repository_id}": { + "put": { + "summary": "Add selected repository to an organization variable", + "description": "Adds a repository to an organization agent 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 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": [ - "campaigns" + "agents" ], - "operationId": "campaigns/get-campaign-summary", + "operationId": "agents/add-selected-repo-to-org-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/campaigns/campaigns#get-a-campaign-for-an-organization" + "url": "https://docs.github.com/rest/agents/variables#add-selected-repository-to-an-organization-variable" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "name": "campaign_number", - "description": "The campaign number.", + "$ref": "#/components/parameters/variable-name" + }, + { + "name": "repository_id", "in": "path", "required": true, "schema": { @@ -19228,63 +19183,40 @@ } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/campaign-summary" - }, - "examples": { - "default": { - "$ref": "#/components/examples/campaign-summary" - } - } - } - } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "422": { - "description": "Unprocessable Entity", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/basic-error" - } - } - } + "204": { + "description": "Response" }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "409": { + "description": "Response when the visibility of the variable is not set to `selected`" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "campaigns", - "subcategory": "campaigns" + "category": "agents", + "subcategory": "variables" } }, - "patch": { - "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.", + "delete": { + "summary": "Remove selected repository from an organization variable", + "description": "Removes a repository from an organization agent 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": [ - "campaigns" + "agents" ], - "operationId": "campaigns/update-campaign", + "operationId": "agents/remove-selected-repo-from-org-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/campaigns/campaigns#update-a-campaign" + "url": "https://docs.github.com/rest/agents/variables#remove-selected-repository-from-an-organization-variable" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "name": "campaign_number", - "description": "The campaign number.", + "$ref": "#/components/parameters/variable-name" + }, + { + "name": "repository_id", "in": "path", "required": true, "schema": { @@ -19292,371 +19224,960 @@ } } ], + "responses": { + "204": { + "description": "Response" + }, + "409": { + "description": "Response when the visibility of the variable is not set to `selected`" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "agents", + "subcategory": "variables" + } + } + }, + "/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": [ + "orgs" + ], + "operationId": "orgs/create-artifact-deployment-record", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/artifact-metadata#create-an-artifact-deployment-record" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + } + ], "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 artifact.", "minLength": 1, - "maxLength": 50 + "maxLength": 256, + "example": "libfoo" }, - "description": { - "description": "A description for the campaign", + "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": 255 + "maxLength": 100, + "x-multi-segment": true, + "example": "1.2.3" }, - "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" - } + "status": { + "type": "string", + "description": "The status of the artifact. Can be either deployed or decommissioned.", + "enum": [ + "deployed", + "decommissioned" + ] }, - "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" - } + "logical_environment": { + "type": "string", + "description": "The stage of the deployment.", + "minLength": 1, + "maxLength": 128 }, - "ends_at": { - "description": "The end date and time of the campaign, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "physical_environment": { "type": "string", - "format": "date-time" + "description": "The physical region of the deployment.", + "maxLength": 128 }, - "contact_link": { - "description": "The contact link of the campaign. Must be a URI.", + "cluster": { "type": "string", - "format": "uri", - "nullable": true + "description": "The deployment cluster.", + "maxLength": 128 }, - "state": { - "$ref": "#/components/schemas/campaign-state" - } - } - }, - "examples": { - "default": { - "value": { - "name": "Critical CodeQL alerts" - } - } - } - } - } - }, - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/campaign-summary" + "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", + "maxLength": 256 + }, + "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" + }, + "return_records": { + "type": "boolean", + "default": true, + "description": "If true, the endpoint will return the created or updated record in the response body.\n" + } }, - "examples": { - "default": { - "$ref": "#/components/examples/campaign-summary" + "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" + } } } } } - }, - "400": { - "description": "Bad Request", + } + }, + "responses": { + "200": { + "description": "Artifact deployment record stored successfully.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/basic-error" + "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" + } + } + }, + "required": [ + "total_count" + ] + }, + "examples": { + "default": { + "$ref": "#/components/examples/artifact-deployment-record-list" + } } } } }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "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, - "category": "campaigns", - "subcategory": "campaigns" + "category": "orgs", + "subcategory": "artifact-metadata" } - }, - "delete": { - "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.", + } + }, + "/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.\nNote: Artifacts are uniquely identified by the combination of their repository and digest fields. If two entries in the deployments\narray resolve to the same repository and have identical digest fields but differing name and version fields, the endpoint will use\nthe artifact name and version from the record processed first, since a single artifact (identified by repository and digest) can\nonly have one name and version.", "tags": [ - "campaigns" + "orgs" ], - "operationId": "campaigns/delete-campaign", + "operationId": "orgs/set-cluster-deployment-records", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/campaigns/campaigns#delete-a-campaign-for-an-organization" + "url": "https://docs.github.com/rest/orgs/artifact-metadata#set-cluster-deployment-records" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "name": "campaign_number", - "description": "The campaign number.", + "name": "cluster", "in": "path", + "description": "The cluster name.", "required": true, "schema": { - "type": "integer" + "type": "string", + "minLength": 1, + "maxLength": 128, + "pattern": "^[a-zA-Z0-9._-]+$" } } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "logical_environment": { + "type": "string", + "description": "The stage of the deployment.", + "minLength": 1, + "maxLength": 128 + }, + "physical_environment": { + "type": "string", + "description": "The physical region of the deployment.", + "maxLength": 128 + }, + "deployments": { + "type": "array", + "description": "The list of deployments to record.", + "maxItems": 1000, + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the artifact.", + "minLength": 1, + "maxLength": 256 + }, + "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.", + "maxLength": 100, + "x-multi-segment": true, + "example": "1.2.3" + }, + "status": { + "type": "string", + "description": "The deployment status of the artifact.", + "default": "deployed", + "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": 256 + }, + "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.", + "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" + ] + } + }, + "partial_success": { + "type": "boolean", + "default": false, + "description": "When enabled, deployments associated with repositories the actor can write to are processed\nwhile deployments associated with repositories that cannot be resolved or written to by the actor\nare skipped and reported in the `errors` array. When false (the default), the endpoint returns\nan error if any targeted repository cannot be resolved, the actor lacks write access, or no matching attestation can be found.\n" + }, + "return_records": { + "type": "boolean", + "default": true, + "description": "If true, the endpoint will return the set records in the response body\n" + } + }, + "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": { + "owning-team": "platform" + }, + "runtime_risks": [ + "sensitive-data" + ] + } + ] + } + } + } + } + } + }, "responses": { - "204": { - "description": "Deletion successful" + "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" + } + } + }, + "required": [ + "total_count" + ] + }, + "examples": { + "default": { + "$ref": "#/components/examples/artifact-deployment-record-list" + } + } + } + } }, - "404": { - "$ref": "#/components/responses/not_found" + "207": { + "description": "This response format is only returned when `partial_success` is set to true in the request body.\nSuccessfully processed deployments are included in the `deployment_records` field. Records that could\nnot be processed and were skipped because of unresolvable repositories, missing actor permissions, or lack of a matching attestation are\nincluded in the `errors` field.\n", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "total_count": { + "description": "The number of deployment records created or updated.", + "type": "integer" + }, + "deployment_records": { + "type": "array", + "items": { + "$ref": "#/components/schemas/artifact-deployment-record" + } + }, + "errors": { + "type": "array", + "description": "A list of errors for deployments that could not be processed.", + "items": { + "type": "object", + "properties": { + "cause": { + "type": "string", + "description": "The reason the deployment failed processing.", + "enum": [ + "unauthorized", + "not_found" + ] + }, + "deployment": { + "type": "object", + "description": "The deployment payload that could not be processed.", + "properties": { + "name": { + "type": "string", + "description": "The name of the artifact." + }, + "digest": { + "type": "string", + "description": "The digest of the artifact." + }, + "deployment_name": { + "type": "string", + "description": "The name of the deployment that failed processing." + }, + "version": { + "type": "string", + "nullable": true, + "description": "The version of the deployment." + }, + "status": { + "type": "string", + "description": "The deployment status." + }, + "github_repository": { + "type": "string", + "nullable": true, + "description": "The repository associated with the deployment." + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Custom metadata tags for the deployment." + }, + "runtime_risks": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Runtime risk classifications for the deployment." + } + } + } + } + } + } + }, + "required": [ + "total_count" + ] + }, + "examples": { + "partial_success": { + "value": { + "total_count": 1, + "deployment_records": [ + { + "id": 42, + "digest": "sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72", + "logical_environment": "prod", + "physical_environment": "us-east-1a", + "cluster": "production-cluster", + "deployment_name": "deployment-pod", + "tags": { + "owning-team": "platform" + }, + "runtime_risks": [ + "sensitive-data" + ], + "created_at": "2024-01-01T12:00:00Z", + "updated_at": "2024-01-01T12:30:00Z", + "attestation_id": 777 + } + ], + "errors": [ + { + "cause": "unauthorized", + "deployment": { + "name": "my-image", + "digest": "sha256:5aa19f9a13f67a644f6d8528e2eb5cf64431e236df5dbbd44ff9b9e3f6fc6cb2", + "deployment_name": "restricted-deployment", + "version": "2.1.1", + "status": "deployed", + "github_repository": "private-repo", + "tags": { + "owning-team": "platform" + }, + "runtime_risks": [ + "sensitive-data" + ] + } + } + ] + } + } + } + } + } }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + }, + "examples": { + "insufficient_repo_permissions": { + "value": { + "message": { + "cause": "artifact metadata write permission required on one or more repositories", + "repositories": [ + 123, + 345 + ] + } + } + } + } + } + } + }, + "404": { + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + }, + "examples": { + "not_found": { + "value": { + "message": { + "cause": "One or more repositories do not exist", + "repositories": [ + "repoA", + "repoB" + ] + } + } + } + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "campaigns", - "subcategory": "campaigns" + "category": "orgs", + "subcategory": "artifact-metadata" } } }, - "/orgs/{org}/code-scanning/alerts": { - "get": { - "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.", + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs": { + "post": { + "summary": "Create a cluster deployment records job", + "description": "Create a background job to set deployment records for a given cluster.\nPerforms validation and permission checks synchronously, returning rejected\ndeployments immediately, then enqueues a background job for the actual\ndeployment updates. Use the companion GET endpoint to poll for job status.", "tags": [ - "code-scanning" + "orgs" ], - "operationId": "code-scanning/list-alerts-for-org", + "operationId": "orgs/create-cluster-deployment-records-job", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#list-code-scanning-alerts-for-an-organization" + "url": "https://docs.github.com/rest/orgs/artifact-metadata#create-a-cluster-deployment-records-job" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/tool-name" - }, - { - "$ref": "#/components/parameters/tool-guid" - }, - { - "$ref": "#/components/parameters/pagination-before" - }, - { - "$ref": "#/components/parameters/pagination-after" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$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, + "name": "cluster", + "in": "path", + "description": "The cluster name.", + "required": true, "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, - "schema": { - "type": "string" + "minLength": 1, + "maxLength": 128, + "pattern": "^[a-zA-Z0-9._-]+$" } } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "logical_environment": { + "type": "string", + "description": "The stage of the deployment.", + "minLength": 1, + "maxLength": 128 + }, + "physical_environment": { + "type": "string", + "description": "The physical region of the deployment.", + "maxLength": 128 + }, + "deployments": { + "type": "array", + "description": "The list of deployments to record.", + "maxItems": 5000, + "items": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the artifact.", + "minLength": 1, + "maxLength": 256 + }, + "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.", + "maxLength": 100, + "x-multi-segment": true, + "example": "1.2.3" + }, + "status": { + "type": "string", + "description": "The deployment status of the artifact.", + "default": "deployed", + "enum": [ + "deployed", + "decommissioned" + ] + }, + "deployment_name": { + "type": "string", + "description": "The unique identifier for the deployment represented by the new record.\n", + "minLength": 1, + "maxLength": 256 + }, + "github_repository": { + "type": "string", + "description": "The name of the GitHub repository associated with the artifact.", + "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": { + "owning-team": "platform" + }, + "runtime_risks": [ + "sensitive-data" + ] + } + ] + } + } + } + } + } + }, "responses": { - "200": { - "description": "Response", + "202": { + "description": "Job created successfully. Authorized deployments will be processed in the background.\n", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/code-scanning-organization-alert-items" - } + "type": "object", + "properties": { + "job_id": { + "description": "The ID of the created job.", + "type": "integer" + }, + "errors": { + "description": "Deployments that were rejected during authorization.", + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "job_id" + ] }, "examples": { "default": { - "$ref": "#/components/examples/code-scanning-organization-alert-items" + "value": { + "job_id": 123 + } } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } } } }, "404": { - "$ref": "#/components/responses/not_found" + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "409": { + "description": "A job is already in progress for this cluster.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "code-scanning", - "subcategory": "code-scanning" + "category": "orgs", + "subcategory": "artifact-metadata" } } }, - "/orgs/{org}/code-security/configurations": { + "/orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs/{job_id}": { "get": { - "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.", + "summary": "Get cluster deployment records job status", + "description": "Get the status and results of a previously created cluster deployment records job.", "tags": [ - "code-security" + "orgs" ], - "operationId": "code-security/get-configurations-for-org", + "operationId": "orgs/get-cluster-deployment-records-job", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-security/configurations#get-code-security-configurations-for-an-organization" + "url": "https://docs.github.com/rest/orgs/artifact-metadata#get-cluster-deployment-records-job-status" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "name": "target_type", - "in": "query", - "description": "The target type of the code security configuration", - "required": false, + "name": "cluster", + "in": "path", + "description": "The cluster name.", + "required": true, "schema": { "type": "string", - "enum": [ - "global", - "all" - ], - "default": "all" + "minLength": 1, + "maxLength": 128, + "pattern": "^[a-zA-Z0-9._-]+$" } }, { - "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, + "name": "job_id", + "in": "path", + "description": "The ID of the job.", + "required": true, "schema": { - "type": "integer", - "default": 30 + "type": "integer" } - }, - { - "$ref": "#/components/parameters/pagination-before" - }, - { - "$ref": "#/components/parameters/pagination-after" } ], "responses": { "200": { - "description": "Response", + "description": "Job status retrieved successfully.\n", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/code-security-configuration" - } + "type": "object", + "properties": { + "job_id": { + "description": "The ID of the job.", + "type": "integer" + }, + "status": { + "description": "The current status of the job.", + "type": "string", + "enum": [ + "pending", + "processing", + "completed", + "failed" + ] + }, + "started_at": { + "description": "When the job started processing (only present when processing, completed, or failed).", + "type": "string", + "format": "date-time" + }, + "total_count": { + "description": "The number of records successfully mutated (only present when completed).", + "type": "integer" + }, + "errors": { + "description": "Processing errors (only present when completed or failed).", + "type": "array", + "items": { + "type": "object" + } + } + }, + "required": [ + "job_id", + "status" + ] }, "examples": { "default": { - "$ref": "#/components/examples/code-security-configuration-list" + "value": { + "job_id": 123, + "status": "completed", + "started_at": "2026-06-10T12:00:00Z", + "total_count": 5 + } } } } } }, - "403": { - "$ref": "#/components/responses/forbidden" - }, "404": { - "$ref": "#/components/responses/not_found" + "description": "Resource not found", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "code-security", - "subcategory": "configurations" + "category": "orgs", + "subcategory": "artifact-metadata" } - }, + } + }, + "/orgs/{org}/artifacts/metadata/storage-record": { "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.", + "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": [ - "code-security" + "orgs" ], - "operationId": "code-security/create-configuration", + "operationId": "orgs/create-artifact-storage-record", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-security/configurations#create-a-code-security-configuration" + "url": "https://docs.github.com/rest/orgs/artifact-metadata#create-artifact-metadata-storage-record" }, "parameters": [ { @@ -19669,303 +20190,242 @@ "application/json": { "schema": { "type": "object", - "additionalProperties": false, "properties": { "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" - ], - "default": "disabled" + "description": "The name of the artifact.", + "example": "libfoo", + "minLength": 1, + "maxLength": 256 }, - "code_security": { + "digest": { "type": "string", - "description": "The enablement status of GitHub Code Security features.", - "enum": [ - "enabled", - "disabled", - "not_set" - ] + "description": "The digest of the artifact (algorithm:hex-encoded-digest).", + "example": "sha256:0ecbaa601dba202129058746c7d8e3f282d0efb5fff0...", + "minLength": 71, + "maxLength": 71, + "pattern": "^sha256:[a-f0-9]{64}$" }, - "dependency_graph": { + "version": { "type": "string", - "description": "The enablement status of Dependency Graph", - "enum": [ - "enabled", - "disabled", - "not_set" - ], - "default": "enabled" + "description": "The artifact version.", + "minLength": 1, + "maxLength": 100, + "x-multi-segment": true, + "example": "1.2.3" }, - "dependency_graph_autosubmit_action": { + "artifact_url": { "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 - } - } + "format": "uri", + "pattern": "^https://", + "description": "The URL where the artifact is stored.", + "example": "https://reg.example.com/artifactory/bar/libfoo-1.2.3", + "maxLength": 152 }, - "dependabot_alerts": { + "path": { "type": "string", - "description": "The enablement status of Dependabot alerts", - "enum": [ - "enabled", - "disabled", - "not_set" - ], - "default": "disabled" + "format": "uri", + "description": "The path of the artifact.", + "example": "com/github/bar/libfoo-1.2.3", + "maxLength": 512 }, - "dependabot_security_updates": { + "registry_url": { "type": "string", - "description": "The enablement status of Dependabot security updates", - "enum": [ - "enabled", - "disabled", - "not_set" - ], - "default": "disabled" + "format": "uri", + "pattern": "^https://", + "description": "The base URL of the artifact registry.", + "example": "https://reg.example.com/artifactory/", + "minLength": 1, + "maxLength": 256 }, - "dependabot_delegated_alert_dismissal": { + "repository": { "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" + "description": "The repository name within the registry.", + "example": "bar", + "maxLength": 128 }, - "code_scanning_default_setup": { + "status": { "type": "string", - "description": "The enablement status of code scanning default setup", + "description": "The status of the artifact (e.g., active, inactive).", + "example": "active", "enum": [ - "enabled", - "disabled", - "not_set" + "active", + "eol", + "deleted" ], - "default": "disabled" - }, - "code_scanning_default_setup_options": { - "$ref": "#/components/schemas/code-scanning-default-setup-options" + "default": "active" }, - "code_scanning_delegated_alert_dismissal": { + "github_repository": { "type": "string", - "description": "The enablement status of code scanning delegated alert dismissal", - "enum": [ - "enabled", - "disabled", - "not_set" - ], - "default": "not_set" + "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" }, - "secret_protection": { - "type": "string", - "description": "The enablement status of GitHub Secret Protection features.", - "enum": [ - "enabled", - "disabled", - "not_set" - ] + "return_records": { + "type": "boolean", + "default": true, + "description": "If true, the endpoint will return the created record in the response body.\n" + } + }, + "required": [ + "name", + "digest", + "registry_url" + ] + }, + "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": { + "200": { + "description": "Artifact metadata storage record stored successfully.", + "content": { + "application/json": { + "schema": { + "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" + } + } + } + } }, - "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" - ] - }, - "mode": { - "type": "string", - "description": "The bypass mode for the reviewer", - "enum": [ - "ALWAYS", - "EXEMPT" - ], - "default": "ALWAYS" - } - } + "required": [ + "total_count" + ] + }, + "examples": { + "default": { + "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" } - } + ] } - }, - "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" - ] - }, - "secret_scanning_extended_metadata": { - "type": "string", - "description": "The enablement status of secret scanning extended metadata", - "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 enforcement status for a security configuration", - "enum": [ - "enforced", - "unenforced" - ], - "default": "enforced" - } - }, - "required": [ - "name", - "description" - ] - }, - "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" } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "artifact-metadata" + } + } + }, + "/orgs/{org}/artifacts/{subject_digest}/metadata/deployment-records": { + "get": { + "summary": "List artifact deployment records", + "description": "List deployment records for an artifact metadata associated with an organization.", + "tags": [ + "orgs" + ], + "operationId": "orgs/list-artifact-deployment-records", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/artifact-metadata#list-artifact-deployment-records" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/subject-digest" + } + ], "responses": { - "201": { - "description": "Successfully created code security configuration", + "200": { + "description": "Successful response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/code-security-configuration" + "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/code-security-configuration" + "$ref": "#/components/examples/artifact-deployment-record-list" } } } @@ -19975,26 +20435,40 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "code-security", - "subcategory": "configurations" + "category": "orgs", + "subcategory": "artifact-metadata" } } }, - "/orgs/{org}/code-security/configurations/defaults": { + "/orgs/{org}/artifacts/{subject_digest}/metadata/storage-records": { "get": { - "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.", + "summary": "List artifact storage records", + "description": "List artifact storage records with a given subject digest for repositories owned by an organization.\n\nResults are filtered by the authenticated user's permissions; records for repositories the user cannot read are omitted. Fine-grained access tokens require the `artifact-metadata:read` permission.", "tags": [ - "code-security" + "orgs" ], - "operationId": "code-security/get-default-configurations", + "operationId": "orgs/list-artifact-storage-records", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-security/configurations#get-default-code-security-configurations" + "url": "https://docs.github.com/rest/orgs/artifact-metadata#list-artifact-storage-records" }, "parameters": [ { "$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, + "example": "sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72", + "schema": { + "type": "string", + "minLength": 71, + "maxLength": 71, + "pattern": "^sha256:[a-f0-9]{64}$" + }, + "x-multi-segment": true } ], "responses": { @@ -20003,47 +20477,102 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/code-security-default-configurations" + "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": { - "$ref": "#/components/examples/code-security-default-configurations" + "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" + } + ] + } } } } } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "code-security", - "subcategory": "configurations" + "category": "orgs", + "subcategory": "artifact-metadata" } } }, - "/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.", + "/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": [ - "code-security" + "orgs" ], - "operationId": "code-security/detach-configuration", + "operationId": "orgs/list-attestations-bulk", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-security/configurations#detach-configurations-from-repositories" + "url": "https://docs.github.com/rest/orgs/attestations#list-attestations-by-bulk-subject-digests" }, "parameters": [ + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" + }, { "$ref": "#/components/parameters/org" } @@ -20054,129 +20583,167 @@ "application/json": { "schema": { "type": "object", - "additionalProperties": false, "properties": { - "selected_repository_ids": { + "subject_digests": { "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." - } + "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": { - "summary": "Example for detaching repositories from configurations.", - "value": { - "selected_repository_ids": [ - 32, - 91 - ] - } + "$ref": "#/components/examples/bulk-subject-digest-body" + }, + "withPredicateType": { + "$ref": "#/components/examples/bulk-subject-digest-body-with-predicate-type" } } } } }, - "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": true, - "category": "code-security", - "subcategory": "configurations" - } - } - }, - "/orgs/{org}/code-security/configurations/{configuration_id}": { - "get": { - "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": [ - "code-security" - ], - "operationId": "code-security/get-configuration", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/code-security/configurations#get-a-code-security-configuration" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/configuration-id" - } - ], "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/code-security-configuration" + "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/code-security-configuration" + "$ref": "#/components/examples/list-attestations-bulk" } } } } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "code-security", - "subcategory": "configurations" - } - }, - "patch": { - "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.", + "category": "orgs", + "subcategory": "attestations" + }, + "x-github-breaking-changes": [ + { + "changeset": "remove_bundle", + "patch": { + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": { + "attestations_subject_digests": { + "additionalProperties": { + "items": { + "properties": { + "bundle": null + } + } + } + } + } + } + } + } + } + } + }, + "version": "2026-03-10" + } + ] + } + }, + "/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": [ - "code-security" + "orgs" ], - "operationId": "code-security/update-configuration", + "operationId": "orgs/delete-attestations-bulk", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-security/configurations#update-a-code-security-configuration" + "url": "https://docs.github.com/rest/orgs/attestations#delete-attestations-in-bulk" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/configuration-id" } ], "requestBody": { @@ -20185,263 +20752,59 @@ "application/json": { "schema": { "type": "object", - "additionalProperties": false, - "properties": { - "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", + "oneOf": [ + { "properties": { - "labeled_runners": { - "type": "boolean", - "description": "Whether to use runners labeled with 'dependency-submission' or standard GitHub runners." + "subject_digests": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of subject digests associated with the artifact attestations to delete.", + "minItems": 1, + "maxItems": 1024 } - } - }, - "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" + }, + "required": [ + "subject_digests" ] }, - "secret_scanning_delegated_bypass_options": { - "type": "object", - "description": "Feature options for secret scanning delegated bypass", + { "properties": { - "reviewers": { + "attestation_ids": { "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" - ] - }, - "mode": { - "type": "string", - "description": "The bypass mode for the reviewer", - "enum": [ - "ALWAYS", - "EXEMPT" - ], - "default": "ALWAYS" - } - } - } + "type": "integer" + }, + "description": "List of unique IDs associated with the artifact attestations to delete.", + "minItems": 1, + "maxItems": 1024 } - } - }, - "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" - ] - }, - "secret_scanning_extended_metadata": { - "type": "string", - "description": "The enablement status of secret scanning extended metadata", - "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" + }, + "required": [ + "attestation_ids" ] } - } + ], + "description": "The request body must include either `subject_digests` or `attestation_ids`, but not both." }, "examples": { - "default": { - "summary": "Example for updating a code security configuration", + "by-subject-digests": { + "summary": "Delete by subject digests", "value": { - "name": "octo-org recommended settings v2", - "secret_scanning": "disabled", - "code_scanning_default_setup": "enabled" + "subject_digests": [ + "sha256:abc123", + "sha512:def456" + ] + } + }, + "by-attestation-ids": { + "summary": "Delete by attestation IDs", + "value": { + "attestation_ids": [ + 111, + 222 + ] } } } @@ -20450,240 +20813,169 @@ }, "responses": { "200": { - "description": "Response when a configuration is updated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/code-security-configuration" - }, - "examples": { - "default": { - "$ref": "#/components/examples/code-security-configuration-updated" - } - } - } - } + "description": "Response" }, - "204": { - "description": "Response when no new updates are made" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "code-security", - "subcategory": "configurations" + "category": "orgs", + "subcategory": "attestations" } - }, + } + }, + "/orgs/{org}/attestations/digest/{subject_digest}": { "delete": { - "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.", + "summary": "Delete attestations by subject digest", + "description": "Delete an artifact attestation by subject digest.", "tags": [ - "code-security" + "orgs" ], - "operationId": "code-security/delete-configuration", + "operationId": "orgs/delete-attestations-by-subject-digest", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-security/configurations#delete-a-code-security-configuration" + "url": "https://docs.github.com/rest/orgs/attestations#delete-attestations-by-subject-digest" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/configuration-id" + "name": "subject_digest", + "description": "Subject Digest", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "x-multi-segment": true } ], "responses": { - "204": { - "$ref": "#/components/responses/no_content" - }, - "400": { - "$ref": "#/components/responses/bad_request" + "200": { + "description": "Response" }, - "403": { - "$ref": "#/components/responses/forbidden" + "204": { + "description": "Response" }, "404": { "$ref": "#/components/responses/not_found" - }, - "409": { - "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "code-security", - "subcategory": "configurations" + "category": "orgs", + "subcategory": "attestations" } } }, - "/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.", + "/orgs/{org}/attestations/repositories": { + "get": { + "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": [ - "code-security" + "orgs" ], - "operationId": "code-security/attach-configuration", + "operationId": "orgs/list-attestation-repositories", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-security/configurations#attach-a-configuration-to-repositories" + "url": "https://docs.github.com/rest/orgs/attestations#list-attestation-repositories" }, "parameters": [ + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" + }, { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/configuration-id" + "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" + } } ], - "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." + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + } } } }, - "required": [ - "scope" - ] - }, - "examples": { - "default": { - "summary": "Example for attaching a configuration to some repositories", - "value": { - "scope": "selected", - "selected_repository_ids": [ - 32, - 91 - ] + "examples": { + "default": { + "$ref": "#/components/examples/list-attestation-repositories" } } } } } }, - "responses": { - "202": { - "$ref": "#/components/responses/accepted" - } - }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "code-security", - "subcategory": "configurations" + "category": "orgs", + "subcategory": "attestations" } } }, - "/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.", + "/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": [ - "code-security" + "orgs" ], - "operationId": "code-security/set-configuration-as-default", + "operationId": "orgs/delete-attestations-by-id", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-security/configurations#set-a-code-security-configuration-as-a-default-for-an-organization" + "url": "https://docs.github.com/rest/orgs/attestations#delete-attestations-by-id" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/configuration-id" + "name": "attestation_id", + "description": "Attestation ID", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], - "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": { "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" - } - } - } - } - } - } + "description": "Response" + }, + "204": { + "description": "Response" }, "403": { "$ref": "#/components/responses/forbidden" @@ -20695,54 +20987,53 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "code-security", - "subcategory": "configurations" + "category": "orgs", + "subcategory": "attestations" } } }, - "/orgs/{org}/code-security/configurations/{configuration_id}/repositories": { + "/orgs/{org}/attestations/{subject_digest}": { "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.", + "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": [ - "code-security" + "orgs" ], - "operationId": "code-security/get-repositories-for-configuration", + "operationId": "orgs/list-attestations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-security/configurations#get-repositories-associated-with-a-code-security-configuration" + "url": "https://docs.github.com/rest/orgs/attestations#list-attestations" }, "parameters": [ { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/configuration-id" + "$ref": "#/components/parameters/pagination-before" }, { - "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/pagination-after" }, { - "$ref": "#/components/parameters/pagination-before" + "$ref": "#/components/parameters/org" }, { - "$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": "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`", + "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", - "default": "all" + "type": "string" } } ], @@ -20752,63 +21043,112 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/code-security-configuration-repositories" + "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": { - "summary": "Example of code security configuration repositories", - "value": [ - { - "status": "attached", - "repository": { - "$ref": "#/components/examples/simple-repository" - } - } - ] + "$ref": "#/components/examples/list-attestations" } } } } - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "code-security", - "subcategory": "configurations" - } + "category": "orgs", + "subcategory": "attestations" + }, + "x-github-breaking-changes": [ + { + "changeset": "remove_bundle", + "patch": { + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": { + "attestations": { + "items": { + "properties": { + "bundle": null + } + } + } + } + } + } + } + } + } + }, + "version": "2026-03-10" + } + ] } }, - "/orgs/{org}/codespaces": { + "/orgs/{org}/blocks": { "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.", + "summary": "List users blocked by an organization", + "description": "List the users blocked by an organization.", "tags": [ - "codespaces" + "orgs" ], - "operationId": "codespaces/list-in-organization", + "operationId": "orgs/list-blocked-users", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/organizations#list-codespaces-for-the-organization" + "url": "https://docs.github.com/rest/orgs/blocking#list-users-blocked-by-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/page" } ], "responses": { @@ -20817,322 +21157,185 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "codespaces" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "codespaces": { - "type": "array", - "items": { - "$ref": "#/components/schemas/codespace" - } - } + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" } }, "examples": { "default": { - "$ref": "#/components/examples/codespaces-list" + "$ref": "#/components/examples/simple-user-items" } } } } - }, - "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, - "category": "codespaces", - "subcategory": "organizations" + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "blocking" } } }, - "/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.", + "/orgs/{org}/blocks/{username}": { + "get": { + "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": [ - "codespaces" + "orgs" ], - "operationId": "codespaces/set-codespaces-access", + "operationId": "orgs/check-blocked-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces" + "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" } ], - "deprecated": true, - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "visibility": { - "type": "string", - "description": "Which users can access codespaces in the organization. `disabled` means that no users can access codespaces in the organization.", - "enum": [ - "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": [ - "visibility" - ] - }, - "examples": { - "default": { - "value": { - "visibility": "selected_members", - "selected_usernames": [ - "johnDoe", - "atomIO" - ] - } - } - } - } - } - }, "responses": { "204": { - "description": "Response when successfully modifying permissions." - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "400": { - "description": "Users are neither members nor collaborators of this organization." + "description": "If the user is blocked" }, "404": { - "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "500": { - "$ref": "#/components/responses/internal_error" + "description": "If the user is not blocked", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "organizations" + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "blocking" } - } - }, - "/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.", + }, + "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": [ - "codespaces" + "orgs" ], - "operationId": "codespaces/set-codespaces-access-users", + "operationId": "orgs/block-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/organizations#add-users-to-codespaces-access-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/username" } ], - "deprecated": true, - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "selected_usernames": { - "type": "array", - "description": "The usernames of the organization members and outside collaborators whose codespaces should 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." - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "400": { - "description": "Users are neither members nor collaborators of this organization." - }, - "404": { - "$ref": "#/components/responses/not_found" + "description": "Response" }, "422": { "$ref": "#/components/responses/validation_failed" - }, - "500": { - "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "organizations" + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "blocking" } }, "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.", + "summary": "Unblock a user from an organization", + "description": "Unblocks the given user on behalf of the specified organization.", "tags": [ - "codespaces" + "orgs" ], - "operationId": "codespaces/delete-codespaces-access-users", + "operationId": "orgs/unblock-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/organizations#remove-users-from-codespaces-access-for-an-organization" + "url": "https://docs.github.com/rest/orgs/blocking#unblock-a-user-from-an-organization" }, - "deprecated": true, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/username" } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "selected_usernames": { - "type": "array", - "description": "The usernames of the organization members and outside collaborators 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 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" + "description": "Response" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "organizations" + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "blocking" } } }, - "/orgs/{org}/codespaces/secrets": { + "/orgs/{org}/campaigns": { "get": { - "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.", + "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": [ - "codespaces" + "campaigns" ], - "operationId": "codespaces/list-org-secrets", + "operationId": "campaigns/list-org-campaigns", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/organization-secrets#list-organization-secrets" + "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": { @@ -21141,26 +21344,14 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "secrets" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "secrets": { - "type": "array", - "items": { - "$ref": "#/components/schemas/codespaces-org-secret" - } - } + "type": "array", + "items": { + "$ref": "#/components/schemas/campaign-summary" } }, "examples": { "default": { - "$ref": "#/components/examples/repo-codespaces-secret-paginated" + "$ref": "#/components/examples/campaign-org-items" } } } @@ -21170,76 +21361,240 @@ "$ref": "#/components/headers/link" } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "organization-secrets" + "enabledForGitHubApps": true, + "category": "campaigns", + "subcategory": "campaigns" } - } - }, - "/orgs/{org}/codespaces/secrets/public-key": { - "get": { - "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.", + }, + "post": { + "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": [ - "codespaces" + "campaigns" ], - "operationId": "codespaces/get-org-public-key", + "operationId": "campaigns/create-campaign", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/organization-secrets#get-an-organization-public-key" + "url": "https://docs.github.com/rest/campaigns/campaigns#create-a-campaign-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "additionalProperties": false, + "properties": { + "name": { + "description": "The name of the campaign", + "type": "string", + "minLength": 1, + "maxLength": 50 + }, + "description": { + "description": "A description for the campaign", + "type": "string", + "minLength": 1, + "maxLength": 255 + }, + "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": { + "description": "The login of each manager", + "type": "string" + } + }, + "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. The date must be in the future.", + "type": "string", + "format": "date-time" + }, + "contact_link": { + "description": "The contact link of the campaign. Must be a URI.", + "type": "string", + "format": "uri", + "nullable": true + }, + "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", + "description", + "ends_at" + ], + "oneOf": [ + { + "required": [ + "code_scanning_alerts" + ] + }, + { + "required": [ + "secret_scanning_alerts" + ] + } + ] + }, + "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": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/codespaces-public-key" + "$ref": "#/components/schemas/campaign-summary" }, "examples": { "default": { - "$ref": "#/components/examples/codespaces-public-key" + "$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" + } + } + } + }, + "429": { + "description": "Too Many Requests" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "organization-secrets" + "enabledForGitHubApps": true, + "category": "campaigns", + "subcategory": "campaigns" } } }, - "/orgs/{org}/codespaces/secrets/{secret_name}": { + "/orgs/{org}/campaigns/{campaign_number}": { "get": { - "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.", + "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": [ - "codespaces" + "campaigns" ], - "operationId": "codespaces/get-org-secret", + "operationId": "campaigns/get-campaign-summary", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/organization-secrets#get-an-organization-secret" + "url": "https://docs.github.com/rest/campaigns/campaigns#get-a-campaign-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/secret-name" + "name": "campaign_number", + "description": "The campaign number.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { @@ -21248,46 +21603,63 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/codespaces-org-secret" + "$ref": "#/components/schemas/campaign-summary" }, "examples": { "default": { - "$ref": "#/components/examples/repo-codespaces-secret" + "$ref": "#/components/examples/campaign-summary" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" + } + }, + "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": false, - "category": "codespaces", - "subcategory": "organization-secrets" + "enabledForGitHubApps": true, + "category": "campaigns", + "subcategory": "campaigns" } }, - "put": { - "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.", + "patch": { + "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": [ - "codespaces" + "campaigns" ], - "operationId": "codespaces/create-or-update-org-secret", + "operationId": "campaigns/update-campaign", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret" + "url": "https://docs.github.com/rest/campaigns/campaigns#update-a-campaign" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/secret-name" + "name": "campaign_number", + "description": "The campaign number.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "requestBody": { @@ -21296,47 +21668,57 @@ "application/json": { "schema": { "type": "object", + "additionalProperties": false, "properties": { - "encrypted_value": { + "name": { + "description": "The name of the campaign", "type": "string", - "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})$" + "minLength": 1, + "maxLength": 50 }, - "key_id": { + "description": { + "description": "A description for the campaign", "type": "string", - "description": "The ID of the key you used to encrypt the secret." + "minLength": 1, + "maxLength": 255 }, - "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" - ] + "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" + } }, - "selected_repository_ids": { + "team_managers": { + "description": "The slugs of the teams to set as the campaign managers.", "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.", + "maxItems": 10, "items": { - "type": "integer" + "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", + "format": "date-time" + }, + "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" } - }, - "required": [ - "visibility" - ] + } }, "examples": { "default": { "value": { - "encrypted_value": "c2VjcmV0", - "key_id": "012345678912345678", - "visibility": "selected", - "selected_repository_ids": [ - 1296269, - 1296280 - ] + "name": "Critical CodeQL alerts" } } } @@ -21344,97 +21726,176 @@ } }, "responses": { - "201": { - "description": "Response when creating a secret", + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/empty-object" + "$ref": "#/components/schemas/campaign-summary" }, "examples": { "default": { - "value": null + "$ref": "#/components/examples/campaign-summary" } } } } }, - "204": { - "description": "Response when updating a secret" + "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" + } + } + } + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "organization-secrets" + "enabledForGitHubApps": true, + "category": "campaigns", + "subcategory": "campaigns" } }, "delete": { - "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.", + "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": [ - "codespaces" + "campaigns" ], - "operationId": "codespaces/delete-org-secret", + "operationId": "campaigns/delete-campaign", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/organization-secrets#delete-an-organization-secret" + "url": "https://docs.github.com/rest/campaigns/campaigns#delete-a-campaign-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/secret-name" + "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": false, - "category": "codespaces", - "subcategory": "organization-secrets" + "enabledForGitHubApps": true, + "category": "campaigns", + "subcategory": "campaigns" } } }, - "/orgs/{org}/codespaces/secrets/{secret_name}/repositories": { + "/orgs/{org}/code-scanning/alerts": { "get": { - "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.", + "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": [ - "codespaces" + "code-scanning" ], - "operationId": "codespaces/list-selected-repos-for-org-secret", + "operationId": "code-scanning/list-alerts-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/organization-secrets#list-selected-repositories-for-an-organization-secret" + "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/secret-name" + "$ref": "#/components/parameters/tool-name" + }, + { + "$ref": "#/components/parameters/tool-guid" + }, + { + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" }, { "$ref": "#/components/parameters/page" }, { "$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, + "schema": { + "type": "string" + } } ], "responses": { @@ -21443,293 +21904,84 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "repositories" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "repositories": { - "type": "array", - "items": { - "$ref": "#/components/schemas/minimal-repository" - } - } + "type": "array", + "items": { + "$ref": "#/components/schemas/code-scanning-organization-alert-items" } }, "examples": { "default": { - "$ref": "#/components/examples/public-repository-paginated" + "$ref": "#/components/examples/code-scanning-organization-alert-items" } } } - } - }, - "404": { - "$ref": "#/components/responses/not_found" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "organization-secrets" - } - }, - "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": [ - "codespaces" - ], - "operationId": "codespaces/set-selected-repos-for-org-secret", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/organization-secrets#set-selected-repositories-for-an-organization-secret" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$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 [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": [ - "selected_repository_ids" - ] - }, - "examples": { - "default": { - "value": { - "selected_repository_ids": [ - 64780797 - ] - } - } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" } } - } - }, - "responses": { - "204": { - "description": "Response" }, "404": { "$ref": "#/components/responses/not_found" }, - "409": { - "description": "Conflict when visibility type not set to selected" + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "organization-secrets" + "enabledForGitHubApps": true, + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}": { - "put": { - "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.", + "/orgs/{org}/code-security/configurations": { + "get": { + "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": [ - "codespaces" + "code-security" ], - "operationId": "codespaces/add-selected-repo-to-org-secret", + "operationId": "code-security/get-configurations-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/organization-secrets#add-selected-repository-to-an-organization-secret" + "url": "https://docs.github.com/rest/code-security/configurations#get-code-security-configurations-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/secret-name" - }, - { - "name": "repository_id", - "in": "path", - "required": true, + "name": "target_type", + "in": "query", + "description": "The target type of the code security configuration", + "required": false, "schema": { - "type": "integer" + "type": "string", + "enum": [ + "global", + "all" + ], + "default": "all" } - } - ], - "responses": { - "204": { - "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" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "organization-secrets" - } - }, - "delete": { - "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": [ - "codespaces" - ], - "operationId": "codespaces/remove-selected-repo-from-org-secret", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/organization-secrets#remove-selected-repository-from-an-organization-secret" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/secret-name" }, { - "name": "repository_id", - "in": "path", - "required": true, + "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" - } - } - ], - "responses": { - "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" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "organization-secrets" - } - } - }, - "/orgs/{org}/copilot/billing": { - "get": { - "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": [ - "copilot" - ], - "operationId": "copilot/get-copilot-organization-details", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/copilot/copilot-user-management#get-copilot-seat-information-and-settings-for-an-organization" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/copilot-organization-details" - }, - "examples": { - "default": { - "$ref": "#/components/examples/copilot-organization-details" - } - } - } + "type": "integer", + "default": 30 } }, - "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, - "category": "copilot", - "subcategory": "copilot-user-management" - } - } - }, - "/orgs/{org}/copilot/billing/seats": { - "get": { - "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": [ - "copilot" - ], - "operationId": "copilot/list-copilot-seats", - "externalDocs": { - "description": "API method documentation", - "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/page" + "$ref": "#/components/parameters/pagination-before" }, { - "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 - } + "$ref": "#/components/parameters/pagination-after" } ], "responses": { @@ -21738,39 +21990,19 @@ "content": { "application/json": { "schema": { - "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" - } - } + "type": "array", + "items": { + "$ref": "#/components/schemas/code-security-configuration" } }, "examples": { "default": { - "$ref": "#/components/examples/copilot-seats-list" + "$ref": "#/components/examples/code-security-configuration-list" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "500": { - "$ref": "#/components/responses/internal_error" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, "403": { "$ref": "#/components/responses/forbidden" }, @@ -21781,22 +22013,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "copilot", - "subcategory": "copilot-user-management" + "category": "code-security", + "subcategory": "configurations" } - } - }, - "/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.", + "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": [ - "copilot" + "code-security" ], - "operationId": "copilot/add-copilot-seats-for-teams", + "operationId": "code-security/create-configuration", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/copilot/copilot-user-management#add-teams-to-the-copilot-subscription-for-an-organization" + "url": "https://docs.github.com/rest/code-security/configurations#create-a-code-security-configuration" }, "parameters": [ { @@ -21804,301 +22034,383 @@ } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", + "additionalProperties": false, "properties": { - "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" + "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" + ], + "default": "disabled" + }, + "code_security": { + "type": "string", + "description": "The enablement status of GitHub Code Security features.", + "enum": [ + "enabled", + "disabled", + "not_set" ] - } - } - } - } - }, - "required": true - }, - "responses": { - "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" + }, + "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 + } } }, - "required": [ - "seats_created" - ] - }, - "examples": { - "default": { - "value": { - "seats_created": 5 + "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" + ] + }, + "mode": { + "type": "string", + "description": "The bypass mode for the reviewer", + "enum": [ + "ALWAYS", + "EXEMPT" + ], + "default": "ALWAYS" + } + } + } + } } - } - } - } - } - }, - "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, - "category": "copilot", - "subcategory": "copilot-user-management" - } - }, - "delete": { - "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": [ - "copilot" - ], - "operationId": "copilot/cancel-copilot-seat-assignment-for-teams", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/copilot/copilot-user-management#remove-teams-from-the-copilot-subscription-for-an-organization" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - } - ], - "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 + }, + "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" + ] + }, + "secret_scanning_extended_metadata": { + "type": "string", + "description": "The enablement status of secret scanning extended metadata", + "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 enforcement status for a security configuration", + "enum": [ + "enforced", + "unenforced" + ], + "default": "enforced" } }, "required": [ - "selected_teams" + "name" ] }, "examples": { "default": { + "summary": "Example for a code security configuration", "value": { - "selected_teams": [ - "engteam1", - "engteam2", - "engteam3" - ] + "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" } } } } - }, - "required": true + } }, "responses": { - "200": { - "description": "OK", + "201": { + "description": "Successfully created code security configuration", "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" - ] + "$ref": "#/components/schemas/code-security-configuration" }, "examples": { "default": { - "value": { - "seats_cancelled": 5 - } + "$ref": "#/components/examples/code-security-configuration" } } } } - }, - "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, - "category": "copilot", - "subcategory": "copilot-user-management" + "category": "code-security", + "subcategory": "configurations" } } }, - "/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.", + "/orgs/{org}/code-security/configurations/defaults": { + "get": { + "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": [ - "copilot" + "code-security" ], - "operationId": "copilot/add-copilot-seats-for-users", + "operationId": "code-security/get-default-configurations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/copilot/copilot-user-management#add-users-to-the-copilot-subscription-for-an-organization" + "url": "https://docs.github.com/rest/code-security/configurations#get-default-code-security-configurations" }, "parameters": [ { "$ref": "#/components/parameters/org" } ], - "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": { - "201": { - "description": "OK", + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "type": "object", - "description": "The total number of seats created for the specified user(s).", - "properties": { - "seats_created": { - "type": "integer" - } - }, - "required": [ - "seats_created" - ] + "$ref": "#/components/schemas/code-security-default-configurations" }, "examples": { "default": { - "value": { - "seats_created": 5 - } + "$ref": "#/components/examples/code-security-default-configurations" } } } } }, - "500": { - "$ref": "#/components/responses/internal_error" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "304": { + "$ref": "#/components/responses/not_modified" }, "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, - "category": "copilot", - "subcategory": "copilot-user-management" + "category": "code-security", + "subcategory": "configurations" } - }, + } + }, + "/orgs/{org}/code-security/configurations/detach": { "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.", + "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": [ - "copilot" + "code-security" ], - "operationId": "copilot/cancel-copilot-seat-assignment-for-users", + "operationId": "code-security/detach-configuration", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/copilot/copilot-user-management#remove-users-from-the-copilot-subscription-for-an-organization" + "url": "https://docs.github.com/rest/code-security/configurations#detach-configurations-from-repositories" }, "parameters": [ { @@ -22106,71 +22418,48 @@ } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { "type": "object", + "additionalProperties": false, + "required": [ + "selected_repository_ids" + ], "properties": { - "selected_usernames": { + "selected_repository_ids": { "type": "array", - "description": "The usernames of the organization members for which to revoke access to GitHub Copilot.", + "description": "An array of repository IDs to detach from configurations. Up to 250 IDs can be provided.", + "minItems": 1, + "maxItems": 250, "items": { - "type": "string" - }, - "minItems": 1 + "type": "integer", + "description": "Unique identifier of the repository." + } } - }, - "required": [ - "selected_usernames" - ] + } }, "examples": { "default": { + "summary": "Example for detaching repositories from configurations.", "value": { - "selected_usernames": [ - "cooluser1", - "hacker2", - "octocat" + "selected_repository_ids": [ + 32, + 91 ] } } } } - }, - "required": true + } }, "responses": { - "200": { - "description": "OK", - "content": { - "application/json": { - "schema": { - "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": { - "value": { - "seats_cancelled": 5 - } - } - } - } - } - }, - "500": { - "$ref": "#/components/responses/internal_error" + "204": { + "$ref": "#/components/responses/no_content" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "400": { + "$ref": "#/components/responses/bad_request" }, "403": { "$ref": "#/components/responses/forbidden" @@ -22178,33 +22467,36 @@ "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." + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "copilot", - "subcategory": "copilot-user-management" + "category": "code-security", + "subcategory": "configurations" } } }, - "/orgs/{org}/copilot/coding-agent/permissions": { + "/orgs/{org}/code-security/configurations/{configuration_id}": { "get": { - "summary": "Get Copilot coding agent permissions for an organization", - "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nGets information about which repositories in an organization have been enabled\nor disabled for the Copilot coding agent.\n\nOrganization owners can configure whether Copilot coding agent is enabled for\nall repositories, selected repositories, or no repositories owned by organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "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": [ - "copilot" + "code-security" ], - "operationId": "copilot/get-copilot-coding-agent-permissions-organization", + "operationId": "code-security/get-configuration", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/copilot/copilot-coding-agent-management#get-copilot-coding-agent-permissions-for-an-organization" + "url": "https://docs.github.com/rest/code-security/configurations#get-a-code-security-configuration" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/configuration-id" } ], "responses": { @@ -22213,55 +22505,18 @@ "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "enabled_repositories": { - "type": "string", - "description": "The policy for which repositories can use Copilot coding agent. Can be one of `all`, `selected`, or `none`.", - "enum": [ - "all", - "selected", - "none" - ] - }, - "selected_repositories_url": { - "type": "string", - "description": "The URL for the selected repositories endpoint. Only present when `enabled_repositories` is `selected`." - } - }, - "required": [ - "enabled_repositories" - ] + "$ref": "#/components/schemas/code-security-configuration" }, "examples": { - "all_enabled": { - "summary": "All repositories enabled", - "value": { - "enabled_repositories": "all" - } - }, - "selected_enabled": { - "summary": "Selected repositories enabled", - "value": { - "enabled_repositories": "selected", - "selected_repositories_url": "https://api.github.com/orgs/my-org/copilot/coding-agent/permissions/repositories" - } - }, - "none_enabled": { - "summary": "No repositories enabled", - "value": { - "enabled_repositories": "none" - } + "default": { + "$ref": "#/components/examples/code-security-configuration" } } } } }, - "500": { - "$ref": "#/components/responses/internal_error" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "304": { + "$ref": "#/components/responses/not_modified" }, "403": { "$ref": "#/components/responses/forbidden" @@ -22273,24 +22528,27 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "copilot", - "subcategory": "copilot-coding-agent-management" + "category": "code-security", + "subcategory": "configurations" } }, - "put": { - "summary": "Set Copilot coding agent permissions for an organization", - "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nSets the policy for which repositories in an organization can use Copilot coding agent.\n\nOrganization owners can configure whether Copilot coding agent is enabled for\nall repositories, selected repositories, or no repositories owned by the organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "patch": { + "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": [ - "copilot" + "code-security" ], - "operationId": "copilot/set-copilot-coding-agent-permissions-organization", + "operationId": "code-security/update-configuration", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/copilot/copilot-coding-agent-management#set-copilot-coding-agent-permissions-for-an-organization" + "url": "https://docs.github.com/rest/code-security/configurations#update-a-code-security-configuration" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/configuration-id" } ], "requestBody": { @@ -22299,118 +22557,321 @@ "application/json": { "schema": { "type": "object", + "additionalProperties": false, "properties": { - "enabled_repositories": { + "name": { + "type": "string", + "description": "The name of the code security configuration. Must be unique within the organization." + }, + "description": { "type": "string", - "description": "The policy for which repositories can use Copilot coding agent. Can be one of `all`, `selected`, or `none`.", + "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": [ - "all", - "selected", - "none" + "enabled", + "disabled", + "code_security", + "secret_protection" ] - } - }, - "required": [ - "enabled_repositories" - ] - }, - "examples": { - "default": { - "value": { - "enabled_repositories": "selected" - } - } - } - } - } - }, - "responses": { - "204": { - "description": "No Content" - }, - "500": { - "$ref": "#/components/responses/internal_error" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" + }, + "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" + ] + }, + "mode": { + "type": "string", + "description": "The bypass mode for the reviewer", + "enum": [ + "ALWAYS", + "EXEMPT" + ], + "default": "ALWAYS" + } + } + } + } + } + }, + "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" + ] + }, + "secret_scanning_extended_metadata": { + "type": "string", + "description": "The enablement status of secret scanning extended metadata", + "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" + ] + } + } + }, + "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 when a configuration is updated", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/code-security-configuration" + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-security-configuration-updated" + } + } + } + } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "204": { + "description": "Response when no new updates are made" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "copilot", - "subcategory": "copilot-coding-agent-management" + "category": "code-security", + "subcategory": "configurations" } - } - }, - "/orgs/{org}/copilot/coding-agent/permissions/repositories": { - "get": { - "summary": "List repositories enabled for Copilot coding agent in an organization", - "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nLists the selected repositories that are enabled for Copilot coding agent in an organization.\n\nOrganization owners can use this endpoint when the coding agent repository policy\nis set to `selected` to see which repositories have been enabled.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + }, + "delete": { + "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": [ - "copilot" + "code-security" ], - "operationId": "copilot/list-copilot-coding-agent-selected-repositories-for-organization", + "operationId": "code-security/delete-configuration", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/copilot/copilot-coding-agent-management#list-repositories-enabled-for-copilot-coding-agent-in-an-organization" + "url": "https://docs.github.com/rest/code-security/configurations#delete-a-code-security-configuration" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$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": "integer" - }, - "repositories": { - "type": "array", - "items": { - "$ref": "#/components/schemas/minimal-repository" - } - } - }, - "required": [ - "total_count", - "repositories" - ] - }, - "examples": { - "default": { - "$ref": "#/components/examples/minimal-repository-paginated" - } - } - } - } - }, - "500": { - "$ref": "#/components/responses/internal_error" + "204": { + "$ref": "#/components/responses/no_content" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "400": { + "$ref": "#/components/responses/bad_request" }, "403": { "$ref": "#/components/responses/forbidden" @@ -22425,24 +22886,29 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "copilot", - "subcategory": "copilot-coding-agent-management" + "category": "code-security", + "subcategory": "configurations" } - }, - "put": { - "summary": "Set selected repositories for Copilot coding agent in an organization", - "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nReplaces the list of selected repositories that are enabled for Copilot coding\nagent in an organization. This method can only be called when the coding agent\nrepository policy is set to `selected`.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + } + }, + "/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": [ - "copilot" + "code-security" ], - "operationId": "copilot/set-copilot-coding-agent-selected-repositories-for-organization", + "operationId": "code-security/attach-configuration", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/copilot/copilot-coding-agent-management#set-selected-repositories-for-copilot-coding-agent-in-an-organization" + "url": "https://docs.github.com/rest/code-security/configurations#attach-a-configuration-to-repositories" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/configuration-id" } ], "requestBody": { @@ -22451,10 +22917,22 @@ "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": { - "description": "List of repository IDs to enable for Copilot coding agent.", "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." @@ -22462,15 +22940,17 @@ } }, "required": [ - "selected_repository_ids" + "scope" ] }, "examples": { "default": { + "summary": "Example for attaching a configuration to some repositories", "value": { + "scope": "selected", "selected_repository_ids": [ 32, - 42 + 91 ] } } @@ -22479,166 +22959,264 @@ } }, "responses": { - "204": { - "description": "No Content" - }, - "500": { - "$ref": "#/components/responses/internal_error" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "409": { - "$ref": "#/components/responses/conflict" - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "202": { + "$ref": "#/components/responses/accepted" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "copilot", - "subcategory": "copilot-coding-agent-management" + "category": "code-security", + "subcategory": "configurations" } } }, - "/orgs/{org}/copilot/coding-agent/permissions/repositories/{repository_id}": { + "/orgs/{org}/code-security/configurations/{configuration_id}/defaults": { "put": { - "summary": "Enable a repository for Copilot coding agent in an organization", - "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nAdds a repository to the list of selected repositories enabled for Copilot\ncoding agent in an organization. This method can only be called when the\ncoding agent repository policy is set to `selected`.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "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": [ - "copilot" + "code-security" ], - "operationId": "copilot/enable-copilot-coding-agent-for-repository-in-organization", + "operationId": "code-security/set-configuration-as-default", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/copilot/copilot-coding-agent-management#enable-a-repository-for-copilot-coding-agent-in-an-organization" + "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/repository-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": "No Content" - }, - "500": { - "$ref": "#/components/responses/internal_error" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "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" - }, - "409": { - "$ref": "#/components/responses/conflict" - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "copilot", - "subcategory": "copilot-coding-agent-management" + "category": "code-security", + "subcategory": "configurations" } - }, - "delete": { - "summary": "Disable a repository for Copilot coding agent in an organization", - "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nRemoves a repository from the list of selected repositories enabled for Copilot\ncoding agent in an organization. This method can only be called when the\ncoding agent repository policy is set to `selected`.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scopes to use this endpoint.", + } + }, + "/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": [ - "copilot" + "code-security" ], - "operationId": "copilot/disable-copilot-coding-agent-for-repository-in-organization", + "operationId": "code-security/get-repositories-for-configuration", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/copilot/copilot-coding-agent-management#disable-a-repository-for-copilot-coding-agent-in-an-organization" + "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/repository-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/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`, `detached`, `removed`, `enforced`, `failed`, `updating`, `removed_by_enterprise`", + "in": "query", + "required": false, + "schema": { + "type": "string", + "default": "all" + } } ], "responses": { - "204": { - "description": "No Content" - }, - "500": { - "$ref": "#/components/responses/internal_error" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "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" - }, - "409": { - "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "copilot", - "subcategory": "copilot-coding-agent-management" + "category": "code-security", + "subcategory": "configurations" } } }, - "/orgs/{org}/copilot/content_exclusion": { + "/orgs/{org}/codespaces": { "get": { - "summary": "Get Copilot content exclusion rules 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 content exclusion path rules.\nTo configure these settings, go to the organization's settings on GitHub.\nFor more information, see \"[Excluding content from GitHub Copilot](https://docs.github.com/copilot/managing-copilot/configuring-and-auditing-content-exclusion/excluding-content-from-github-copilot#configuring-content-exclusions-for-your-organization).\"\n\nOrganization owners can view details about Copilot content exclusion rules for the organization.\n\nOAuth app tokens and personal access tokens (classic) need either the `copilot` or `read:org` scopes to use this endpoint.\n\n> [!CAUTION]\n> * At this time, the API does not support comments. This endpoint will not return any comments in the existing rules.\n> * At this time, the API does not support duplicate keys. If your content exclusion configuration contains duplicate keys, the API will return only the last occurrence of that key. For example, if duplicate entries are present, only the final value will be included in the response.", + "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": [ - "copilot" + "codespaces" ], - "operationId": "copilot/copilot-content-exclusion-for-organization", + "operationId": "codespaces/list-in-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/copilot/copilot-content-exclusion-management#get-copilot-content-exclusion-rules-for-an-organization" + "url": "https://docs.github.com/rest/codespaces/organizations#list-codespaces-for-the-organization" }, "parameters": [ + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + }, { "$ref": "#/components/parameters/org" } ], "responses": { "200": { - "description": "OK", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/copilot-organization-content-exclusion-details" + "type": "object", + "required": [ + "total_count", + "codespaces" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "codespaces": { + "type": "array", + "items": { + "$ref": "#/components/schemas/codespace" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/copilot-organization-content-exclusion-details" + "$ref": "#/components/examples/codespaces-list" } } } } }, + "304": { + "$ref": "#/components/responses/not_modified" + }, "500": { "$ref": "#/components/responses/internal_error" }, @@ -22654,82 +23232,67 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "copilot", - "subcategory": "copilot-content-exclusion-management" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organizations" } - }, + } + }, + "/orgs/{org}/codespaces/access": { "put": { - "summary": "Set Copilot content exclusion rules for an organization", - "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nSets Copilot content exclusion path rules for an organization.\nTo configure these settings, go to the organization's settings on GitHub.\nFor more information, see \"[Excluding content from GitHub Copilot](https://docs.github.com/copilot/managing-copilot/configuring-and-auditing-content-exclusion/excluding-content-from-github-copilot#configuring-content-exclusions-for-your-organization).\"\n\nOrganization owners can set Copilot content exclusion rules for the organization.\n\nOAuth app tokens and personal access tokens (classic) need the `copilot` scope to use this endpoint.\n\n> [!CAUTION]\n> * At this time, the API does not support comments. When using this endpoint, any existing comments in your rules will be deleted.\n> * At this time, the API does not support duplicate keys. If you submit content exclusions through the API with duplicate keys, only the last occurrence will be saved. Earlier entries with the same key will be overwritten.", + "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": [ - "copilot" + "codespaces" ], - "operationId": "copilot/set-copilot-content-exclusion-for-organization", + "operationId": "codespaces/set-codespaces-access", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/copilot/copilot-content-exclusion-management#set-copilot-content-exclusion-rules-for-an-organization" + "url": "https://docs.github.com/rest/codespaces/organizations#manage-access-control-for-organization-codespaces" }, "parameters": [ { "$ref": "#/components/parameters/org" } ], + "deprecated": true, "requestBody": { - "description": "The content exclusion rules to set", "required": true, "content": { "application/json": { "schema": { "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "anyOf": [ - { - "type": "string", - "description": "The path to the file that will be excluded." - }, - { - "type": "object", - "properties": { - "ifAnyMatch": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "ifAnyMatch" - ], - "additionalProperties": false - }, - { - "type": "object", - "properties": { - "ifNoneMatch": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "ifNoneMatch" - ], - "additionalProperties": false - } + "properties": { + "visibility": { + "type": "string", + "description": "Which users can access codespaces in the organization. `disabled` means that no users can access codespaces in the organization.", + "enum": [ + "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": [ + "visibility" + ] }, "examples": { "default": { - "summary": "Example of content exclusion paths", "value": { - "octo-repo": [ - "/src/some-dir/kernel.rs" + "visibility": "selected_members", + "selected_usernames": [ + "johnDoe", + "atomIO" ] } } @@ -22738,160 +23301,210 @@ } }, "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - } - } - }, - "examples": { - "default": { - "value": { - "message": "Content exclusion rules updated successfully." - } - } - } - } - } - }, - "500": { - "$ref": "#/components/responses/internal_error" + "204": { + "description": "Response when successfully modifying permissions." }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "304": { + "$ref": "#/components/responses/not_modified" }, - "403": { - "$ref": "#/components/responses/forbidden" + "400": { + "description": "Users are neither members nor collaborators of this organization." }, "404": { "$ref": "#/components/responses/not_found" }, - "413": { - "$ref": "#/components/responses/too_large" - }, "422": { - "$ref": "#/components/responses/validation_failed_simple" + "$ref": "#/components/responses/validation_failed" + }, + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { - "githubCloudOnly": null, - "enabledForGitHubApps": true, - "category": "copilot", - "subcategory": "copilot-content-exclusion-management" + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organizations" } } }, - "/orgs/{org}/copilot/metrics": { - "get": { - "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.", + "/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": [ - "copilot" + "codespaces" ], - "operationId": "copilot/copilot-metrics-for-organization", + "operationId": "codespaces/set-codespaces-access-users", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/copilot/copilot-metrics#get-copilot-metrics-for-an-organization" + "url": "https://docs.github.com/rest/codespaces/organizations#add-users-to-codespaces-access-for-an-organization" }, "parameters": [ { "$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" + } + ], + "deprecated": true, + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_usernames": { + "type": "array", + "description": "The usernames of the organization members and outside collaborators whose codespaces should 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." }, - { - "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" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "$ref": "#/components/parameters/page" + "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": [ { - "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 - } + "$ref": "#/components/parameters/org" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/copilot-usage-metrics-day" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "selected_usernames": { + "type": "array", + "description": "The usernames of the organization members and outside collaborators whose codespaces should not be billed to the organization.", + "items": { + "type": "string" + }, + "maxItems": 100 } }, - "examples": { - "default": { - "$ref": "#/components/examples/copilot-usage-metrics-for-day" + "required": [ + "selected_usernames" + ] + }, + "examples": { + "default": { + "value": { + "selected_usernames": [ + "johnDoe", + "atomIO" + ] } } } } + } + }, + "responses": { + "204": { + "description": "Response when successfully modifying permissions." }, - "500": { - "$ref": "#/components/responses/internal_error" + "304": { + "$ref": "#/components/responses/not_modified" }, - "403": { - "$ref": "#/components/responses/forbidden" + "400": { + "description": "Users are neither members nor collaborators of this organization." }, "404": { "$ref": "#/components/responses/not_found" }, "422": { - "$ref": "#/components/responses/usage_metrics_api_disabled" + "$ref": "#/components/responses/validation_failed" + }, + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "copilot", - "subcategory": "copilot-metrics" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organizations" } } }, - "/orgs/{org}/copilot/metrics/reports/organization-1-day": { + "/orgs/{org}/codespaces/secrets": { "get": { - "summary": "Get Copilot organization usage metrics for a specific day", - "description": "Use this endpoint to retrieve download links for the Copilot organization usage metrics report for a specific day. The report provides comprehensive usage data for Copilot features across the organization.\n\nThe report contains aggregated metrics for the specified day, including usage statistics for various Copilot features, user engagement data, and feature adoption metrics. Reports are generated daily and made available for download through signed URLs with a limited expiration time.\n\nThe response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed.\n\nOrganization owners and authorized users with fine-grained \"View Organization Copilot Metrics\" permission can retrieve Copilot metrics reports for the organization. OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.\n\nFor more information about organization metrics attribution, see [How are metrics attributed across organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations).", + "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": [ - "copilot" + "codespaces" ], - "operationId": "copilot/copilot-organization-one-day-usage-metrics", + "operationId": "codespaces/list-org-secrets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-usage-metrics-for-a-specific-day" + "url": "https://docs.github.com/rest/codespaces/organization-secrets#list-organization-secrets" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/day" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -22900,48 +23513,56 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/copilot-usage-metrics-1-day-report" + "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/copilot-usage-metrics-1-day-report" + "$ref": "#/components/examples/repo-codespaces-secret-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "204": { - "$ref": "#/components/responses/no_content" - }, - "500": { - "$ref": "#/components/responses/internal_error" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "copilot", - "subcategory": "copilot-usage-metrics" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organization-secrets" } } }, - "/orgs/{org}/copilot/metrics/reports/organization-28-day/latest": { + "/orgs/{org}/codespaces/secrets/public-key": { "get": { - "summary": "Get Copilot organization usage metrics", - "description": "Use this endpoint to retrieve download links for the latest 28-day organization Copilot usage metrics report. The report provides comprehensive usage data for Copilot features across the organization.\n\nThe report contains aggregated metrics for the previous 28 days, including usage statistics for various Copilot features, user engagement data, and feature adoption metrics. Reports are generated daily and made available for download through signed URLs with a limited expiration time.\n\nThe response includes download links to the report files, along with the specific date range covered by the report. The report covers a complete 28-day period ending on the most recent day for which data has been processed.\n\nOrganization owners and authorized users with fine-grained \"View Organization Copilot Metrics\" permission can retrieve Copilot metrics reports for the organization. OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.\n\nFor more information about organization metrics attribution, see [How are metrics attributed across organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations).", + "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": [ - "copilot" + "codespaces" ], - "operationId": "copilot/copilot-organization-usage-metrics", + "operationId": "codespaces/get-org-public-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-usage-metrics" + "url": "https://docs.github.com/rest/codespaces/organization-secrets#get-an-organization-public-key" }, "parameters": [ { @@ -22954,52 +23575,43 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/copilot-usage-metrics-28-day-report" + "$ref": "#/components/schemas/codespaces-public-key" }, "examples": { "default": { - "$ref": "#/components/examples/copilot-usage-metrics-28-day-report" + "$ref": "#/components/examples/codespaces-public-key" } } } } - }, - "500": { - "$ref": "#/components/responses/internal_error" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "copilot", - "subcategory": "copilot-usage-metrics" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organization-secrets" } } }, - "/orgs/{org}/copilot/metrics/reports/users-1-day": { + "/orgs/{org}/codespaces/secrets/{secret_name}": { "get": { - "summary": "Get Copilot organization users usage metrics for a specific day", - "description": "Use this endpoint to retrieve download links for the Copilot organization user usage metrics report for a specific day. The report provides detailed user-level usage data and engagement metrics for Copilot features across the organization.\n\nThe report contains user-specific metrics for the specified day, including individual user engagement statistics, feature usage patterns, and adoption metrics broken down by user. This report allows authorized users to analyze Copilot usage at the user level to understand adoption patterns and identify opportunities for increased engagement.\n\nReports are generated daily and made available for download through signed URLs with a limited expiration time. The response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed.\n\nOrganization owners and authorized users with fine-grained \"View Organization Copilot Metrics\" permission can retrieve Copilot metrics reports for the organization. OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.\n\nFor more information about organization metrics attribution, see [How are metrics attributed across organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations).", + "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": [ - "copilot" + "codespaces" ], - "operationId": "copilot/copilot-organization-users-one-day-usage-metrics", + "operationId": "codespaces/get-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-users-usage-metrics-for-a-specific-day" + "url": "https://docs.github.com/rest/codespaces/organization-secrets#get-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/day" + "$ref": "#/components/parameters/secret-name" } ], "responses": { @@ -23008,248 +23620,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/copilot-usage-metrics-1-day-report" + "$ref": "#/components/schemas/codespaces-org-secret" }, "examples": { "default": { - "$ref": "#/components/examples/copilot-usage-metrics-1-day-report" - } - } - } - } - }, - "204": { - "$ref": "#/components/responses/no_content" - }, - "500": { - "$ref": "#/components/responses/internal_error" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "copilot", - "subcategory": "copilot-usage-metrics" - } - } - }, - "/orgs/{org}/copilot/metrics/reports/users-28-day/latest": { - "get": { - "summary": "Get Copilot organization users usage metrics", - "description": "Use this endpoint to retrieve download links for the latest 28-day organization users Copilot usage metrics report. The report provides detailed user-level usage data and engagement metrics for Copilot features across the organization.\n\nThe report contains user-specific metrics for the previous 28 days, including individual user engagement statistics, feature usage patterns, and adoption metrics broken down by user. This report allows authorized users to analyze Copilot usage at the user level to understand adoption patterns and identify opportunities for increased engagement.\n\nReports are generated daily and made available for download through signed URLs with a limited expiration time. The response includes download links to the report files, along with the specific date range covered by the report. The report covers a complete 28-day period ending on the most recent day for which data has been processed.\n\nOrganization owners and authorized users with fine-grained \"View Organization Copilot Metrics\" permission can retrieve Copilot metrics reports for the organization. OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.\n\nFor more information about organization metrics attribution, see [How are metrics attributed across organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations).", - "tags": [ - "copilot" - ], - "operationId": "copilot/copilot-organization-users-usage-metrics", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-users-usage-metrics" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/copilot-usage-metrics-28-day-report" - }, - "examples": { - "default": { - "$ref": "#/components/examples/copilot-usage-metrics-28-day-report" - } - } - } - } - }, - "500": { - "$ref": "#/components/responses/internal_error" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "copilot", - "subcategory": "copilot-usage-metrics" - } - } - }, - "/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": [ - "dependabot" - ], - "operationId": "dependabot/list-alerts-for-org", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-an-organization" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/dependabot-alert-comma-separated-classifications" - }, - { - "$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-assignees" - }, - { - "$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" - } - ], - "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" - }, - "400": { - "$ref": "#/components/responses/bad_request" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "dependabot", - "subcategory": "alerts" - } - } - }, - "/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": [ - "dependabot" - ], - "operationId": "dependabot/list-org-secrets", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/dependabot/secrets#list-organization-secrets" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$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/organization-dependabot-secret" - } - } - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/organization-dependabot-secret-paginated" + "$ref": "#/components/examples/repo-codespaces-secret" } } } @@ -23263,108 +23638,21 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "dependabot", - "subcategory": "secrets" - } - } - }, - "/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": [ - "dependabot" - ], - "operationId": "dependabot/get-org-public-key", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/dependabot/secrets#get-an-organization-public-key" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/dependabot-public-key" - }, - "examples": { - "default": { - "$ref": "#/components/examples/dependabot-public-key" - } - } - } - } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "dependabot", - "subcategory": "secrets" - } - } - }, - "/orgs/{org}/dependabot/secrets/{secret_name}": { - "get": { - "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": [ - "dependabot" - ], - "operationId": "dependabot/get-org-secret", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/dependabot/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-dependabot-secret" - }, - "examples": { - "default": { - "$ref": "#/components/examples/organization-dependabot-secret" - } - } - } - } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "dependabot", - "subcategory": "secrets" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organization-secrets" } }, "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.", + "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": [ - "dependabot" + "codespaces" ], - "operationId": "dependabot/create-or-update-org-secret", + "operationId": "codespaces/create-or-update-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret" + "url": "https://docs.github.com/rest/codespaces/organization-secrets#create-or-update-an-organization-secret" }, "parameters": [ { @@ -23383,12 +23671,12 @@ "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/dependabot/secrets#get-an-organization-public-key) endpoint.", + "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": "ID of the key you used to encrypt the secret." + "description": "The ID of the key you used to encrypt the secret." }, "visibility": { "type": "string", @@ -23401,16 +23689,9 @@ }, "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.", + "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": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "string" - } - ] + "type": "integer" } } }, @@ -23452,40 +23733,31 @@ }, "204": { "description": "Response when updating a secret" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "dependabot", - "subcategory": "secrets" - }, - "x-github-breaking-changes": [ - { - "changeset": "remove_string_type_from_repo_id_param", - "patch": [ - { - "op": "replace", - "path": "/requestBody/content/application~1json/schema/properties/selected_repository_ids/items", - "value": { - "type": "integer" - } - } - ], - "version": "2026-03-10" - } - ] + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organization-secrets" + } }, "delete": { "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.", + "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": [ - "dependabot" + "codespaces" ], - "operationId": "dependabot/delete-org-secret", + "operationId": "codespaces/delete-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/dependabot/secrets#delete-an-organization-secret" + "url": "https://docs.github.com/rest/codespaces/organization-secrets#delete-an-organization-secret" }, "parameters": [ { @@ -23498,27 +23770,30 @@ "responses": { "204": { "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "dependabot", - "subcategory": "secrets" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organization-secrets" } } }, - "/orgs/{org}/dependabot/secrets/{secret_name}/repositories": { + "/orgs/{org}/codespaces/secrets/{secret_name}/repositories": { "get": { "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": [ - "dependabot" + "codespaces" ], - "operationId": "dependabot/list-selected-repos-for-org-secret", + "operationId": "codespaces/list-selected-repos-for-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/dependabot/secrets#list-selected-repositories-for-an-organization-secret" + "url": "https://docs.github.com/rest/codespaces/organization-secrets#list-selected-repositories-for-an-organization-secret" }, "parameters": [ { @@ -23564,25 +23839,28 @@ } } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "dependabot", - "subcategory": "secrets" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organization-secrets" } }, "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.", + "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": [ - "dependabot" + "codespaces" ], - "operationId": "dependabot/set-selected-repos-for-org-secret", + "operationId": "codespaces/set-selected-repos-for-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/dependabot/secrets#set-selected-repositories-for-an-organization-secret" + "url": "https://docs.github.com/rest/codespaces/organization-secrets#set-selected-repositories-for-an-organization-secret" }, "parameters": [ { @@ -23601,7 +23879,7 @@ "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.", + "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" } @@ -23626,27 +23904,33 @@ "responses": { "204": { "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "description": "Conflict when visibility type not set to selected" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "dependabot", - "subcategory": "secrets" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organization-secrets" } } }, - "/orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}": { + "/orgs/{org}/codespaces/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.", + "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": [ - "dependabot" + "codespaces" ], - "operationId": "dependabot/add-selected-repo-to-org-secret", + "operationId": "codespaces/add-selected-repo-to-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/dependabot/secrets#add-selected-repository-to-an-organization-secret" + "url": "https://docs.github.com/rest/codespaces/organization-secrets#add-selected-repository-to-an-organization-secret" }, "parameters": [ { @@ -23668,27 +23952,33 @@ "204": { "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" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "dependabot", - "subcategory": "secrets" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organization-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.", + "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": [ - "dependabot" + "codespaces" ], - "operationId": "dependabot/remove-selected-repo-from-org-secret", + "operationId": "codespaces/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" + "url": "https://docs.github.com/rest/codespaces/organization-secrets#remove-selected-repository-from-an-organization-secret" }, "parameters": [ { @@ -23710,200 +24000,66 @@ "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": true, - "category": "dependabot", - "subcategory": "secrets" - } - } - }, - "/orgs/{org}/docker/conflicts": { - "get": { - "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": [ - "packages" - ], - "operationId": "packages/list-docker-migration-conflicting-packages-for-organization", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#get-list-of-conflicting-packages-during-docker-migration-for-organization" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/package" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/packages-for-org" - } - } - } - } - }, - "403": { - "$ref": "#/components/responses/forbidden" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "category": "codespaces", + "subcategory": "organization-secrets" } } }, - "/orgs/{org}/events": { + "/orgs/{org}/copilot-spaces": { "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.", + "summary": "List organization Copilot Spaces", + "description": "Lists Copilot Spaces owned by an organization. The authenticated user must have read access to the organization's Copilot Spaces.\n\nOnly Spaces that are readable by the authenticated user are returned. This includes public Spaces and internal Spaces if the user is a member of the organization.\n\nOAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.\n\nFine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in a space; spaces with inaccessible resources are omitted from the response.", "tags": [ - "activity" + "copilot-spaces" ], - "operationId": "activity/list-public-org-events", + "operationId": "copilot-spaces/list-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/activity/events#list-public-organization-events" + "url": "https://docs.github.com/rest/copilot-spaces/copilot-spaces#list-organization-copilot-spaces" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/event" - } - }, - "examples": { - "200-response": { - "$ref": "#/components/examples/public-org-events-items" - } - } - } + "name": "per_page", + "description": "The number of results per page (max 100).", + "in": "query", + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "default": 30 } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "activity", - "subcategory": "events" - } - } - }, - "/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": [ - "orgs" - ], - "operationId": "orgs/list-failed-invitations", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/members#list-failed-organization-invitations" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/per-page" }, { - "$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" - } + "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.", + "in": "query", + "schema": { + "type": "string" } }, - "404": { - "$ref": "#/components/responses/not_found" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "members" - } - } - }, - "/orgs/{org}/hooks": { - "get": { - "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": [ - "orgs" - ], - "operationId": "orgs/list-webhooks", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/webhooks#list-organization-webhooks" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/per-page" - }, { - "$ref": "#/components/parameters/page" + "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.", + "in": "query", + "schema": { + "type": "string" + } } ], "responses": { @@ -23912,14 +24068,23 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/org-hook" + "type": "object", + "required": [ + "spaces" + ], + "properties": { + "spaces": { + "type": "array", + "description": "The list of Copilot Spaces on this page of results.", + "items": { + "$ref": "#/components/schemas/copilot-space" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/org-hook-items" + "$ref": "#/components/examples/copilot-spaces-organization-list" } } } @@ -23930,27 +24095,29 @@ } } }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "404": { "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "webhooks" + "category": "copilot-spaces", + "subcategory": "copilot-spaces" } }, "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.", + "summary": "Create an organization Copilot Space", + "description": "Creates a new Copilot Space owned by an organization. The authenticated user must have permissions to create spaces in the organization.\n\nOrganization members with appropriate permissions can create Copilot Spaces to be shared within their organization.\n\nOAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.\n\nFine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by the submitted resources.", "tags": [ - "orgs" + "copilot-spaces" ], - "operationId": "orgs/create-webhook", + "operationId": "copilot-spaces/create-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/webhooks#create-an-organization-webhook" + "url": "https://docs.github.com/rest/copilot-spaces/copilot-spaces#create-an-organization-copilot-space" }, "parameters": [ { @@ -23966,71 +24133,106 @@ "properties": { "name": { "type": "string", - "description": "Must be passed as \"web\"." + "description": "The name of the Copilot Space.", + "example": "Team Planning Space" }, - "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" - ] + "description": { + "type": "string", + "description": "A description of the Copilot Space.", + "example": "Organization space for team planning and coordination" }, - "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" + "general_instructions": { + "type": "string", + "maxLength": 4000, + "description": "General instructions for the Copilot Space.", + "example": "Help the team with planning and coordination tasks" + }, + "base_role": { + "type": "string", + "enum": [ + "reader", + "writer", + "admin", + "no_access" ], + "description": "The base role that determines default permissions for organization members.\n- `no_access`: No default access (default)\n- `reader`: Organization members can read the space\n- `writer`: Organization members can read and edit the space\n- `admin`: Organization members have full admin access to the space", + "default": "no_access" + }, + "resources_attributes": { + "type": "array", + "description": "Resources to attach to the space.", "items": { - "type": "string" + "type": "object", + "properties": { + "resource_type": { + "type": "string", + "enum": [ + "repository", + "github_file", + "free_text", + "github_issue", + "github_pull_request", + "media_content", + "uploaded_text_file" + ], + "description": "The type of resource." + }, + "metadata": { + "type": "object", + "description": "Metadata specific to the resource type.", + "properties": { + "repository_id": { + "type": "integer", + "description": "Repository ID for repository or file resources." + }, + "file_path": { + "type": "string", + "description": "File path for file resources." + }, + "text": { + "type": "string", + "description": "Text content for free text resources." + }, + "name": { + "type": "string", + "description": "Name for the resource." + }, + "number": { + "type": "integer", + "description": "Issue or PR number." + } + } + } + } } - }, - "active": { - "type": "boolean", - "description": "Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications.", - "default": true } }, "required": [ - "name", - "config" + "name" ] }, "examples": { "default": { "value": { - "name": "web", - "active": true, - "events": [ - "push", - "pull_request" - ], - "config": { - "url": "http://example.com/webhook", - "content_type": "json" - } + "name": "Team Planning Space", + "description": "Organization space for team planning and coordination", + "general_instructions": "Help the team with planning and coordination tasks", + "resources_attributes": [ + { + "resource_type": "github_file", + "metadata": { + "repository_id": 123456, + "file_path": "docs/planning.md" + } + }, + { + "resource_type": "free_text", + "metadata": { + "name": "Team Guidelines", + "text": "Our team follows agile methodology and holds daily standups" + } + } + ] } } } @@ -24043,57 +24245,57 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/org-hook" + "$ref": "#/components/schemas/copilot-space" }, "examples": { "default": { - "$ref": "#/components/examples/org-hook" + "$ref": "#/components/examples/copilot-space-organization" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/orgs/octocat/hooks/1", - "schema": { - "type": "string" - } - } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "403": { + "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "webhooks" + "category": "copilot-spaces", + "subcategory": "copilot-spaces" } } }, - "/orgs/{org}/hooks/{hook_id}": { + "/orgs/{org}/copilot-spaces/{space_number}": { "get": { - "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.", + "summary": "Get an organization Copilot Space", + "description": "Gets details about a specific Copilot Space owned by an organization. The authenticated user must have read access to the Space.\n\nInternal Spaces require the authenticated user to be a member of the organization or have been granted read permissions.\n\nOAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.\n\nFine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.", "tags": [ - "orgs" + "copilot-spaces" ], - "operationId": "orgs/get-webhook", + "operationId": "copilot-spaces/get-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/webhooks#get-an-organization-webhook" + "url": "https://docs.github.com/rest/copilot-spaces/copilot-spaces#get-an-organization-copilot-space" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/hook-id" + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { @@ -24102,101 +24304,163 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/org-hook" + "$ref": "#/components/schemas/copilot-space" }, "examples": { "default": { - "$ref": "#/components/examples/org-hook" + "$ref": "#/components/examples/copilot-space-organization" } } } } }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "404": { "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "webhooks" + "category": "copilot-spaces", + "subcategory": "copilot-spaces" } }, - "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.", + "put": { + "summary": "Set an organization Copilot Space", + "description": "Updates a Copilot Space owned by an organization. The authenticated user must have permissions to update spaces in the organization.\n\nOrganization members with appropriate permissions can update Copilot Spaces owned by their organization.\n\nOAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.\n\nFine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space, including any being added or updated.", "tags": [ - "orgs" + "copilot-spaces" ], - "operationId": "orgs/update-webhook", + "operationId": "copilot-spaces/update-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/webhooks#update-an-organization-webhook" + "url": "https://docs.github.com/rest/copilot-spaces/copilot-spaces#set-an-organization-copilot-space" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/hook-id" + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "requestBody": { - "required": false, + "required": true, "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" - ] + "name": { + "type": "string", + "description": "The name of the Copilot Space.", + "example": "Updated Team Planning Space" }, - "events": { - "type": "array", - "description": "Determines what [events](https://docs.github.com/webhooks/event-payloads) the hook is triggered for.", - "default": [ - "push" - ], - "items": { - "type": "string" - } + "description": { + "type": "string", + "description": "A description of the Copilot Space.", + "example": "Updated organization space for team planning and coordination" }, - "active": { - "type": "boolean", - "description": "Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications.", - "default": true + "general_instructions": { + "type": "string", + "maxLength": 4000, + "description": "General instructions for the Copilot Space.", + "example": "Updated instructions to help the team with planning and coordination tasks" }, - "name": { + "base_role": { "type": "string", - "example": "\"web\"" + "enum": [ + "reader", + "writer", + "admin", + "no_access" + ], + "description": "The base role that determines default permissions for organization members. Changing this field requires admin permissions.\n- `no_access`: No default access (default)\n- `reader`: Organization members can read the space\n- `writer`: Organization members can read and edit the space\n- `admin`: Organization members have full admin access to the space" + }, + "resources_attributes": { + "type": "array", + "description": "Resources to attach to the space.", + "items": { + "type": "object", + "properties": { + "resource_type": { + "type": "string", + "enum": [ + "repository", + "github_file", + "free_text", + "github_issue", + "github_pull_request", + "media_content", + "uploaded_text_file" + ], + "description": "The type of resource." + }, + "metadata": { + "type": "object", + "description": "Metadata specific to the resource type.", + "properties": { + "repository_id": { + "type": "integer", + "description": "Repository ID for repository or file resources." + }, + "file_path": { + "type": "string", + "description": "File path for file resources." + }, + "text": { + "type": "string", + "description": "Text content for free text resources." + }, + "name": { + "type": "string", + "description": "Name for the resource." + }, + "number": { + "type": "integer", + "description": "Issue or PR number." + } + } + } + } + } } } }, "examples": { "default": { "value": { - "active": true, - "events": [ - "pull_request" + "name": "Updated Team Planning Space", + "description": "Updated organization space for team planning and coordination", + "general_instructions": "Updated instructions to help the team with planning and coordination tasks", + "resources_attributes": [ + { + "resource_type": "github_file", + "metadata": { + "repository_id": 123456, + "file_path": "docs/updated-planning.md" + } + }, + { + "id": 789, + "_destroy": true + }, + { + "id": 456, + "resource_type": "free_text", + "metadata": { + "name": "Updated Team Guidelines", + "text": "Our updated team follows agile methodology and holds daily standups" + } + } ] } } @@ -24210,83 +24474,99 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/org-hook" + "$ref": "#/components/schemas/copilot-space" }, "examples": { "default": { - "$ref": "#/components/examples/org-hook-2" + "$ref": "#/components/examples/copilot-space-organization" } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "403": { + "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "webhooks" + "category": "copilot-spaces", + "subcategory": "copilot-spaces" } }, "delete": { - "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.", + "summary": "Delete an organization Copilot Space", + "description": "Deletes a Copilot Space owned by an organization. The authenticated user must have permissions to delete spaces in the organization.\n\n**Warning:** This action is permanent and cannot be undone. Deleting a Copilot Space will remove all associated resources and configurations.\n\nOrganization members with appropriate permissions can delete Copilot Spaces owned by their organization.\n\nOAuth app tokens and personal access tokens (classic) need both the `read:org` and `repo` scopes to use this endpoint.\n\nFine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.", "tags": [ - "orgs" + "copilot-spaces" ], - "operationId": "orgs/delete-webhook", + "operationId": "copilot-spaces/delete-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/webhooks#delete-an-organization-webhook" + "url": "https://docs.github.com/rest/copilot-spaces/copilot-spaces#delete-an-organization-copilot-space" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/hook-id" + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { "204": { - "description": "Response" + "description": "The Copilot Space has been successfully deleted." }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "webhooks" + "category": "copilot-spaces", + "subcategory": "copilot-spaces" } } }, - "/orgs/{org}/hooks/{hook_id}/config": { + "/orgs/{org}/copilot-spaces/{space_number}/collaborators": { "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/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.", + "summary": "List collaborators for an organization Copilot Space", + "description": "Lists all collaborators for a specific Copilot Space owned by an organization. The authenticated user must have appropriate permissions to view collaborators.\n\nEach collaborator entry specifies which user or team has access to the space and at what level (reader, writer, or admin). The space owner (organization) is excluded from this list.\n\n**Note:** Team collaborators listed here are teams that are defined in the organization.\n\nOAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.\n\nFine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.", "tags": [ - "orgs" + "copilot-spaces" ], - "operationId": "orgs/get-webhook-config-for-org", + "operationId": "copilot-spaces/list-collaborators-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization" + "url": "https://docs.github.com/rest/copilot-spaces/collaborators#list-collaborators-for-an-organization-copilot-space" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/hook-id" + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { @@ -24295,72 +24575,186 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-config" + "type": "object", + "required": [ + "collaborators" + ], + "properties": { + "collaborators": { + "type": "array", + "description": "The list of collaborators for this Copilot Space.", + "items": { + "$ref": "#/components/schemas/copilot-space-collaborator" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/webhook-config" + "value": { + "collaborators": [ + { + "actor_type": "User", + "role": "writer", + "login": "octocat", + "id": 12345, + "node_id": "MDQ6VXNlcjEyMzQ1", + "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, + "name": "The Octocat", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "hireable": false, + "bio": "There once was...", + "twitter_username": "octocat", + "public_repos": 2, + "public_gists": 1, + "followers": 20, + "following": 0, + "created_at": "2008-01-14T04:33:35Z", + "updated_at": "2008-01-14T04:33:35Z" + }, + { + "actor_type": "Team", + "role": "reader", + "id": 67890, + "node_id": "MDQ6VGVhbTY3ODkw", + "url": "https://api.github.com/teams/67890", + "html_url": "https://github.com/orgs/octo-org/teams/developers", + "name": "Developers", + "slug": "developers", + "description": "Team of developers", + "privacy": "closed", + "notification_setting": "notifications_enabled", + "members_url": "https://api.github.com/teams/67890/members{/member}", + "repositories_url": "https://api.github.com/teams/67890/repos", + "parent": null, + "created_at": "2017-07-14T16:53:42Z", + "updated_at": "2017-08-17T12:37:15Z", + "organization": { + "login": "octo-org", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "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" + } + } + ] + } } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "webhooks" + "category": "copilot-spaces", + "subcategory": "collaborators" } }, - "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/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.", + "post": { + "summary": "Add a collaborator to an organization Copilot Space", + "description": "Adds a collaborator (user or team) to a specific Copilot Space owned by an organization. The authenticated user must have appropriate permissions to manage collaborators.\n\n**Note:** When adding users as collaborators, they must already be members of the organization.\nWhen adding teams as collaborators, they must be defined in the organization.\n\nOAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.\n\nFine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.", "tags": [ - "orgs" + "copilot-spaces" ], - "operationId": "orgs/update-webhook-config-for-org", + "operationId": "copilot-spaces/add-collaborator-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization" + "url": "https://docs.github.com/rest/copilot-spaces/collaborators#add-a-collaborator-to-an-organization-copilot-space" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/hook-id" + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { "type": "object", + "required": [ + "actor_type", + "actor_identifier", + "role" + ], "properties": { - "url": { - "$ref": "#/components/schemas/webhook-config-url" - }, - "content_type": { - "$ref": "#/components/schemas/webhook-config-content-type" + "actor_type": { + "type": "string", + "enum": [ + "User", + "Team" + ], + "description": "The type of actor (user or team)." }, - "secret": { - "$ref": "#/components/schemas/webhook-config-secret" + "actor_identifier": { + "type": "string", + "description": "The username (for users) or team slug (for teams). The numeric ID of a user or team is also accepted." }, - "insecure_ssl": { - "$ref": "#/components/schemas/webhook-config-insecure-ssl" + "role": { + "type": "string", + "enum": [ + "reader", + "writer", + "admin" + ], + "description": "The role to grant to the collaborator." } } }, "examples": { - "default": { - "summary": "Update an existing webhook", + "user": { "value": { - "url": "http://example.com/webhook", - "content_type": "json", - "insecure_ssl": "0", - "secret": "********" + "actor_type": "User", + "actor_identifier": "octocat", + "role": "writer" + } + }, + "team": { + "value": { + "actor_type": "Team", + "actor_identifier": "developers", + "role": "reader" } } } @@ -24368,267 +24762,354 @@ } }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-config" + "$ref": "#/components/schemas/copilot-space-collaborator" }, "examples": { - "default": { - "$ref": "#/components/examples/webhook-config" + "user": { + "value": { + "actor_type": "User", + "role": "writer", + "login": "octocat", + "id": 12345, + "node_id": "MDQ6VXNlcjEyMzQ1", + "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, + "name": "The Octocat", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "hireable": false, + "bio": "There once was...", + "twitter_username": "octocat", + "public_repos": 2, + "public_gists": 1, + "followers": 20, + "following": 0, + "created_at": "2008-01-14T04:33:35Z", + "updated_at": "2008-01-14T04:33:35Z" + } + }, + "team": { + "value": { + "actor_type": "Team", + "role": "reader", + "id": 67890, + "node_id": "MDQ6VGVhbTY3ODkw", + "url": "https://api.github.com/teams/67890", + "html_url": "https://github.com/orgs/octo-org/teams/developers", + "name": "Developers", + "slug": "developers", + "type": "Team", + "description": "Team of developers", + "privacy": "closed", + "notification_setting": "notifications_enabled", + "members_url": "https://api.github.com/teams/67890/members{/member}", + "repositories_url": "https://api.github.com/teams/67890/repos", + "parent": null, + "organization_id": 1 + } } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "webhooks" + "category": "copilot-spaces", + "subcategory": "collaborators" } } }, - "/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.", + "/orgs/{org}/copilot-spaces/{space_number}/collaborators/{actor_type}/{actor_identifier}": { + "put": { + "summary": "Set a collaborator role for an organization Copilot Space", + "description": "Updates the role of a collaborator for a specific Copilot Space owned by an organization. The authenticated user must have appropriate permissions to manage collaborators.\n\nOAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.\n\nFine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.", "tags": [ - "orgs" + "copilot-spaces" ], - "operationId": "orgs/list-webhook-deliveries", + "operationId": "copilot-spaces/update-collaborator-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/webhooks#list-deliveries-for-an-organization-webhook" + "url": "https://docs.github.com/rest/copilot-spaces/collaborators#set-a-collaborator-role-for-an-organization-copilot-space" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/hook-id" - }, - { - "$ref": "#/components/parameters/per-page" + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } }, { - "$ref": "#/components/parameters/cursor" + "name": "actor_type", + "description": "The type of actor (user or team).", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "User", + "Team" + ] + } }, { - "$ref": "#/components/parameters/webhook-delivery-status" + "name": "actor_identifier", + "description": "The username (for users) or team slug (for teams). The numeric ID of a user or team is also accepted.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/hook-delivery-item" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "role" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "reader", + "writer", + "admin", + "no_access" + ], + "description": "The new role to grant to the collaborator. Use `no_access` to remove the collaborator." } - }, - "examples": { - "default": { - "$ref": "#/components/examples/hook-delivery-items" + } + }, + "examples": { + "default": { + "value": { + "role": "admin" } } } } - }, - "400": { - "$ref": "#/components/responses/bad_request" - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "webhooks" - } - } - }, - "/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.\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": [ - "orgs" - ], - "operationId": "orgs/get-webhook-delivery", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/webhooks#get-a-webhook-delivery-for-an-organization-webhook" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/hook-id" - }, - { - "$ref": "#/components/parameters/delivery-id" - } - ], "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/hook-delivery" + "$ref": "#/components/schemas/copilot-space-collaborator" }, "examples": { - "default": { - "$ref": "#/components/examples/hook-delivery" + "user": { + "value": { + "actor_type": "User", + "role": "admin", + "login": "octocat", + "id": 12345, + "node_id": "MDQ6VXNlcjEyMzQ1", + "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, + "name": "The Octocat", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "hireable": false, + "bio": "There once was...", + "twitter_username": "octocat", + "public_repos": 2, + "public_gists": 1, + "followers": 20, + "following": 0, + "created_at": "2008-01-14T04:33:35Z", + "updated_at": "2008-01-14T04:33:35Z" + } + }, + "team": { + "value": { + "actor_type": "Team", + "role": "admin", + "id": 67890, + "node_id": "MDQ6VGVhbTY3ODkw", + "url": "https://api.github.com/teams/67890", + "html_url": "https://github.com/orgs/octo-org/teams/developers", + "name": "Developers", + "slug": "developers", + "type": "Team", + "description": "Team of developers", + "privacy": "closed", + "notification_setting": "notifications_enabled", + "members_url": "https://api.github.com/teams/67890/members{/member}", + "repositories_url": "https://api.github.com/teams/67890/repos", + "parent": null, + "organization_id": 1 + } } } } } }, - "400": { - "$ref": "#/components/responses/bad_request" + "204": { + "description": "Response when `role` is `no_access` and the collaborator was removed." + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" }, "422": { "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "webhooks" + "category": "copilot-spaces", + "subcategory": "collaborators" } - } - }, - "/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.", + }, + "delete": { + "summary": "Remove a collaborator from an organization Copilot Space", + "description": "Removes a collaborator from a specific Copilot Space owned by an organization. The authenticated user must have appropriate permissions to manage collaborators.\n\nOAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.\n\nFine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.", "tags": [ - "orgs" + "copilot-spaces" ], - "operationId": "orgs/redeliver-webhook-delivery", + "operationId": "copilot-spaces/remove-collaborator-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/webhooks#redeliver-a-delivery-for-an-organization-webhook" + "url": "https://docs.github.com/rest/copilot-spaces/collaborators#remove-a-collaborator-from-an-organization-copilot-space" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/hook-id" - }, - { - "$ref": "#/components/parameters/delivery-id" - } - ], - "responses": { - "202": { - "$ref": "#/components/responses/accepted" - }, - "400": { - "$ref": "#/components/responses/bad_request" + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } }, - "422": { - "$ref": "#/components/responses/validation_failed" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "webhooks" - } - } - }, - "/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": [ - "orgs" - ], - "operationId": "orgs/ping-webhook", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/webhooks#ping-an-organization-webhook" - }, - "parameters": [ { - "$ref": "#/components/parameters/org" + "name": "actor_type", + "description": "The type of actor (user or team).", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "User", + "Team" + ] + } }, { - "$ref": "#/components/parameters/hook-id" + "name": "actor_identifier", + "description": "The username (for users) or team slug (for teams). The numeric ID of a user or team is also accepted.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } ], "responses": { "204": { "description": "Response" }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "404": { "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "webhooks" + "category": "copilot-spaces", + "subcategory": "collaborators" } } }, - "/orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}": { + "/orgs/{org}/copilot-spaces/{space_number}/resources": { "get": { - "summary": "Get route stats by actor", - "description": "Get API request count statistics for an actor broken down by route within a specified time frame.", + "summary": "List resources for an organization Copilot Space", + "description": "Lists all resources attached to a specific Copilot Space owned by an organization.\nThe authenticated user must have appropriate permissions to view the space.\n\nOAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.\n\nFine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.", "tags": [ - "orgs" + "copilot-spaces" ], - "operationId": "api-insights/get-route-stats-by-actor", + "operationId": "copilot-spaces/list-resources-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/api-insights#get-route-stats-by-actor" + "url": "https://docs.github.com/rest/copilot-spaces/resources#list-resources-for-an-organization-copilot-space" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/api-insights-actor-type" - }, - { - "$ref": "#/components/parameters/api-insights-actor-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-route-stats-sort" - }, - { - "$ref": "#/components/parameters/api-insights-api-route-substring" + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { @@ -24637,260 +25118,253 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/api-insights-route-stats" + "type": "object", + "required": [ + "resources" + ], + "properties": { + "resources": { + "type": "array", + "description": "The list of resources attached to this Copilot Space.", + "items": { + "$ref": "#/components/schemas/copilot-space-resource" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/api-insights-route-stats" + "value": { + "resources": [ + { + "id": 1, + "resource_type": "repository", + "copilot_chat_attachment_id": null, + "metadata": { + "repository_id": 42 + }, + "created_at": "2025-01-01T00:00:00Z", + "updated_at": "2025-01-01T00:00:00Z" + }, + { + "id": 2, + "resource_type": "free_text", + "copilot_chat_attachment_id": null, + "metadata": { + "name": "notes.txt", + "text": "Some helpful notes" + }, + "created_at": "2025-01-01T00:00:00Z", + "updated_at": "2025-01-01T00:00:00Z" + } + ] + } } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "api-insights" + "category": "copilot-spaces", + "subcategory": "resources" } - } - }, - "/orgs/{org}/insights/api/subject-stats": { - "get": { - "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.", + }, + "post": { + "summary": "Create a resource for an organization Copilot Space", + "description": "Creates a new resource in a specific Copilot Space owned by an organization.\nThe authenticated user must have write permissions on the space.\n\nThe following resource types are supported: `repository`, `github_file`, `free_text`, `github_issue`, `github_pull_request`.\nThe `uploaded_text_file` and `media_content` types are not supported via this endpoint.\n\nFor `github_file` resources, if a resource with the same repository, file path, and SHA already exists, the existing resource is returned with a `200` status.\n\nOAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.\n\nFine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space, including the resource being created.", "tags": [ - "orgs" + "copilot-spaces" ], - "operationId": "api-insights/get-subject-stats", + "operationId": "copilot-spaces/create-resource-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/api-insights#get-subject-stats" + "url": "https://docs.github.com/rest/copilot-spaces/resources#create-a-resource-for-an-organization-copilot-space" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$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-subject-name-substring" + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/api-insights-subject-stats" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "resource_type", + "metadata" + ], + "properties": { + "resource_type": { + "type": "string", + "enum": [ + "repository", + "github_file", + "free_text", + "github_issue", + "github_pull_request" + ], + "description": "The type of resource to create." + }, + "metadata": { + "type": "object", + "description": "Resource-specific metadata.", + "additionalProperties": true + } + } + }, + "examples": { + "free_text": { + "value": { + "resource_type": "free_text", + "metadata": { + "name": "notes.txt", + "text": "Some helpful notes" + } + } }, - "examples": { - "default": { - "$ref": "#/components/examples/api-insights-subject-stats" + "repository": { + "value": { + "resource_type": "repository", + "metadata": { + "repository_id": 42 + } + } + }, + "github_file": { + "value": { + "resource_type": "github_file", + "metadata": { + "repository_id": 42, + "file_path": "README.md", + "sha": "abc123" + } } } } } } }, - "x-github": { - "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "api-insights" - } - } - }, - "/orgs/{org}/insights/api/summary-stats": { - "get": { - "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": [ - "orgs" - ], - "operationId": "api-insights/get-summary-stats", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/api-insights#get-summary-stats" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/api-insights-min-timestamp" - }, - { - "$ref": "#/components/parameters/api-insights-max-timestamp" - } - ], "responses": { - "200": { - "description": "Response", + "201": { + "description": "Resource created", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/api-insights-summary-stats" + "$ref": "#/components/schemas/copilot-space-resource" }, "examples": { "default": { - "$ref": "#/components/examples/api-insights-summary-stats" + "value": { + "id": 1, + "resource_type": "free_text", + "copilot_chat_attachment_id": null, + "metadata": { + "name": "notes.txt", + "text": "Some helpful notes" + }, + "created_at": "2025-01-01T00:00:00Z", + "updated_at": "2025-01-01T00:00:00Z" + } } } } } - } - }, - "x-github": { - "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "api-insights" - } - } - }, - "/orgs/{org}/insights/api/summary-stats/users/{user_id}": { - "get": { - "summary": "Get summary stats by user", - "description": "Get overall statistics of API requests within the organization for a user.", - "tags": [ - "orgs" - ], - "operationId": "api-insights/get-summary-stats-by-user", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/api-insights#get-summary-stats-by-user" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/api-insights-user-id" }, - { - "$ref": "#/components/parameters/api-insights-min-timestamp" - }, - { - "$ref": "#/components/parameters/api-insights-max-timestamp" - } - ], - "responses": { "200": { - "description": "Response", + "description": "Duplicate github_file resource already exists", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/api-insights-summary-stats" + "$ref": "#/components/schemas/copilot-space-resource" }, "examples": { "default": { - "$ref": "#/components/examples/api-insights-summary-stats" + "value": { + "id": 1, + "resource_type": "github_file", + "copilot_chat_attachment_id": null, + "metadata": { + "repository_id": 42, + "file_path": "README.md", + "sha": "abc123" + }, + "created_at": "2025-01-01T00:00:00Z", + "updated_at": "2025-01-01T00:00:00Z" + } } } } } - } - }, - "x-github": { - "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "api-insights" - } - } - }, - "/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": [ - "orgs" - ], - "operationId": "api-insights/get-summary-stats-by-actor", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/api-insights#get-summary-stats-by-actor" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" }, - { - "$ref": "#/components/parameters/api-insights-min-timestamp" - }, - { - "$ref": "#/components/parameters/api-insights-max-timestamp" + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "$ref": "#/components/parameters/api-insights-actor-type" + "404": { + "$ref": "#/components/responses/not_found" }, - { - "$ref": "#/components/parameters/api-insights-actor-id" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/api-insights-summary-stats" - }, - "examples": { - "default": { - "$ref": "#/components/examples/api-insights-summary-stats" - } - } - } - } + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "api-insights" + "category": "copilot-spaces", + "subcategory": "resources" } } }, - "/orgs/{org}/insights/api/time-stats": { + "/orgs/{org}/copilot-spaces/{space_number}/resources/{space_resource_id}": { "get": { - "summary": "Get time stats", - "description": "Get the number of API requests and rate-limited requests made within an organization over a specified time period.", + "summary": "Get a resource for an organization Copilot Space", + "description": "Gets a specific resource attached to a Copilot Space owned by an organization.\nThe authenticated user must have appropriate permissions to view the space.\n\nOAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.\n\nFine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.", "tags": [ - "orgs" + "copilot-spaces" ], - "operationId": "api-insights/get-time-stats", + "operationId": "copilot-spaces/get-resource-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/api-insights#get-time-stats" + "url": "https://docs.github.com/rest/copilot-spaces/resources#get-a-resource-for-an-organization-copilot-space" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/api-insights-min-timestamp" - }, - { - "$ref": "#/components/parameters/api-insights-max-timestamp" + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } }, { - "$ref": "#/components/parameters/api-insights-timestamp-increment" + "name": "space_resource_id", + "description": "The unique identifier of the resource.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { @@ -24899,209 +25373,205 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/api-insights-time-stats" + "$ref": "#/components/schemas/copilot-space-resource" }, "examples": { "default": { - "$ref": "#/components/examples/api-insights-time-stats" + "value": { + "id": 1, + "resource_type": "free_text", + "copilot_chat_attachment_id": null, + "metadata": { + "name": "notes.txt", + "text": "Some helpful notes" + }, + "created_at": "2025-01-01T00:00:00Z", + "updated_at": "2025-01-01T00:00:00Z" + } } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "api-insights" + "category": "copilot-spaces", + "subcategory": "resources" } - } - }, - "/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.", + }, + "put": { + "summary": "Set a resource for an organization Copilot Space", + "description": "Updates the metadata of a resource in a specific Copilot Space owned by an organization.\nThe authenticated user must have write permissions on the space.\n\nOAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.\n\nFine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space, including the resource being updated.", "tags": [ - "orgs" + "copilot-spaces" ], - "operationId": "api-insights/get-time-stats-by-user", + "operationId": "copilot-spaces/update-resource-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/api-insights#get-time-stats-by-user" + "url": "https://docs.github.com/rest/copilot-spaces/resources#set-a-resource-for-an-organization-copilot-space" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/api-insights-user-id" - }, - { - "$ref": "#/components/parameters/api-insights-min-timestamp" - }, - { - "$ref": "#/components/parameters/api-insights-max-timestamp" + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } }, { - "$ref": "#/components/parameters/api-insights-timestamp-increment" + "name": "space_resource_id", + "description": "The unique identifier of the resource.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/api-insights-time-stats" - }, - "examples": { - "default": { - "$ref": "#/components/examples/api-insights-time-stats" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "metadata": { + "type": "object", + "description": "Updated resource-specific metadata.", + "additionalProperties": true + } + } + }, + "examples": { + "default": { + "value": { + "metadata": { + "name": "updated-notes.txt", + "text": "Updated content" + } } } } } } }, - "x-github": { - "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "api-insights" - } - } - }, - "/orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id}": { - "get": { - "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": [ - "orgs" - ], - "operationId": "api-insights/get-time-stats-by-actor", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/api-insights#get-time-stats-by-actor" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/api-insights-actor-type" - }, - { - "$ref": "#/components/parameters/api-insights-actor-id" - }, - { - "$ref": "#/components/parameters/api-insights-min-timestamp" - }, - { - "$ref": "#/components/parameters/api-insights-max-timestamp" - }, - { - "$ref": "#/components/parameters/api-insights-timestamp-increment" - } - ], "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/api-insights-time-stats" + "$ref": "#/components/schemas/copilot-space-resource" }, "examples": { "default": { - "$ref": "#/components/examples/api-insights-time-stats" + "value": { + "id": 1, + "resource_type": "free_text", + "copilot_chat_attachment_id": null, + "metadata": { + "name": "updated-notes.txt", + "text": "Updated content" + }, + "created_at": "2025-01-01T00:00:00Z", + "updated_at": "2025-01-01T12:00:00Z" + } } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "api-insights" + "category": "copilot-spaces", + "subcategory": "resources" } - } - }, - "/orgs/{org}/insights/api/user-stats/{user_id}": { - "get": { - "summary": "Get user stats", - "description": "Get API usage statistics within an organization for a user broken down by the type of access.", + }, + "delete": { + "summary": "Delete a resource from an organization Copilot Space", + "description": "Deletes a resource from a specific Copilot Space owned by an organization.\nThe authenticated user must have write permissions on the space.\n\nOAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.\n\nFine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.", "tags": [ - "orgs" + "copilot-spaces" ], - "operationId": "api-insights/get-user-stats", + "operationId": "copilot-spaces/delete-resource-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/api-insights#get-user-stats" + "url": "https://docs.github.com/rest/copilot-spaces/resources#delete-a-resource-from-an-organization-copilot-space" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$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" + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } }, { - "$ref": "#/components/parameters/api-insights-actor-name-substring" + "name": "space_resource_id", + "description": "The unique identifier of the resource.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/api-insights-user-stats" - }, - "examples": { - "default": { - "$ref": "#/components/examples/api-insights-user-stats" - } - } - } - } + "204": { + "description": "Response" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "api-insights" + "category": "copilot-spaces", + "subcategory": "resources" } } }, - "/orgs/{org}/installation": { + "/orgs/{org}/copilot/billing": { "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.", + "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": [ - "apps" + "copilot" ], - "operationId": "apps/get-org-installation", + "operationId": "copilot/get-copilot-organization-details", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/apps/apps#get-an-organization-installation-for-the-authenticated-app" + "url": "https://docs.github.com/rest/copilot/copilot-user-management#get-copilot-seat-information-and-settings-for-an-organization" }, "parameters": [ { @@ -25110,50 +25580,71 @@ ], "responses": { "200": { - "description": "Response", + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/installation" + "$ref": "#/components/schemas/copilot-organization-details" }, "examples": { "default": { - "$ref": "#/components/examples/installation" + "$ref": "#/components/examples/copilot-organization-details" } } } } + }, + "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": false, - "category": "apps", - "subcategory": "apps" + "enabledForGitHubApps": true, + "category": "copilot", + "subcategory": "copilot-user-management" } } }, - "/orgs/{org}/installations": { + "/orgs/{org}/copilot/billing/seats": { "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.", + "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": [ - "orgs" + "copilot" ], - "operationId": "orgs/list-app-installations", + "operationId": "copilot/list-copilot-seats", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/orgs#list-app-installations-for-an-organization" + "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/per-page" + "$ref": "#/components/parameters/page" }, { - "$ref": "#/components/parameters/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": 50 + } } ], "responses": { @@ -25163,25 +25654,22 @@ "application/json": { "schema": { "type": "object", - "required": [ - "total_count", - "installations" - ], "properties": { - "total_count": { - "type": "integer" + "total_seats": { + "type": "integer", + "description": "Total number of Copilot seats for the organization currently being billed." }, - "installations": { + "seats": { "type": "array", "items": { - "$ref": "#/components/schemas/installation" + "$ref": "#/components/schemas/copilot-seat-details" } } } }, "examples": { "default": { - "$ref": "#/components/examples/installation-paginated" + "$ref": "#/components/examples/copilot-seats-list" } } } @@ -25191,76 +25679,139 @@ "$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" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "orgs" + "category": "copilot", + "subcategory": "copilot-user-management" } } }, - "/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.", + "/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": [ - "interactions" + "copilot" ], - "operationId": "interactions/get-restrictions-for-org", + "operationId": "copilot/add-copilot-seats-for-teams", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/interactions/orgs#get-interaction-restrictions-for-an-organization" + "url": "https://docs.github.com/rest/copilot/copilot-user-management#add-teams-to-the-copilot-subscription-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" } ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "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": { - "200": { - "description": "Response", + "201": { + "description": "OK", "content": { "application/json": { "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/interaction-limit-response" - }, - { - "type": "object", - "properties": {}, - "additionalProperties": false + "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": { - "$ref": "#/components/examples/interaction-limit-response" + "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, - "category": "interactions", - "subcategory": "orgs" + "category": "copilot", + "subcategory": "copilot-user-management" } }, - "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.", + "delete": { + "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": [ - "interactions" + "copilot" ], - "operationId": "interactions/set-restrictions-for-org", + "operationId": "copilot/cancel-copilot-seat-assignment-for-teams", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/interactions/orgs#set-interaction-restrictions-for-an-organization" + "url": "https://docs.github.com/rest/copilot/copilot-user-management#remove-teams-from-the-copilot-subscription-for-an-organization" }, "parameters": [ { @@ -25268,179 +25819,201 @@ } ], "requestBody": { - "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/interaction-limit" + "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": { - "limit": "collaborators_only", - "expiry": "one_month" + "selected_teams": [ + "engteam1", + "engteam2", + "engteam3" + ] } } } } - } + }, + "required": true }, "responses": { "200": { - "description": "Response", + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/interaction-limit-response" + "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": { - "$ref": "#/components/examples/interaction-limit-response" + "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": { - "$ref": "#/components/responses/validation_failed" + "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, - "category": "interactions", - "subcategory": "orgs" + "category": "copilot", + "subcategory": "copilot-user-management" } - }, - "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.", + } + }, + "/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": [ - "interactions" + "copilot" ], - "operationId": "interactions/remove-restrictions-for-org", + "operationId": "copilot/add-copilot-seats-for-users", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/interactions/orgs#remove-interaction-restrictions-for-an-organization" + "url": "https://docs.github.com/rest/copilot/copilot-user-management#add-users-to-the-copilot-subscription-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" } ], - "responses": { - "204": { - "description": "Response" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "interactions", - "subcategory": "orgs" - } - } - }, - "/orgs/{org}/invitations": { - "get": { - "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": [ - "orgs" - ], - "operationId": "orgs/list-pending-invitations", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/members#list-pending-organization-invitations" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "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" + "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" + ] + } + } + } } }, - { - "name": "invitation_source", - "description": "Filter invitations by their invitation source.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "all", - "member", - "scim" - ], - "default": "all" - } - } - ], + "required": true + }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "OK", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/organization-invitation" - } + "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/organization-invitation-items" + "value": { + "seats_created": 5 + } } } } - }, - "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": "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, - "category": "orgs", - "subcategory": "members" + "category": "copilot", + "subcategory": "copilot-user-management" } }, - "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).\"", + "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": [ - "orgs" + "copilot" ], - "operationId": "orgs/create-invitation", + "operationId": "copilot/cancel-copilot-seat-assignment-for-users", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/members#create-an-organization-invitation" + "url": "https://docs.github.com/rest/copilot/copilot-user-management#remove-users-from-the-copilot-subscription-for-an-organization" }, "parameters": [ { @@ -25448,204 +26021,273 @@ } ], "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": { + "selected_usernames": { "type": "array", - "description": "Specify IDs for the teams you want to invite new members to.", + "description": "The usernames of the organization members for which to revoke access to GitHub Copilot.", "items": { - "type": "integer" - } + "type": "string" + }, + "minItems": 1 } - } + }, + "required": [ + "selected_usernames" + ] }, "examples": { "default": { "value": { - "email": "octocat@github.com", - "role": "direct_member", - "team_ids": [ - 12, - 26 + "selected_usernames": [ + "cooluser1", + "hacker2", + "octocat" ] } } } } - } + }, + "required": true }, "responses": { - "201": { - "description": "Response", + "200": { + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/organization-invitation" + "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/organization-invitation" + "value": { + "seats_cancelled": 5 + } } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "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, 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": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "members" + "category": "copilot", + "subcategory": "copilot-user-management" } } }, - "/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/github/managing-subscriptions-and-notifications-on-github/about-notifications).", + "/orgs/{org}/copilot/coding-agent/permissions": { + "get": { + "summary": "Get Copilot cloud agent permissions for an organization", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nGets information about which repositories in an organization have been enabled\nor disabled for the Copilot cloud agent.\n\nOrganization owners can configure whether Copilot cloud agent is enabled for\nall repositories, selected repositories, or no repositories owned by organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "orgs" + "copilot" ], - "operationId": "orgs/cancel-invitation", + "operationId": "copilot/get-copilot-coding-agent-permissions-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/members#cancel-an-organization-invitation" + "url": "https://docs.github.com/rest/copilot/copilot-coding-agent-management#get-copilot-cloud-agent-permissions-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/invitation-id" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "enabled_repositories": { + "type": "string", + "description": "The policy for which repositories can use Copilot cloud agent. Can be one of `all`, `selected`, or `none`.", + "enum": [ + "all", + "selected", + "none" + ] + }, + "selected_repositories_url": { + "type": "string", + "description": "The URL for the selected repositories endpoint. Only present when `enabled_repositories` is `selected`." + } + }, + "required": [ + "enabled_repositories" + ] + }, + "examples": { + "all_enabled": { + "summary": "All repositories enabled", + "value": { + "enabled_repositories": "all" + } + }, + "selected_enabled": { + "summary": "Selected repositories enabled", + "value": { + "enabled_repositories": "selected", + "selected_repositories_url": "https://api.github.com/orgs/my-org/copilot/coding-agent/permissions/repositories" + } + }, + "none_enabled": { + "summary": "No repositories enabled", + "value": { + "enabled_repositories": "none" + } + } + } + } + } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "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": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "members" + "category": "copilot", + "subcategory": "copilot-coding-agent-management" } - } - }, - "/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.", + }, + "put": { + "summary": "Set Copilot cloud agent permissions for an organization", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nSets the policy for which repositories in an organization can use Copilot cloud agent.\n\nOrganization owners can configure whether Copilot cloud agent is enabled for\nall repositories, selected repositories, or no repositories owned by the organization.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "orgs" + "copilot" ], - "operationId": "orgs/list-invitation-teams", + "operationId": "copilot/set-copilot-coding-agent-permissions-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/members#list-organization-invitation-teams" + "url": "https://docs.github.com/rest/copilot/copilot-coding-agent-management#set-copilot-cloud-agent-permissions-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/invitation-id" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "enabled_repositories": { + "type": "string", + "description": "The policy for which repositories can use Copilot cloud agent. Can be one of `all`, `selected`, or `none`.", + "enum": [ + "all", + "selected", + "none" + ] } }, - "examples": { - "default": { - "$ref": "#/components/examples/team-items" + "required": [ + "enabled_repositories" + ] + }, + "examples": { + "default": { + "value": { + "enabled_repositories": "selected" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + } + }, + "responses": { + "204": { + "description": "No Content" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "members" + "category": "copilot", + "subcategory": "copilot-coding-agent-management" } } }, - "/orgs/{org}/issue-fields": { + "/orgs/{org}/copilot/coding-agent/permissions/repositories": { "get": { - "summary": "List issue fields for an organization", - "description": "Lists all issue fields for an organization. OAuth app tokens and personal access tokens (classic) need the read:org scope to use this endpoint.", + "summary": "List repositories enabled for Copilot cloud agent in an organization", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nLists the selected repositories that are enabled for Copilot cloud agent in an organization.\n\nOrganization owners can use this endpoint when the coding agent repository policy\nis set to `selected` to see which repositories have been enabled.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "orgs" + "copilot" ], - "operationId": "orgs/list-issue-fields", + "operationId": "copilot/list-copilot-coding-agent-selected-repositories-for-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/issue-fields#list-issue-fields-for-an-organization" + "url": "https://docs.github.com/rest/copilot/copilot-coding-agent-management#list-repositories-enabled-for-copilot-cloud-agent-in-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -25654,40 +26296,64 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/issue-field" - } + "type": "object", + "properties": { + "total_count": { + "type": "integer" + }, + "repositories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } + } + }, + "required": [ + "total_count", + "repositories" + ] }, "examples": { "default": { - "$ref": "#/components/examples/issue-field-items" + "$ref": "#/components/examples/minimal-repository-paginated" } } } } }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "404": { "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "issue-fields" + "category": "copilot", + "subcategory": "copilot-coding-agent-management" } }, - "post": { - "summary": "Create issue field for an organization", - "description": "Creates a new issue field for an organization.\n\nYou can find out more about issue fields in [Managing issue fields in an organization](https://docs.github.com/issues/tracking-your-work-with-issues/using-issues/managing-issue-fields-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.", + "put": { + "summary": "Set selected repositories for Copilot cloud agent in an organization", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nReplaces the list of selected repositories that are enabled for Copilot cloud\nagent in an organization. This method can only be called when the cloud agent\nrepository policy is set to `selected`.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "orgs" + "copilot" ], - "operationId": "orgs/create-issue-field", + "operationId": "copilot/set-copilot-coding-agent-selected-repositories-for-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/issue-fields#create-issue-field-for-an-organization" + "url": "https://docs.github.com/rest/copilot/copilot-coding-agent-management#set-selected-repositories-for-copilot-cloud-agent-in-an-organization" }, "parameters": [ { @@ -25699,30 +26365,27 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/organization-create-issue-field" + "type": "object", + "properties": { + "selected_repository_ids": { + "description": "List of repository IDs to enable for Copilot cloud agent.", + "type": "array", + "items": { + "type": "integer", + "description": "Unique identifier of the repository." + } + } + }, + "required": [ + "selected_repository_ids" + ] }, "examples": { "default": { "value": { - "name": "Priority", - "description": "Level of importance for the issue", - "data_type": "single_select", - "options": [ - { - "name": "High", - "description": "High priority", - "color": "red" - }, - { - "name": "Medium", - "description": "Medium priority", - "color": "yellow" - }, - { - "name": "Low", - "description": "Low priority", - "color": "green" - } + "selected_repository_ids": [ + 32, + 42 ] } } @@ -25731,190 +26394,144 @@ } }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issue-field" - }, - "examples": { - "default": { - "$ref": "#/components/examples/issue-field" - } - } - } - } + "204": { + "description": "No Content" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" }, + "409": { + "$ref": "#/components/responses/conflict" + }, "422": { - "$ref": "#/components/responses/validation_failed_simple" + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "issue-fields" + "category": "copilot", + "subcategory": "copilot-coding-agent-management" } } }, - "/orgs/{org}/issue-fields/{issue_field_id}": { - "patch": { - "summary": "Update issue field for an organization", - "description": "Updates an issue field for an organization.\n\nYou can find out more about issue fields in [Managing issue fields in an organization](https://docs.github.com/issues/tracking-your-work-with-issues/using-issues/managing-issue-fields-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.", + "/orgs/{org}/copilot/coding-agent/permissions/repositories/{repository_id}": { + "put": { + "summary": "Enable a repository for Copilot cloud agent in an organization", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nAdds a repository to the list of selected repositories enabled for Copilot\ncloud agent in an organization. This method can only be called when the\ncloud agent repository policy is set to `selected`.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "orgs" + "copilot" ], - "operationId": "orgs/update-issue-field", + "operationId": "copilot/enable-copilot-coding-agent-for-repository-in-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/issue-fields#update-issue-field-for-an-organization" + "url": "https://docs.github.com/rest/copilot/copilot-coding-agent-management#enable-a-repository-for-copilot-cloud-agent-in-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/issue-field-id" + "$ref": "#/components/parameters/repository-id" } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/organization-update-issue-field" - }, - "examples": { - "default": { - "summary": "Update name and description", - "description": "Update the name and description of an issue field", - "value": { - "name": "Priority", - "description": "Level of importance for the issue" - } - }, - "update-single-select-options": { - "summary": "Update single select options", - "description": "Update the options for a single select issue field", - "value": { - "name": "Status", - "description": "Current status of the issue", - "options": [ - { - "name": "Backlog", - "description": "Items waiting to be prioritized", - "color": "gray", - "priority": 1 - }, - { - "name": "In Progress", - "description": "Currently being worked on", - "color": "blue", - "priority": 2 - }, - { - "name": "Done", - "description": "Completed work", - "color": "green", - "priority": 3 - } - ] - } - }, - "update-name-only": { - "summary": "Update name only", - "description": "Update only the name of an issue field", - "value": { - "name": "Updated Field Name" - } - } - } - } - } - }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/issue-field" - }, - "examples": { - "default": { - "$ref": "#/components/examples/issue-field" - } - } - } - } + "204": { + "description": "No Content" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" }, + "409": { + "$ref": "#/components/responses/conflict" + }, "422": { - "$ref": "#/components/responses/validation_failed_simple" + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "issue-fields" + "category": "copilot", + "subcategory": "copilot-coding-agent-management" } }, "delete": { - "summary": "Delete issue field for an organization", - "description": "Deletes an issue field for an organization.\n\nYou can find out more about issue fields in [Managing issue fields in an organization](https://docs.github.com/issues/tracking-your-work-with-issues/using-issues/managing-issue-fields-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.", + "summary": "Disable a repository for Copilot cloud agent in an organization", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nRemoves a repository from the list of selected repositories enabled for Copilot\ncloud agent in an organization. This method can only be called when the\ncloud agent repository policy is set to `selected`.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scopes to use this endpoint.", "tags": [ - "orgs" + "copilot" ], - "operationId": "orgs/delete-issue-field", + "operationId": "copilot/disable-copilot-coding-agent-for-repository-in-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/issue-fields#delete-issue-field-for-an-organization" + "url": "https://docs.github.com/rest/copilot/copilot-coding-agent-management#disable-a-repository-for-copilot-cloud-agent-in-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/issue-field-id" + "$ref": "#/components/parameters/repository-id" } ], "responses": { "204": { - "$ref": "#/components/responses/no_content" + "description": "No Content" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "issue-fields" + "category": "copilot", + "subcategory": "copilot-coding-agent-management" } } }, - "/orgs/{org}/issue-types": { + "/orgs/{org}/copilot/content_exclusion": { "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.", + "summary": "Get Copilot content exclusion rules 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 content exclusion path rules.\nTo configure these settings, go to the organization's settings on GitHub.\nFor more information, see \"[Excluding content from GitHub Copilot](https://docs.github.com/copilot/managing-copilot/configuring-and-auditing-content-exclusion/excluding-content-from-github-copilot#configuring-content-exclusions-for-your-organization).\"\n\nOrganization owners can view details about Copilot content exclusion rules for the organization.\n\nOAuth app tokens and personal access tokens (classic) need either the `copilot` or `read:org` scopes to use this endpoint.\n\n> [!CAUTION]\n> * At this time, the API does not support comments. This endpoint will not return any comments in the existing rules.\n> * At this time, the API does not support duplicate keys. If your content exclusion configuration contains duplicate keys, the API will return only the last occurrence of that key. For example, if duplicate entries are present, only the final value will be included in the response.", "tags": [ - "orgs" + "copilot" ], - "operationId": "orgs/list-issue-types", + "operationId": "copilot/copilot-content-exclusion-for-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/issue-types#list-issue-types-for-an-organization" + "url": "https://docs.github.com/rest/copilot/copilot-content-exclusion-management#get-copilot-content-exclusion-rules-for-an-organization" }, "parameters": [ { @@ -25923,23 +26540,29 @@ ], "responses": { "200": { - "description": "Response", + "description": "OK", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/issue-type" - } + "$ref": "#/components/schemas/copilot-organization-content-exclusion-details" }, "examples": { "default": { - "$ref": "#/components/examples/issue-type-items" + "$ref": "#/components/examples/copilot-organization-content-exclusion-details" } } } } }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "404": { "$ref": "#/components/responses/not_found" } @@ -25947,20 +26570,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "issue-types" + "category": "copilot", + "subcategory": "copilot-content-exclusion-management" } }, - "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.", + "put": { + "summary": "Set Copilot content exclusion rules for an organization", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nSets Copilot content exclusion path rules for an organization.\nTo configure these settings, go to the organization's settings on GitHub.\nFor more information, see \"[Excluding content from GitHub Copilot](https://docs.github.com/copilot/managing-copilot/configuring-and-auditing-content-exclusion/excluding-content-from-github-copilot#configuring-content-exclusions-for-your-organization).\"\n\nOrganization owners can set Copilot content exclusion rules for the organization.\n\nOAuth app tokens and personal access tokens (classic) need the `copilot` scope to use this endpoint.\n\n> [!CAUTION]\n> * At this time, the API does not support comments. When using this endpoint, any existing comments in your rules will be deleted.\n> * At this time, the API does not support duplicate keys. If you submit content exclusions through the API with duplicate keys, only the last occurrence will be saved. Earlier entries with the same key will be overwritten.", "tags": [ - "orgs" + "copilot" ], - "operationId": "orgs/create-issue-type", + "operationId": "copilot/set-copilot-content-exclusion-for-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/issue-types#create-issue-type-for-an-organization" + "url": "https://docs.github.com/rest/copilot/copilot-content-exclusion-management#set-copilot-content-exclusion-rules-for-an-organization" }, "parameters": [ { @@ -25968,19 +26591,61 @@ } ], "requestBody": { + "description": "The content exclusion rules to set", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/organization-create-issue-type" + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "anyOf": [ + { + "type": "string", + "description": "The path to the file that will be excluded." + }, + { + "type": "object", + "properties": { + "ifAnyMatch": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "ifAnyMatch" + ], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "ifNoneMatch": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "ifNoneMatch" + ], + "additionalProperties": false + } + ] + } + } }, "examples": { "default": { + "summary": "Example of content exclusion paths", "value": { - "name": "Epic", - "description": "An issue type for a multi-week tracking of work", - "is_enabled": true, - "color": "green" + "octo-repo": [ + "/src/some-dir/kernel.rs" + ] } } } @@ -25989,130 +26654,149 @@ }, "responses": { "200": { - "description": "Response", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue-type" + "type": "object", + "properties": { + "message": { + "type": "string" + } + } }, "examples": { "default": { - "$ref": "#/components/examples/issue-type" + "value": { + "message": "Content exclusion rules updated successfully." + } } } } } }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "404": { "$ref": "#/components/responses/not_found" }, + "413": { + "$ref": "#/components/responses/too_large" + }, "422": { "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { - "githubCloudOnly": false, + "githubCloudOnly": null, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "issue-types" + "category": "copilot", + "subcategory": "copilot-content-exclusion-management" } } }, - "/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.", + "/orgs/{org}/copilot/metrics/reports/organization-1-day": { + "get": { + "summary": "Get Copilot organization usage metrics for a specific day", + "description": "Use this endpoint to retrieve download links for the Copilot organization usage metrics report for a specific day. The report provides comprehensive usage data for Copilot features across the organization.\n\nThe report contains aggregated metrics for the specified day, including usage statistics for various Copilot features, user engagement data, and feature adoption metrics. Reports are generated daily and made available for download through signed URLs with a limited expiration time.\n\nThe response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed.\n\nOrganization owners and authorized users with fine-grained \"View Organization Copilot Metrics\" permission can retrieve Copilot metrics reports for the organization. OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.\n\nFor more information about organization metrics attribution, see [How are metrics attributed across organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations).", "tags": [ - "orgs" + "copilot" ], - "operationId": "orgs/update-issue-type", + "operationId": "copilot/copilot-organization-one-day-usage-metrics", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/issue-types#update-issue-type-for-an-organization" + "url": "https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-usage-metrics-for-a-specific-day" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/issue-type-id" + "$ref": "#/components/parameters/day" } ], - "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": { - "$ref": "#/components/schemas/issue-type" + "$ref": "#/components/schemas/copilot-usage-metrics-1-day-report" }, "examples": { "default": { - "$ref": "#/components/examples/issue-type" + "$ref": "#/components/examples/copilot-usage-metrics-1-day-report" } } } } }, + "204": { + "$ref": "#/components/responses/no_content" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "404": { "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "issue-types" + "category": "copilot", + "subcategory": "copilot-usage-metrics" } - }, - "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.", + } + }, + "/orgs/{org}/copilot/metrics/reports/organization-28-day/latest": { + "get": { + "summary": "Get Copilot organization usage metrics", + "description": "Use this endpoint to retrieve download links for the latest 28-day organization Copilot usage metrics report. The report provides comprehensive usage data for Copilot features across the organization.\n\nThe report contains aggregated metrics for the previous 28 days, including usage statistics for various Copilot features, user engagement data, and feature adoption metrics. Reports are generated daily and made available for download through signed URLs with a limited expiration time.\n\nThe response includes download links to the report files, along with the specific date range covered by the report. The report covers a complete 28-day period ending on the most recent day for which data has been processed.\n\nOrganization owners and authorized users with fine-grained \"View Organization Copilot Metrics\" permission can retrieve Copilot metrics reports for the organization. OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.\n\nFor more information about organization metrics attribution, see [How are metrics attributed across organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations).", "tags": [ - "orgs" + "copilot" ], - "operationId": "orgs/delete-issue-type", + "operationId": "copilot/copilot-organization-usage-metrics", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/issue-types#delete-issue-type-for-an-organization" + "url": "https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-usage-metrics" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/issue-type-id" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/copilot-usage-metrics-28-day-report" + }, + "examples": { + "default": { + "$ref": "#/components/examples/copilot-usage-metrics-28-day-report" + } + } + } + } }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" + "500": { + "$ref": "#/components/responses/internal_error" + }, + "403": { + "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" @@ -26121,98 +26805,29 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "issue-types" + "category": "copilot", + "subcategory": "copilot-usage-metrics" } } }, - "/orgs/{org}/issues": { + "/orgs/{org}/copilot/metrics/reports/repos-1-day": { "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`.", + "summary": "Get Copilot organization repository report for a specific day", + "description": "Use this endpoint to retrieve download links for the Copilot organization repository report for a specific day. The report provides per-repository pull request metrics for Copilot across the organization, with one entry per repository.\n\nThe report contains repository-level pull request activity for the specified day, including the Copilot Coding Agent (CCA) and Copilot Code Review (CCR) breakdowns. Only repositories that had activity on the specified day are included. Reports are generated daily and made available for download through signed URLs with a limited expiration time.\n\nThe response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed.\n\nOrganization owners and authorized users with fine-grained \"View Organization Copilot Metrics\" permission can retrieve Copilot metrics reports for the organization. OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.\n\nFor more information about organization metrics attribution, see [How are metrics attributed across organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations).", "tags": [ - "issues" + "copilot" ], - "operationId": "issues/list-for-org", + "operationId": "copilot/copilot-organization-repos-one-day-report", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/issues#list-organization-issues-assigned-to-the-authenticated-user" + "url": "https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-repository-report-for-a-specific-day" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "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" - } - }, - { - "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" + "$ref": "#/components/parameters/day" } ], "responses": { @@ -26221,87 +26836,55 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/issue" - } + "$ref": "#/components/schemas/copilot-usage-metrics-1-day-report" }, "examples": { "default": { - "$ref": "#/components/examples/issue-with-repo-items" + "$ref": "#/components/examples/copilot-usage-metrics-1-day-report" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, + "204": { + "$ref": "#/components/responses/no_content" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "404": { "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "issues", - "subcategory": "issues" + "enabledForGitHubApps": true, + "category": "copilot", + "subcategory": "copilot-usage-metrics" } } }, - "/orgs/{org}/members": { + "/orgs/{org}/copilot/metrics/reports/user-teams-1-day": { "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 Copilot organization user-teams report for a specific day", + "description": "Use this endpoint to retrieve download links for the Copilot organization user-teams report for a specific day. The report provides user-team join data for Copilot across the organization, with one entry per user-team pair.\n\nThe report contains user-team membership data for the specified day, enabling consumers to join with the existing organization user reports to compute team-level usage metrics. Reports are generated daily and made available for download through signed URLs with a limited expiration time.\n\nThe response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed.\n\nOrganization owners and authorized users with fine-grained \"View Organization Copilot Metrics\" permission can retrieve Copilot metrics reports for the organization. OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.\n\nFor more information about organization metrics attribution, see [How are metrics attributed across organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations).", "tags": [ - "orgs" + "copilot" ], - "operationId": "orgs/list-members", + "operationId": "copilot/copilot-organization-user-teams-one-day-report", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/members#list-organization-members" + "url": "https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-user-teams-report-for-a-specific-day" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "name": "filter", - "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": [ - "2fa_disabled", - "2fa_insecure", - "all" - ], - "default": "all" - } - }, - { - "name": "role", - "description": "Filter members returned by their role.", - "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/day" } ], "responses": { @@ -26310,154 +26893,214 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "$ref": "#/components/schemas/copilot-usage-metrics-1-day-report" }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/copilot-usage-metrics-1-day-report" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "204": { + "$ref": "#/components/responses/no_content" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "members" + "category": "copilot", + "subcategory": "copilot-usage-metrics" } } }, - "/orgs/{org}/members/{username}": { + "/orgs/{org}/copilot/metrics/reports/users-1-day": { "get": { - "summary": "Check organization membership for a user", - "description": "Check if a user is, publicly or privately, a member of the organization.", + "summary": "Get Copilot organization users usage metrics for a specific day", + "description": "Use this endpoint to retrieve download links for the Copilot organization user usage metrics report for a specific day. The report provides detailed user-level usage data and engagement metrics for Copilot features across the organization.\n\nThe report contains user-specific metrics for the specified day, including individual user engagement statistics, feature usage patterns, and adoption metrics broken down by user. This report allows authorized users to analyze Copilot usage at the user level to understand adoption patterns and identify opportunities for increased engagement.\n\nReports are generated daily and made available for download through signed URLs with a limited expiration time. The response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed.\n\nOrganization owners and authorized users with fine-grained \"View Organization Copilot Metrics\" permission can retrieve Copilot metrics reports for the organization. OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.\n\nFor more information about organization metrics attribution, see [How are metrics attributed across organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations).", "tags": [ - "orgs" + "copilot" ], - "operationId": "orgs/check-membership-for-user", + "operationId": "copilot/copilot-organization-users-one-day-usage-metrics", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/members#check-organization-membership-for-a-user" + "url": "https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-users-usage-metrics-for-a-specific-day" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/day" } ], "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", + "200": { + "description": "Response", + "content": { + "application/json": { "schema": { - "type": "string" + "$ref": "#/components/schemas/copilot-usage-metrics-1-day-report" + }, + "examples": { + "default": { + "$ref": "#/components/examples/copilot-usage-metrics-1-day-report" + } } } } }, + "204": { + "$ref": "#/components/responses/no_content" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "404": { - "description": "Not Found if requester is an organization member and user is not a member" + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "members" + "category": "copilot", + "subcategory": "copilot-usage-metrics" } - }, - "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.\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.", + } + }, + "/orgs/{org}/copilot/metrics/reports/users-28-day/latest": { + "get": { + "summary": "Get Copilot organization users usage metrics", + "description": "Use this endpoint to retrieve download links for the latest 28-day organization users Copilot usage metrics report. The report provides detailed user-level usage data and engagement metrics for Copilot features across the organization.\n\nThe report contains user-specific metrics for the previous 28 days, including individual user engagement statistics, feature usage patterns, and adoption metrics broken down by user. This report allows authorized users to analyze Copilot usage at the user level to understand adoption patterns and identify opportunities for increased engagement.\n\nReports are generated daily and made available for download through signed URLs with a limited expiration time. The response includes download links to the report files, along with the specific date range covered by the report. The report covers a complete 28-day period ending on the most recent day for which data has been processed.\n\nOrganization owners and authorized users with fine-grained \"View Organization Copilot Metrics\" permission can retrieve Copilot metrics reports for the organization. OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.\n\nFor more information about organization metrics attribution, see [How are metrics attributed across organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations).", "tags": [ - "orgs" + "copilot" ], - "operationId": "orgs/remove-member", + "operationId": "copilot/copilot-organization-users-usage-metrics", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/members#remove-an-organization-member" + "url": "https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-users-usage-metrics" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/username" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/copilot-usage-metrics-28-day-report" + }, + "examples": { + "default": { + "$ref": "#/components/examples/copilot-usage-metrics-28-day-report" + } + } + } + } + }, + "500": { + "$ref": "#/components/responses/internal_error" }, "403": { "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "members" - }, - "x-github-breaking-changes": [ - { - "changeset": "change_remove_member_trade_compliance_response_status", - "patch": { - "responses": { - "451": { - "$ref": "#/components/responses/validation_failed" - } - } - }, - "version": "2026-03-10" - } - ] + "category": "copilot", + "subcategory": "copilot-usage-metrics" + } } }, - "/orgs/{org}/members/{username}/codespaces": { + "/orgs/{org}/dependabot/alerts": { "get": { - "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.", + "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": [ - "codespaces" + "dependabot" ], - "operationId": "codespaces/get-codespaces-for-user-in-org", + "operationId": "dependabot/list-alerts-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/organizations#list-codespaces-for-a-user-in-organization" + "url": "https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/dependabot-alert-comma-separated-classifications" }, { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/dependabot-alert-comma-separated-states" }, { - "$ref": "#/components/parameters/username" + "$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-assignees" + }, + { + "$ref": "#/components/parameters/dependabot-alert-comma-separated-runtime-risk" + }, + { + "$ref": "#/components/parameters/dependabot-alert-scope" + }, + { + "$ref": "#/components/parameters/dependabot-alert-relationship" + }, + { + "$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": { @@ -26466,26 +27109,14 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "codespaces" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "codespaces": { - "type": "array", - "items": { - "$ref": "#/components/schemas/codespace" - } - } + "type": "array", + "items": { + "$ref": "#/components/schemas/dependabot-alert-with-repository" } }, "examples": { "default": { - "$ref": "#/components/examples/codespaces-list" + "$ref": "#/components/examples/dependabot-alerts-for-organization" } } } @@ -26494,62 +27125,241 @@ "304": { "$ref": "#/components/responses/not_modified" }, - "500": { - "$ref": "#/components/responses/internal_error" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "400": { + "$ref": "#/components/responses/bad_request" }, "403": { "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "organizations" + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "alerts" } } }, - "/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.", + "/orgs/{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": [ - "codespaces" + "dependabot" ], - "operationId": "codespaces/delete-from-organization", + "operationId": "dependabot/repository-access-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/organizations#delete-a-codespace-from-the-organization" + "url": "https://docs.github.com/rest/dependabot/repository-access#lists-the-repositories-dependabot-can-access-in-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "name": "page", + "in": "query", + "description": "The page number of results to fetch.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "default": 1 + } }, { - "$ref": "#/components/parameters/codespace-name" + "name": "per_page", + "in": "query", + "description": "Number of results per page.", + "required": false, + "schema": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "default": 30 + } } ], "responses": { - "202": { - "$ref": "#/components/responses/accepted" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/dependabot-repository-access-details" + }, + "examples": { + "default": { + "$ref": "#/components/examples/dependabot-repository-access-details" + } + } + } + } }, - "304": { - "$ref": "#/components/responses/not_modified" + "403": { + "$ref": "#/components/responses/forbidden" }, - "500": { - "$ref": "#/components/responses/internal_error" + "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" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "repository-access" + } + } + }, + "/orgs/{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" @@ -26560,33 +27370,33 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "organizations" + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "repository-access" } } }, - "/orgs/{org}/members/{username}/codespaces/{codespace_name}/stop": { - "post": { - "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.", + "/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": [ - "codespaces" + "dependabot" ], - "operationId": "codespaces/stop-in-organization", + "operationId": "dependabot/list-org-secrets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/organizations#stop-a-codespace-for-an-organization-user" + "url": "https://docs.github.com/rest/dependabot/secrets#list-organization-secrets" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/codespace-name" + "$ref": "#/components/parameters/page" } ], "responses": { @@ -26595,118 +27405,105 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/codespace" + "type": "object", + "required": [ + "total_count", + "secrets" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "secrets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-dependabot-secret" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/codespace" + "$ref": "#/components/examples/organization-dependabot-secret-paginated" } } } + }, + "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": false, - "category": "codespaces", - "subcategory": "organizations" + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" } } }, - "/orgs/{org}/members/{username}/copilot": { + "/orgs/{org}/dependabot/secrets/public-key": { "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.", + "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": [ - "copilot" + "dependabot" ], - "operationId": "copilot/get-copilot-seat-details-for-user", + "operationId": "dependabot/get-org-public-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/copilot/copilot-user-management#get-copilot-seat-assignment-details-for-a-user" + "url": "https://docs.github.com/rest/dependabot/secrets#get-an-organization-public-key" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/username" } ], "responses": { "200": { - "description": "The user's GitHub Copilot seat details, including usage.", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/copilot-seat-details" + "$ref": "#/components/schemas/dependabot-public-key" }, "examples": { "default": { - "$ref": "#/components/examples/copilot-seat-detail-active" + "$ref": "#/components/examples/dependabot-public-key" } } } } - }, - "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": "copilot", - "subcategory": "copilot-user-management" + "category": "dependabot", + "subcategory": "secrets" } } }, - "/orgs/{org}/memberships/{username}": { + "/orgs/{org}/dependabot/secrets/{secret_name}": { "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.", + "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": [ - "orgs" + "dependabot" ], - "operationId": "orgs/get-membership-for-user", + "operationId": "dependabot/get-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/members#get-organization-membership-for-a-user" + "url": "https://docs.github.com/rest/dependabot/secrets#get-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/secret-name" } ], "responses": { @@ -26715,72 +27512,97 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/org-membership" + "$ref": "#/components/schemas/organization-dependabot-secret" }, "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" + "default": { + "$ref": "#/components/examples/organization-dependabot-secret" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "members" + "category": "dependabot", + "subcategory": "secrets" } }, "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.", + "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": [ - "orgs" + "dependabot" ], - "operationId": "orgs/set-membership-for-user", + "operationId": "dependabot/create-or-update-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/members#set-organization-membership-for-a-user" + "url": "https://docs.github.com/rest/dependabot/secrets#create-or-update-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/secret-name" } ], "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "role": { + "encrypted_value": { "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.", + "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": [ - "admin", - "member" - ], - "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/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.", + "items": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ] + } } - } + }, + "required": [ + "visibility" + ] }, "examples": { "default": { - "summary": "Set an organization membership role for a user", "value": { - "role": "member" + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678", + "visibility": "selected", + "selected_repository_ids": [ + 1296269, + 1296280 + ] } } } @@ -26788,123 +27610,103 @@ } }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "Response when creating a secret", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/org-membership" + "$ref": "#/components/schemas/empty-object" }, "examples": { - "response-if-user-already-had-membership-with-organization": { - "$ref": "#/components/examples/org-membership-response-if-user-has-an-active-admin-membership-with-organization" + "default": { + "value": null } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "204": { + "description": "Response when updating a secret" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "members" + "category": "dependabot", + "subcategory": "secrets" }, "x-github-breaking-changes": [ { - "changeset": "change_update_user_membership_trade_compliance_response_status", - "patch": { - "responses": { - "451": { - "$ref": "#/components/responses/validation_failed" + "changeset": "remove_string_type_from_repo_id_param", + "patch": [ + { + "op": "replace", + "path": "/requestBody/content/application~1json/schema/properties/selected_repository_ids/items", + "value": { + "type": "integer" } } - }, + ], "version": "2026-03-10" } ] }, "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.", + "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": [ - "orgs" + "dependabot" ], - "operationId": "orgs/remove-membership-for-user", + "operationId": "dependabot/delete-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/members#remove-organization-membership-for-a-user" + "url": "https://docs.github.com/rest/dependabot/secrets#delete-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/secret-name" } ], "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" + "category": "dependabot", + "subcategory": "secrets" } } }, - "/orgs/{org}/migrations": { + "/orgs/{org}/dependabot/secrets/{secret_name}/repositories": { "get": { - "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.", + "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": [ - "migrations" + "dependabot" ], - "operationId": "migrations/list-for-org", + "operationId": "dependabot/list-selected-repos-for-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/migrations/orgs#list-organization-migrations" + "url": "https://docs.github.com/rest/dependabot/secrets#list-selected-repositories-for-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/secret-name" }, { "$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" - } - } + "$ref": "#/components/parameters/per-page" } ], "responses": { @@ -26913,46 +27715,56 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/migration" + "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/migration-with-short-org-items" + "$ref": "#/components/examples/public-repository-paginated" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "migrations", - "subcategory": "orgs" + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" } }, - "post": { - "summary": "Start an organization migration", - "description": "Initiates the generation of a migration archive.", + "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": [ - "migrations" + "dependabot" ], - "operationId": "migrations/start-for-org", + "operationId": "dependabot/set-selected-repos-for-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/migrations/orgs#start-an-organization-migration" + "url": "https://docs.github.com/rest/dependabot/secrets#set-selected-repositories-for-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/secret-name" } ], "requestBody": { @@ -26962,75 +27774,24 @@ "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": { + "selected_repository_ids": { "type": "array", - "description": "Exclude related items from being returned in the response in order to improve performance of the request.", + "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": "string", - "enum": [ - "repositories" - ] + "type": "integer" } } }, "required": [ - "repositories" + "selected_repository_ids" ] }, "examples": { "default": { "value": { - "repositories": [ - "github/Hello-World" - ], - "lock_repositories": true + "selected_repository_ids": [ + 64780797 + ] } } } @@ -27038,228 +27799,222 @@ } }, "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/migration" - }, - "examples": { - "default": { - "$ref": "#/components/examples/migration-with-short-org-2" - } - } - } - } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "migrations", - "subcategory": "orgs" + "enabledForGitHubApps": true, + "category": "dependabot", + "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.", + "/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": [ - "migrations" + "dependabot" ], - "operationId": "migrations/get-status-for-org", + "operationId": "dependabot/add-selected-repo-to-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/migrations/orgs#get-an-organization-migration-status" + "url": "https://docs.github.com/rest/dependabot/secrets#add-selected-repository-to-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/migration-id" + "$ref": "#/components/parameters/secret-name" }, { - "name": "exclude", - "description": "Exclude attributes from the API response to improve performance", - "in": "query", + "name": "repository_id", + "in": "path", + "required": true, "schema": { - "type": "array", - "items": { - "description": "Allowed values that can be passed to the exclude param.", - "enum": [ - "repositories" - ], - "example": "repositories", - "type": "string" - } + "type": "integer" } } ], "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" - } - } - } - } + "204": { + "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, - "category": "migrations", - "subcategory": "orgs" + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" } - } - }, - "/orgs/{org}/migrations/{migration_id}/archive": { - "get": { - "summary": "Download an organization migration archive", - "description": "Fetches the URL to a migration archive.", + }, + "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": [ - "migrations" + "dependabot" ], - "operationId": "migrations/download-archive-for-org", + "operationId": "dependabot/remove-selected-repo-from-org-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/migrations/orgs#download-an-organization-migration-archive" + "url": "https://docs.github.com/rest/dependabot/secrets#remove-selected-repository-from-an-organization-secret" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/migration-id" + "$ref": "#/components/parameters/secret-name" + }, + { + "name": "repository_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { - "302": { - "description": "Response" + "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, - "category": "migrations", - "subcategory": "orgs" + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" } - }, - "delete": { - "summary": "Delete an organization migration archive", - "description": "Deletes a previous migration archive. Migration archives are automatically deleted after seven days.", + } + }, + "/orgs/{org}/docker/conflicts": { + "get": { + "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": [ - "migrations" + "packages" ], - "operationId": "migrations/delete-archive-for-org", + "operationId": "packages/list-docker-migration-conflicting-packages-for-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/migrations/orgs#delete-an-organization-migration-archive" + "url": "https://docs.github.com/rest/packages/packages#get-list-of-conflicting-packages-during-docker-migration-for-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/migration-id" } ], "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" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "category": "migrations", - "subcategory": "orgs" + "category": "packages", + "subcategory": "packages" } } }, - "/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/repos/repos#delete-a-repository) when the migration is complete and you no longer need the source data.", + "/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": [ - "migrations" + "activity" ], - "operationId": "migrations/unlock-repo-for-org", + "operationId": "activity/list-public-org-events", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/migrations/orgs#unlock-an-organization-repository" + "url": "https://docs.github.com/rest/activity/events#list-public-organization-events" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/migration-id" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/repo-name" + "$ref": "#/components/parameters/page" } ], "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/event" + } + }, + "examples": { + "200-response": { + "$ref": "#/components/examples/public-org-events-items" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "migrations", - "subcategory": "orgs" + "enabledForGitHubApps": true, + "category": "activity", + "subcategory": "events" } } }, - "/orgs/{org}/migrations/{migration_id}/repositories": { + "/orgs/{org}/failed_invitations": { "get": { - "summary": "List repositories in an organization migration", - "description": "List all the repositories for this organization migration.", + "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": [ - "migrations" + "orgs" ], - "operationId": "migrations/list-repos-for-org", + "operationId": "orgs/list-failed-invitations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/migrations/orgs#list-repositories-in-an-organization-migration" + "url": "https://docs.github.com/rest/orgs/members#list-failed-organization-invitations" }, "parameters": [ { "$ref": "#/components/parameters/org" }, - { - "$ref": "#/components/parameters/migration-id" - }, { "$ref": "#/components/parameters/per-page" }, @@ -27275,12 +28030,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/minimal-repository" + "$ref": "#/components/schemas/organization-invitation" } }, "examples": { "default": { - "$ref": "#/components/examples/minimal-repository-items" + "$ref": "#/components/examples/organization-invitation-items" } } } @@ -27297,345 +28052,548 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "migrations", - "subcategory": "orgs" - }, - "x-github-breaking-changes": [ - { - "changeset": "restrict_repo_fields_in_migration_resource", - "patch": { - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/simple-repository" - } - } - } - } - } - } - }, - "version": "2026-03-10" - }, - { - "changeset": "restrict_repo_fields_in_migration_resource", - "patch": { - "responses": { - "200": { - "content": { - "application/json": { - "examples": null - } - } - } - } - }, - "version": "2026-03-10" - } - ] + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "members" + } } }, - "/orgs/{org}/organization-roles": { + "/orgs/{org}/hooks": { "get": { - "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- An organization member (or a member of a team) assigned a custom organization role that includes the **View organization roles** (`read_organization_custom_org_role`) permission. For more information, see \"[Permissions for organization access](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/permissions-of-custom-organization-roles#permissions-for-organization-access).\"\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "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": [ "orgs" ], - "operationId": "orgs/list-org-roles", + "operationId": "orgs/list-webhooks", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/organization-roles#get-all-organization-roles-for-an-organization" + "url": "https://docs.github.com/rest/orgs/webhooks#list-organization-webhooks" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { "200": { - "description": "Response - list of organization roles", + "description": "Response", "content": { "application/json": { "schema": { - "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" - } - } + "type": "array", + "items": { + "$ref": "#/components/schemas/org-hook" } }, "examples": { "default": { - "$ref": "#/components/examples/organization-role-list" + "$ref": "#/components/examples/org-hook-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, "404": { "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "organization-roles" + "subcategory": "webhooks" } - } - }, - "/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.", + }, + "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": [ "orgs" ], - "operationId": "orgs/revoke-all-org-roles-team", + "operationId": "orgs/create-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/organization-roles#remove-all-organization-roles-for-a-team" + "url": "https://docs.github.com/rest/orgs/webhooks#create-an-organization-webhook" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/team-slug" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "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" + ], + "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": [ + "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" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/org-hook" + }, + "examples": { + "default": { + "$ref": "#/components/examples/org-hook" + } + } + } + }, + "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, "category": "orgs", - "subcategory": "organization-roles" + "subcategory": "webhooks" } } }, - "/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.", + "/orgs/{org}/hooks/{hook_id}": { + "get": { + "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": [ "orgs" ], - "operationId": "orgs/assign-team-to-org-role", + "operationId": "orgs/get-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/organization-roles#assign-an-organization-role-to-a-team" + "url": "https://docs.github.com/rest/orgs/webhooks#get-an-organization-webhook" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/role-id" + "$ref": "#/components/parameters/hook-id" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/org-hook" + }, + "examples": { + "default": { + "$ref": "#/components/examples/org-hook" + } + } + } + } }, "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." + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "organization-roles" + "subcategory": "webhooks" } }, - "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.", + "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": [ "orgs" ], - "operationId": "orgs/revoke-org-role-team", + "operationId": "orgs/update-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/organization-roles#remove-an-organization-role-from-a-team" + "url": "https://docs.github.com/rest/orgs/webhooks#update-an-organization-webhook" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/role-id" + "$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": { + "type": "string", + "example": "\"web\"" + } + } + }, + "examples": { + "default": { + "value": { + "active": true, + "events": [ + "pull_request" + ] + } + } + } + } + } + }, "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/org-hook" + }, + "examples": { + "default": { + "$ref": "#/components/examples/org-hook-2" + } + } + } + } + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "organization-roles" + "subcategory": "webhooks" } - } - }, - "/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.", + "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": [ "orgs" ], - "operationId": "orgs/revoke-all-org-roles-user", + "operationId": "orgs/delete-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/organization-roles#remove-all-organization-roles-for-a-user" + "url": "https://docs.github.com/rest/orgs/webhooks#delete-an-organization-webhook" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/hook-id" } ], "responses": { "204": { "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "organization-roles" + "subcategory": "webhooks" } } }, - "/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.", + "/orgs/{org}/hooks/{hook_id}/config": { + "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/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": [ "orgs" ], - "operationId": "orgs/assign-user-to-org-role", + "operationId": "orgs/get-webhook-config-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/organization-roles#assign-an-organization-role-to-a-user" + "url": "https://docs.github.com/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" - }, - { - "$ref": "#/components/parameters/role-id" + "$ref": "#/components/parameters/hook-id" } ], "responses": { - "204": { - "description": "Response" - }, - "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." + "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, "category": "orgs", - "subcategory": "organization-roles" + "subcategory": "webhooks" } }, - "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.", + "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/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": [ "orgs" ], - "operationId": "orgs/revoke-org-role-user", + "operationId": "orgs/update-webhook-config-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/organization-roles#remove-an-organization-role-from-a-user" + "url": "https://docs.github.com/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" - }, - { - "$ref": "#/components/parameters/role-id" + "$ref": "#/components/parameters/hook-id" } ], + "requestBody": { + "required": false, + "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" + } + } + }, + "examples": { + "default": { + "summary": "Update an existing webhook", + "value": { + "url": "http://example.com/webhook", + "content_type": "json", + "insecure_ssl": "0", + "secret": "********" + } + } + } + } + } + }, "responses": { - "204": { - "description": "Response" + "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, "category": "orgs", - "subcategory": "organization-roles" + "subcategory": "webhooks" } } }, - "/orgs/{org}/organization-roles/{role_id}": { + "/orgs/{org}/hooks/{hook_id}/deliveries": { "get": { - "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- An organization member (or a member of a team) assigned a custom organization role that includes the **View organization roles** (`read_organization_custom_org_role`) permission. For more information, see \"[Permissions for organization access](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/permissions-of-custom-organization-roles#permissions-for-organization-access).\"\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "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": [ "orgs" ], - "operationId": "orgs/get-org-role", + "operationId": "orgs/list-webhook-deliveries", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/organization-roles#get-an-organization-role" + "url": "https://docs.github.com/rest/orgs/webhooks#list-deliveries-for-an-organization-webhook" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/role-id" + "$ref": "#/components/parameters/hook-id" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/cursor" + }, + { + "$ref": "#/components/parameters/webhook-delivery-status" } ], "responses": { @@ -27644,18 +28602,21 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/organization-role" + "type": "array", + "items": { + "$ref": "#/components/schemas/hook-delivery-item" + } }, "examples": { "default": { - "$ref": "#/components/examples/organization-role" + "$ref": "#/components/examples/hook-delivery-items" } } } } }, - "404": { - "$ref": "#/components/responses/not_found" + "400": { + "$ref": "#/components/responses/bad_request" }, "422": { "$ref": "#/components/responses/validation_failed" @@ -27665,178 +28626,184 @@ "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "organization-roles" + "subcategory": "webhooks" } } }, - "/orgs/{org}/organization-roles/{role_id}/teams": { + "/orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}": { "get": { - "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.", + "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": [ "orgs" ], - "operationId": "orgs/list-org-role-teams", + "operationId": "orgs/get-webhook-delivery", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/organization-roles#list-teams-that-are-assigned-to-an-organization-role" + "url": "https://docs.github.com/rest/orgs/webhooks#get-a-webhook-delivery-for-an-organization-webhook" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/role-id" - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/hook-id" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/delivery-id" } ], "responses": { "200": { - "description": "Response - List of assigned teams", + "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "description": "List of teams assigned to the organization role", - "items": { - "$ref": "#/components/schemas/team-role-assignment" - } + "$ref": "#/components/schemas/hook-delivery" }, "examples": { "default": { - "$ref": "#/components/examples/team-items" + "$ref": "#/components/examples/hook-delivery" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "404": { - "description": "Response if the organization or role does not exist." + "400": { + "$ref": "#/components/responses/bad_request" }, "422": { - "description": "Response if the organization roles feature is not enabled or validation failed." + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "organization-roles" + "subcategory": "webhooks" } } }, - "/orgs/{org}/organization-roles/{role_id}/users": { - "get": { - "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.", + "/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": [ "orgs" ], - "operationId": "orgs/list-org-role-users", + "operationId": "orgs/redeliver-webhook-delivery", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/organization-roles#list-users-that-are-assigned-to-an-organization-role" + "url": "https://docs.github.com/rest/orgs/webhooks#redeliver-a-delivery-for-an-organization-webhook" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/role-id" + "$ref": "#/components/parameters/hook-id" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/delivery-id" + } + ], + "responses": { + "202": { + "$ref": "#/components/responses/accepted" + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "webhooks" + } + } + }, + "/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": [ + "orgs" + ], + "operationId": "orgs/ping-webhook", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/webhooks#ping-an-organization-webhook" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/hook-id" } ], "responses": { - "200": { - "description": "Response - List of assigned users", - "content": { - "application/json": { - "schema": { - "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" - } - } + "204": { + "description": "Response" }, "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." + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "organization-roles" + "subcategory": "webhooks" } } }, - "/orgs/{org}/outside_collaborators": { + "/orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}": { "get": { - "summary": "List outside collaborators for an organization", - "description": "List all users who are outside collaborators of an organization.", + "summary": "Get route stats by actor", + "description": "Get API request count statistics for an actor broken down by route within a specified time frame.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], - "operationId": "orgs/list-outside-collaborators", + "operationId": "api-insights/get-route-stats-by-actor", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/outside-collaborators#list-outside-collaborators-for-an-organization" + "url": "https://docs.github.com/rest/orgs/api-insights#get-route-stats-by-actor" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "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/api-insights-actor-type" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/api-insights-actor-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-route-stats-sort" + }, + { + "$ref": "#/components/parameters/api-insights-api-route-substring" } ], "responses": { @@ -27845,161 +28812,120 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "$ref": "#/components/schemas/api-insights-route-stats" }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/api-insights-route-stats" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "outside-collaborators" + "subcategory": "api-insights" } } }, - "/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).\"", + "/orgs/{org}/insights/api/subject-stats": { + "get": { + "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.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], - "operationId": "orgs/convert-member-to-outside-collaborator", + "operationId": "api-insights/get-subject-stats", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/outside-collaborators#convert-an-organization-member-to-outside-collaborator" + "url": "https://docs.github.com/rest/orgs/api-insights#get-subject-stats" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "$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-subject-name-substring" } ], - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "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 - } - } - }, - "examples": { - "202": { - "summary": "Status code 202, asynchronous request", - "value": { - "async": true - } - }, - "204": { - "summary": "Status code 204, synchronous request", - "value": null - } - } - } - } - }, "responses": { - "202": { - "description": "User is getting converted asynchronously", + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "type": "object", - "properties": {}, - "additionalProperties": false + "$ref": "#/components/schemas/api-insights-subject-stats" }, "examples": { - "202": { - "value": null + "default": { + "$ref": "#/components/examples/api-insights-subject-stats" } } } } - }, - "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, "category": "orgs", - "subcategory": "outside-collaborators" + "subcategory": "api-insights" } - }, - "delete": { - "summary": "Remove outside collaborator from an organization", - "description": "Removing a user from this list will remove them from all the organization's repositories.", + } + }, + "/orgs/{org}/insights/api/summary-stats": { + "get": { + "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.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ "orgs" ], - "operationId": "orgs/remove-outside-collaborator", + "operationId": "api-insights/get-summary-stats", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/outside-collaborators#remove-outside-collaborator-from-an-organization" + "url": "https://docs.github.com/rest/orgs/api-insights#get-summary-stats" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/api-insights-min-timestamp" + }, + { + "$ref": "#/components/parameters/api-insights-max-timestamp" } ], "responses": { - "204": { - "description": "Response" - }, - "422": { - "description": "Unprocessable Entity if user is a member of the organization", + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "documentation_url": { - "type": "string" - } - } + "$ref": "#/components/schemas/api-insights-summary-stats" }, "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/orgs/outside-collaborators#remove-outside-collaborator-from-an-organization" - } + "default": { + "$ref": "#/components/examples/api-insights-summary-stats" } } } @@ -28007,66 +28933,36 @@ } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "outside-collaborators" + "subcategory": "api-insights" } } }, - "/orgs/{org}/packages": { + "/orgs/{org}/insights/api/summary-stats/users/{user_id}": { "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).\"", + "summary": "Get summary stats by user", + "description": "Get overall statistics of API requests within the organization for a user.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ - "packages" + "orgs" ], - "operationId": "packages/list-packages-for-organization", + "operationId": "api-insights/get-summary-stats-by-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#list-packages-for-an-organization" + "url": "https://docs.github.com/rest/orgs/api-insights#get-summary-stats-by-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" - ] - } - }, { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/package-visibility" + "$ref": "#/components/parameters/api-insights-user-id" }, { - "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 - } + "$ref": "#/components/parameters/api-insights-min-timestamp" }, { - "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 - } + "$ref": "#/components/parameters/api-insights-max-timestamp" } ], "responses": { @@ -28075,58 +28971,51 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/package" - } + "$ref": "#/components/schemas/api-insights-summary-stats" }, "examples": { "default": { - "$ref": "#/components/examples/packages-for-org" + "$ref": "#/components/examples/api-insights-summary-stats" } } } } - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "400": { - "$ref": "#/components/responses/package_es_list_error" } }, "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "api-insights" } } }, - "/orgs/{org}/packages/{package_type}/{package_name}": { + "/orgs/{org}/insights/api/summary-stats/{actor_type}/{actor_id}": { "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).\"", + "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.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ - "packages" + "orgs" ], - "operationId": "packages/get-package-for-organization", + "operationId": "api-insights/get-summary-stats-by-actor", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#get-a-package-for-an-organization" + "url": "https://docs.github.com/rest/orgs/api-insights#get-summary-stats-by-actor" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/package-name" + "$ref": "#/components/parameters/api-insights-min-timestamp" }, { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/api-insights-max-timestamp" + }, + { + "$ref": "#/components/parameters/api-insights-actor-type" + }, + { + "$ref": "#/components/parameters/api-insights-actor-id" } ], "responses": { @@ -28135,11 +29024,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/package" + "$ref": "#/components/schemas/api-insights-summary-stats" }, "examples": { "default": { - "$ref": "#/components/examples/package-org" + "$ref": "#/components/examples/api-insights-summary-stats" } } } @@ -28147,151 +29036,145 @@ } }, "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "api-insights" } - }, - "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\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).\"", + } + }, + "/orgs/{org}/insights/api/time-stats": { + "get": { + "summary": "Get time stats", + "description": "Get the number of API requests and rate-limited requests made within an organization over a specified time period.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ - "packages" + "orgs" ], - "operationId": "packages/delete-package-for-org", + "operationId": "api-insights/get-time-stats", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#delete-a-package-for-an-organization" + "url": "https://docs.github.com/rest/orgs/api-insights#get-time-stats" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/package-name" + "$ref": "#/components/parameters/api-insights-min-timestamp" }, { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/api-insights-max-timestamp" + }, + { + "$ref": "#/components/parameters/api-insights-timestamp-increment" } ], "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - } + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/api-insights-time-stats" + }, + "examples": { + "default": { + "$ref": "#/components/examples/api-insights-time-stats" + } + } + } + } + } }, "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "api-insights" } } }, - "/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).\"", + "/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.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ - "packages" + "orgs" ], - "operationId": "packages/restore-package-for-org", + "operationId": "api-insights/get-time-stats-by-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#restore-a-package-for-an-organization" + "url": "https://docs.github.com/rest/orgs/api-insights#get-time-stats-by-user" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/package-name" + "$ref": "#/components/parameters/api-insights-user-id" }, { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/api-insights-min-timestamp" }, { - "name": "token", - "description": "package token", - "schema": { - "type": "string" - }, - "required": false, - "in": "query" + "$ref": "#/components/parameters/api-insights-max-timestamp" + }, + { + "$ref": "#/components/parameters/api-insights-timestamp-increment" } ], "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/api-insights-time-stats" + }, + "examples": { + "default": { + "$ref": "#/components/examples/api-insights-time-stats" + } + } + } + } } }, "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "api-insights" } } }, - "/orgs/{org}/packages/{package_type}/{package_name}/versions": { + "/orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id}": { "get": { - "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).\"", + "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.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ - "packages" + "orgs" ], - "operationId": "packages/get-all-package-versions-for-package-owned-by-org", + "operationId": "api-insights/get-time-stats-by-actor", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-an-organization" + "url": "https://docs.github.com/rest/orgs/api-insights#get-time-stats-by-actor" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/package-name" + "$ref": "#/components/parameters/api-insights-actor-type" }, { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/api-insights-actor-id" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/api-insights-min-timestamp" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/api-insights-max-timestamp" }, { - "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/api-insights-timestamp-increment" } ], "responses": { @@ -28300,61 +29183,63 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/package-version" - } + "$ref": "#/components/schemas/api-insights-time-stats" }, "examples": { "default": { - "$ref": "#/components/examples/package-versions-for-org" + "$ref": "#/components/examples/api-insights-time-stats" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" } }, "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "api-insights" } } }, - "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}": { + "/orgs/{org}/insights/api/user-stats/{user_id}": { "get": { - "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).\"", + "summary": "Get user stats", + "description": "Get API usage statistics within an organization for a user broken down by the type of access.\n\nUnder normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up.", "tags": [ - "packages" + "orgs" ], - "operationId": "packages/get-package-version-for-organization", + "operationId": "api-insights/get-user-stats", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#get-a-package-version-for-an-organization" + "url": "https://docs.github.com/rest/orgs/api-insights#get-user-stats" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/package-name" + "$ref": "#/components/parameters/api-insights-user-id" }, { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/api-insights-min-timestamp" }, { - "$ref": "#/components/parameters/package-version-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-actor-name-substring" } ], "responses": { @@ -28363,11 +29248,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/package-version" + "$ref": "#/components/schemas/api-insights-user-stats" }, "examples": { "default": { - "$ref": "#/components/examples/package-version-org" + "$ref": "#/components/examples/api-insights-user-stats" } } } @@ -28375,208 +29260,182 @@ } }, "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "api-insights" } - }, - "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).\"", + } + }, + "/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": [ - "packages" + "apps" ], - "operationId": "packages/delete-package-version-for-org", + "operationId": "apps/get-org-installation", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#delete-package-version-for-an-organization" + "url": "https://docs.github.com/rest/apps/apps#get-an-organization-installation-for-the-authenticated-app" }, "parameters": [ - { - "$ref": "#/components/parameters/package-type" - }, - { - "$ref": "#/components/parameters/package-name" - }, { "$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" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/installation" + }, + "examples": { + "default": { + "$ref": "#/components/examples/installation" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "category": "apps", + "subcategory": "apps" } } }, - "/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).\"", + "/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": [ - "packages" + "orgs" ], - "operationId": "packages/restore-package-version-for-org", + "operationId": "orgs/list-app-installations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#restore-package-version-for-an-organization" + "url": "https://docs.github.com/rest/orgs/orgs#list-app-installations-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" - }, - { - "$ref": "#/components/parameters/package-name" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/package-version-id" + "$ref": "#/components/parameters/page" } ], "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "200": { + "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" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/installation-paginated" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "orgs" } } }, - "/orgs/{org}/personal-access-token-requests": { + "/orgs/{org}/interaction-limits": { "get": { - "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.", + "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": [ - "orgs" + "interactions" ], - "operationId": "orgs/list-pat-grant-requests", + "operationId": "interactions/get-restrictions-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/personal-access-tokens#list-requests-to-access-organization-resources-with-fine-grained-personal-access-tokens" + "url": "https://docs.github.com/rest/interactions/orgs#get-interaction-restrictions-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$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": { - "type": "array", - "items": { - "$ref": "#/components/schemas/organization-programmatic-access-grant-request" - } + "anyOf": [ + { + "$ref": "#/components/schemas/interaction-limit-response" + }, + { + "type": "object", + "properties": {}, + "additionalProperties": false + } + ] }, "examples": { "default": { - "$ref": "#/components/examples/org-pat-grant-request-paginated" + "$ref": "#/components/examples/interaction-limit-response" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "personal-access-tokens" + "category": "interactions", + "subcategory": "orgs" } }, - "post": { - "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.", + "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": [ - "orgs" + "interactions" ], - "operationId": "orgs/review-pat-grant-requests-in-bulk", + "operationId": "interactions/set-restrictions-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/personal-access-tokens#review-requests-to-access-organization-resources-with-fine-grained-personal-access-tokens" + "url": "https://docs.github.com/rest/interactions/orgs#set-interaction-restrictions-for-an-organization" }, "parameters": [ { @@ -28588,46 +29447,13 @@ "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" - ] + "$ref": "#/components/schemas/interaction-limit" }, "examples": { - "204": { - "summary": "Example of denying a request", + "default": { "value": { - "pat_request_ids": [ - 42, - 73 - ], - "action": "deny", - "reason": "Access is too broad." + "limit": "collaborators_only", + "expiry": "one_month" } } } @@ -28635,204 +29461,263 @@ } }, "responses": { - "500": { - "$ref": "#/components/responses/internal_error" + "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" - }, - "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" + "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/org" + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "interactions", + "subcategory": "orgs" } } }, - "/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.", + "/orgs/{org}/interaction-limits/pulls/creation-cap": { + "get": { + "summary": "Get pull request creation cap for an org", + "description": "Gets the pull request creation cap configuration for an organization.\nThe cap limits the total number of open pull requests a user can have across all public\nrepositories in the organization at one time.\n\nOnly users with admin access to the organization can view the cap configuration.", "tags": [ - "orgs" + "interactions" ], - "operationId": "orgs/review-pat-grant-request", + "operationId": "interactions/get-pull-request-creation-cap-for-org", "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" + "url": "https://docs.github.com/rest/interactions/orgs#get-pull-request-creation-cap-for-an-org" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "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" - } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "action": { - "type": "string", - "description": "Action to apply to the request.", - "enum": [ - "approve", - "deny" - ] + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether the pull request creation cap is enabled" + }, + "max_open_pull_requests": { + "type": "integer", + "description": "The maximum number of open pull requests a user can have at one time", + "minimum": 1, + "maximum": 1000 + } }, - "reason": { - "type": "string", - "description": "Reason for approving or denying the request. Max 1024 characters.", - "maxLength": 1024, - "nullable": true - } + "required": [ + "enabled", + "max_open_pull_requests" + ] }, - "required": [ - "action" - ] - }, - "examples": { - "204": { - "summary": "Example of denying a request", - "value": { - "action": "deny", - "reason": "This request is denied because the access is too broad." + "examples": { + "default": { + "summary": "Response when cap is enabled", + "value": { + "enabled": true, + "max_open_pull_requests": 1 + } } } } } - } - }, - "responses": { - "500": { - "$ref": "#/components/responses/internal_error" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "403": { + "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "204": { - "$ref": "#/components/responses/no_content" + "405": { + "description": "Method Not Allowed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "personal-access-tokens" + "category": "interactions", + "subcategory": "orgs" } - } - }, - "/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.", + }, + "patch": { + "summary": "Update pull request creation cap for an org", + "description": "Updates the pull request creation cap for an organization. The cap limits the total number\nof open pull requests a user can have across all public repositories in the organization\nat one time.\n\nOnly users with admin access to the organization can configure the cap.", "tags": [ - "orgs" + "interactions" ], - "operationId": "orgs/list-pat-grant-request-repositories", + "operationId": "interactions/update-pull-request-creation-cap-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/personal-access-tokens#list-repositories-requested-to-be-accessed-by-a-fine-grained-personal-access-token" + "url": "https://docs.github.com/rest/interactions/orgs#update-pull-request-creation-cap-for-an-org" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "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/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether the pull request creation cap is enabled" + }, + "max_open_pull_requests": { + "type": "integer", + "description": "The maximum number of open pull requests a user can have at one time", + "minimum": 1, + "maximum": 1000 + } + }, + "required": [ + "enabled" + ] + }, + "examples": { + "default": { + "summary": "Example request body", + "value": { + "enabled": true, + "max_open_pull_requests": 1 + } + } + } + } + } + }, "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": { - "type": "array", - "items": { - "$ref": "#/components/schemas/minimal-repository" - } + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether the pull request creation cap is enabled" + }, + "max_open_pull_requests": { + "type": "integer", + "description": "The maximum number of open pull requests a user can have at one time", + "minimum": 1, + "maximum": 1000 + } + }, + "required": [ + "enabled", + "max_open_pull_requests" + ] }, "examples": { "default": { - "$ref": "#/components/examples/minimal-repository-items" + "summary": "Response", + "value": { + "enabled": true, + "max_open_pull_requests": 1 + } } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" + } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "405": { + "description": "Method Not Allowed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } } } + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "personal-access-tokens" + "category": "interactions", + "subcategory": "orgs" } } }, - "/orgs/{org}/personal-access-tokens": { + "/orgs/{org}/invitations": { "get": { - "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.", + "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": [ "orgs" ], - "operationId": "orgs/list-pat-grants", + "operationId": "orgs/list-pending-invitations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/personal-access-tokens#list-fine-grained-personal-access-tokens-with-access-to-organization-resources" + "url": "https://docs.github.com/rest/orgs/members#list-pending-organization-invitations" }, "parameters": [ { @@ -28845,43 +29730,39 @@ "$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" + "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" + } }, { - "$ref": "#/components/parameters/personal-access-token-token-id" + "name": "invitation_source", + "description": "Filter invitations by their invitation source.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "all", + "member", + "scim" + ], + "default": "all" + } } ], "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": { @@ -28889,12 +29770,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/organization-programmatic-access-grant" + "$ref": "#/components/schemas/organization-invitation" } }, "examples": { "default": { - "$ref": "#/components/examples/org-pat-grant-paginated" + "$ref": "#/components/examples/organization-invitation-items" } } } @@ -28904,25 +29785,28 @@ "$ref": "#/components/headers/link" } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "personal-access-tokens" + "subcategory": "members" } }, "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.", + "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": [ "orgs" ], - "operationId": "orgs/update-pat-accesses", + "operationId": "orgs/create-invitation", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/personal-access-tokens#update-the-access-to-organization-resources-via-fine-grained-personal-access-tokens" + "url": "https://docs.github.com/rest/orgs/members#create-an-organization-invitation" }, "parameters": [ { @@ -28930,43 +29814,48 @@ } ], "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { - "action": { + "invitee_id": { + "type": "integer", + "description": "**Required unless you provide `email`**. GitHub user ID for the person you are inviting." + }, + "email": { "type": "string", - "description": "Action to apply to the fine-grained personal access token.", + "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": [ - "revoke" - ] + "admin", + "direct_member", + "billing_manager", + "reinstate" + ], + "default": "direct_member" }, - "pat_ids": { - "description": "The IDs of the fine-grained personal access tokens.", + "team_ids": { "type": "array", + "description": "Specify IDs for the teams you want to invite new members to.", "items": { - "type": "integer", - "description": "Unique identifier of the fine-grained personal access token." - }, - "minItems": 1, - "maxItems": 100 + "type": "integer" + } } - }, - "required": [ - "action", - "pat_ids" - ] + } }, "examples": { - "204": { - "summary": "Example of revoking a fine-grained personal access token.", + "default": { "value": { - "action": "revoke", - "pat_ids": [ - 1296269, - 1296280 + "email": "octocat@github.com", + "role": "direct_member", + "team_ids": [ + 12, + 26 ] } } @@ -28975,129 +29864,95 @@ } }, "responses": { - "500": { - "$ref": "#/components/responses/internal_error" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "202": { - "$ref": "#/components/responses/accepted" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/organization-invitation" + }, + "examples": { + "default": { + "$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, "category": "orgs", - "subcategory": "personal-access-tokens" + "subcategory": "members" } } }, - "/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.", + "/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/github/managing-subscriptions-and-notifications-on-github/about-notifications).", "tags": [ "orgs" ], - "operationId": "orgs/update-pat-access", + "operationId": "orgs/cancel-invitation", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/personal-access-tokens#update-the-access-a-fine-grained-personal-access-token-has-to-organization-resources" + "url": "https://docs.github.com/rest/orgs/members#cancel-an-organization-invitation" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/fine-grained-personal-access-token-id" + "$ref": "#/components/parameters/invitation-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": { - "500": { - "$ref": "#/components/responses/internal_error" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, "204": { - "$ref": "#/components/responses/no_content" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "description": "Response" }, "422": { "$ref": "#/components/responses/validation_failed" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { + "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "personal-access-tokens" + "subcategory": "members" } } }, - "/orgs/{org}/personal-access-tokens/{pat_id}/repositories": { + "/orgs/{org}/invitations/{invitation_id}/teams": { "get": { - "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.", + "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": [ "orgs" ], - "operationId": "orgs/list-pat-grant-repositories", + "operationId": "orgs/list-invitation-teams", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/personal-access-tokens#list-repositories-a-fine-grained-personal-access-token-has-access-to" + "url": "https://docs.github.com/rest/orgs/members#list-organization-invitation-teams" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "name": "pat_id", - "in": "path", - "description": "Unique identifier of the fine-grained personal access token.", - "required": true, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/invitation-id" }, { "$ref": "#/components/parameters/per-page" @@ -29107,15 +29962,6 @@ } ], "responses": { - "500": { - "$ref": "#/components/responses/internal_error" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, "200": { "description": "Response", "content": { @@ -29123,12 +29969,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/minimal-repository" + "$ref": "#/components/schemas/team" } }, "examples": { "default": { - "$ref": "#/components/examples/minimal-repository-items" + "$ref": "#/components/examples/team-items" } } } @@ -29138,37 +29984,34 @@ "$ref": "#/components/headers/link" } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "personal-access-tokens" + "subcategory": "members" } } }, - "/orgs/{org}/private-registries": { + "/orgs/{org}/issue-fields": { "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.", + "summary": "List issue fields for an organization", + "description": "Lists all issue fields for an organization. OAuth app tokens and personal access tokens (classic) need the read:org scope to use this endpoint.", "tags": [ - "private-registries" + "orgs" ], - "operationId": "private-registries/list-org-private-registries", + "operationId": "orgs/list-issue-fields", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/private-registries/organization-configurations#list-private-registries-for-an-organization" + "url": "https://docs.github.com/rest/orgs/issue-fields#list-issue-fields-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -29177,39 +30020,19 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "configurations" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "configurations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/org-private-registry-configuration" - } - } + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-field" } }, "examples": { "default": { - "$ref": "#/components/examples/org-private-registry-configurations-paginated" + "$ref": "#/components/examples/issue-field-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "400": { - "$ref": "#/components/responses/bad_request" - }, "404": { "$ref": "#/components/responses/not_found" } @@ -29217,20 +30040,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "private-registries", - "subcategory": "organization-configurations" + "category": "orgs", + "subcategory": "issue-fields" } }, "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).\"\nFor OIDC-based registries (`oidc_azure`, `oidc_aws`, or `oidc_jfrog`), the `encrypted_value` and `key_id` fields should be omitted.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", + "summary": "Create issue field for an organization", + "description": "Creates a new issue field for an organization.\n\nYou can find out more about issue fields in [Managing issue fields in an organization](https://docs.github.com/issues/tracking-your-work-with-issues/using-issues/managing-issue-fields-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": [ - "private-registries" + "orgs" ], - "operationId": "private-registries/create-org-private-registry", + "operationId": "orgs/create-issue-field", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/private-registries/organization-configurations#create-a-private-registry-for-an-organization" + "url": "https://docs.github.com/rest/orgs/issue-fields#create-issue-field-for-an-organization" }, "parameters": [ { @@ -29242,164 +30065,137 @@ "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. Required when `auth_type` is `token` or `username_password`. Should be omitted for OIDC auth types.", - "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. Required when `auth_type` is `token` or `username_password`. Should be omitted for OIDC auth types.", - "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" - } - }, - "auth_type": { - "description": "The authentication type for the private registry. Defaults to `token` if not specified. Use `oidc_azure`, `oidc_aws`, or `oidc_jfrog` for OIDC authentication.", - "type": "string", - "enum": [ - "token", - "username_password", - "oidc_azure", - "oidc_aws", - "oidc_jfrog" + "$ref": "#/components/schemas/organization-create-issue-field" + }, + "examples": { + "default": { + "value": { + "name": "Priority", + "description": "Level of importance for the issue", + "data_type": "single_select", + "options": [ + { + "name": "High", + "description": "High priority", + "color": "red" + }, + { + "name": "Medium", + "description": "Medium priority", + "color": "yellow" + }, + { + "name": "Low", + "description": "Low priority", + "color": "green" + } ] - }, - "tenant_id": { - "description": "The tenant ID of the Azure AD application. Required when `auth_type` is `oidc_azure`.", - "type": "string" - }, - "client_id": { - "description": "The client ID of the Azure AD application. Required when `auth_type` is `oidc_azure`.", - "type": "string" - }, - "aws_region": { - "description": "The AWS region. Required when `auth_type` is `oidc_aws`.", - "type": "string" - }, - "account_id": { - "description": "The AWS account ID. Required when `auth_type` is `oidc_aws`.", - "type": "string" - }, - "role_name": { - "description": "The AWS IAM role name. Required when `auth_type` is `oidc_aws`.", - "type": "string" - }, - "domain": { - "description": "The CodeArtifact domain. Required when `auth_type` is `oidc_aws`.", - "type": "string" - }, - "domain_owner": { - "description": "The CodeArtifact domain owner (AWS account ID). Required when `auth_type` is `oidc_aws`.", - "type": "string" - }, - "jfrog_oidc_provider_name": { - "description": "The JFrog OIDC provider name. Required when `auth_type` is `oidc_jfrog`.", - "type": "string" - }, - "audience": { - "description": "The OIDC audience. Optional for `oidc_aws` and `oidc_jfrog` auth types.", - "type": "string" - }, - "identity_mapping_name": { - "description": "The JFrog identity mapping name. Optional for `oidc_jfrog` auth type.", - "type": "string" } + } + } + } + } + }, + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/issue-field" }, - "required": [ - "registry_type", - "url", - "visibility" - ] + "examples": { + "default": { + "$ref": "#/components/examples/issue-field" + } + } + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "issue-fields" + } + } + }, + "/orgs/{org}/issue-fields/{issue_field_id}": { + "patch": { + "summary": "Update issue field for an organization", + "description": "Updates an issue field for an organization.\n\nYou can find out more about issue fields in [Managing issue fields in an organization](https://docs.github.com/issues/tracking-your-work-with-issues/using-issues/managing-issue-fields-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/update-issue-field", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/issue-fields#update-issue-field-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/issue-field-id" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/organization-update-issue-field" }, "examples": { - "org-private-registry-with-private-visibility": { - "summary": "Example of a private registry configuration with private visibility", + "default": { + "summary": "Update name and description", + "description": "Update the name and description of an issue field", "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" + "name": "Priority", + "description": "Level of importance for the issue" } }, - "org-private-registry-with-selected-visibility": { - "summary": "Example of a private registry configuration with selected visibility", + "update-single-select-options": { + "summary": "Update single select options", + "description": "Update the options for a single select issue field", "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 + "name": "Status", + "description": "Current status of the issue", + "options": [ + { + "name": "Backlog", + "description": "Items waiting to be prioritized", + "color": "gray", + "priority": 1 + }, + { + "name": "In Progress", + "description": "Currently being worked on", + "color": "blue", + "priority": 2 + }, + { + "name": "Done", + "description": "Completed work", + "color": "green", + "priority": 3 + } ] } }, - "org-private-registry-with-oidc-azure": { - "summary": "Example of an OIDC private registry configuration using Azure", + "update-name-only": { + "summary": "Update name only", + "description": "Update only the name of an issue field", "value": { - "registry_type": "docker_registry", - "url": "https://myregistry.azurecr.io", - "auth_type": "oidc_azure", - "visibility": "all", - "tenant_id": "12345678-1234-1234-1234-123456789012", - "client_id": "abcdef01-2345-6789-abcd-ef0123456789" + "name": "Updated Field Name" } } } @@ -29407,19 +30203,16 @@ } }, "responses": { - "201": { - "description": "The organization private registry configuration", + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/org-private-registry-configuration-with-selected-repositories" + "$ref": "#/components/schemas/issue-field" }, "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" + "default": { + "$ref": "#/components/examples/issue-field" } } } @@ -29429,28 +30222,65 @@ "$ref": "#/components/responses/not_found" }, "422": { - "$ref": "#/components/responses/validation_failed" + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "private-registries", - "subcategory": "organization-configurations" + "category": "orgs", + "subcategory": "issue-fields" + } + }, + "delete": { + "summary": "Delete issue field for an organization", + "description": "Deletes an issue field for an organization.\n\nYou can find out more about issue fields in [Managing issue fields in an organization](https://docs.github.com/issues/tracking-your-work-with-issues/using-issues/managing-issue-fields-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-field", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/issue-fields#delete-issue-field-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/issue-field-id" + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/no_content" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "issue-fields" } } }, - "/orgs/{org}/private-registries/public-key": { + "/orgs/{org}/issue-types": { "get": { - "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.", + "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": [ - "private-registries" + "orgs" ], - "operationId": "private-registries/get-org-public-key", + "operationId": "orgs/list-issue-types", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/private-registries/organization-configurations#get-private-registries-public-key-for-an-organization" + "url": "https://docs.github.com/rest/orgs/issue-types#list-issue-types-for-an-organization" }, "parameters": [ { @@ -29463,35 +30293,17 @@ "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" - } + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-type" } }, "examples": { "default": { - "$ref": "#/components/examples/private-registries-public-key" + "$ref": "#/components/examples/issue-type-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, "404": { @@ -29501,42 +30313,57 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "private-registries", - "subcategory": "organization-configurations" + "category": "orgs", + "subcategory": "issue-types" } - } - }, - "/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.", + }, + "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": [ - "private-registries" + "orgs" ], - "operationId": "private-registries/get-org-private-registry", + "operationId": "orgs/create-issue-type", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/private-registries/organization-configurations#get-a-private-registry-for-an-organization" + "url": "https://docs.github.com/rest/orgs/issue-types#create-issue-type-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/secret-name" } ], + "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": { "200": { - "description": "The specified private registry configuration for the organization", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/org-private-registry-configuration" + "$ref": "#/components/schemas/issue-type" }, "examples": { "default": { - "$ref": "#/components/examples/org-private-registry-configuration" + "$ref": "#/components/examples/issue-type" } } } @@ -29544,32 +30371,37 @@ }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "private-registries", - "subcategory": "organization-configurations" + "category": "orgs", + "subcategory": "issue-types" } - }, - "patch": { - "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).\"\nFor OIDC-based registries (`oidc_azure`, `oidc_aws`, or `oidc_jfrog`), the `encrypted_value` and `key_id` fields should be omitted.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope 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": [ - "private-registries" + "orgs" ], - "operationId": "private-registries/update-org-private-registry", + "operationId": "orgs/update-issue-type", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/private-registries/organization-configurations#update-a-private-registry-for-an-organization" + "url": "https://docs.github.com/rest/orgs/issue-types#update-issue-type-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/secret-name" + "$ref": "#/components/parameters/issue-type-id" } ], "requestBody": { @@ -29577,140 +30409,15 @@ "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`. This field should be omitted if `visibility` is set to `all` or `private`.", - "type": "array", - "items": { - "type": "integer" - } - }, - "auth_type": { - "description": "The authentication type for the private registry. This field cannot be changed after creation. If provided, it must match the existing `auth_type` of the configuration. To change the authentication type, delete and recreate the configuration.", - "type": "string", - "enum": [ - "token", - "username_password", - "oidc_azure", - "oidc_aws", - "oidc_jfrog" - ] - }, - "tenant_id": { - "description": "The tenant ID of the Azure AD application. Required when `auth_type` is `oidc_azure`.", - "type": "string" - }, - "client_id": { - "description": "The client ID of the Azure AD application. Required when `auth_type` is `oidc_azure`.", - "type": "string" - }, - "aws_region": { - "description": "The AWS region. Required when `auth_type` is `oidc_aws`.", - "type": "string" - }, - "account_id": { - "description": "The AWS account ID. Required when `auth_type` is `oidc_aws`.", - "type": "string" - }, - "role_name": { - "description": "The AWS IAM role name. Required when `auth_type` is `oidc_aws`.", - "type": "string" - }, - "domain": { - "description": "The CodeArtifact domain. Required when `auth_type` is `oidc_aws`.", - "type": "string" - }, - "domain_owner": { - "description": "The CodeArtifact domain owner (AWS account ID). Required when `auth_type` is `oidc_aws`.", - "type": "string" - }, - "jfrog_oidc_provider_name": { - "description": "The JFrog OIDC provider name. Required when `auth_type` is `oidc_jfrog`.", - "type": "string" - }, - "audience": { - "description": "The OIDC audience. Optional for `oidc_aws` and `oidc_jfrog` auth types.", - "type": "string" - }, - "identity_mapping_name": { - "description": "The JFrog identity mapping name. Optional for `oidc_jfrog` auth type.", - "type": "string" - } - } + "$ref": "#/components/schemas/organization-update-issue-type" }, "examples": { - "secret-based-update": { - "summary": "Update a secret-based private registry", - "value": { - "username": "monalisa", - "encrypted_value": "c2VjcmV0", - "key_id": "012345678912345678" - } - }, - "oidc-azure-update": { - "summary": "Update an OIDC private registry (Azure)", + "default": { "value": { - "tenant_id": "12345678-1234-1234-1234-123456789012", - "visibility": "selected", - "selected_repository_ids": [ - 1296269, - 1296280 - ] + "name": "Epic", + "description": "An issue type for a multi-week tracking of work", + "is_enabled": true, + "color": "green" } } } @@ -29718,48 +30425,60 @@ } }, "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/issue-type" + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue-type" + } + } + } + } }, "404": { "$ref": "#/components/responses/not_found" }, "422": { - "$ref": "#/components/responses/validation_failed" + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "private-registries", - "subcategory": "organization-configurations" + "category": "orgs", + "subcategory": "issue-types" } }, "delete": { - "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.", + "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": [ - "private-registries" + "orgs" ], - "operationId": "private-registries/delete-org-private-registry", + "operationId": "orgs/delete-issue-type", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/private-registries/organization-configurations#delete-a-private-registry-for-an-organization" + "url": "https://docs.github.com/rest/orgs/issue-types#delete-issue-type-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/secret-name" + "$ref": "#/components/parameters/issue-type-id" } ], "responses": { "204": { "description": "Response" }, - "400": { - "$ref": "#/components/responses/bad_request" + "422": { + "$ref": "#/components/responses/validation_failed_simple" }, "404": { "$ref": "#/components/responses/not_found" @@ -29768,30 +30487,66 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "private-registries", - "subcategory": "organization-configurations" + "category": "orgs", + "subcategory": "issue-types" } } }, - "/orgs/{org}/projectsV2": { + "/orgs/{org}/issues": { "get": { - "summary": "List projects for organization", - "description": "List all projects owned by a specific organization accessible by the authenticated user.", + "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": [ - "projects" + "issues" ], - "operationId": "projects/list-for-org", + "operationId": "issues/list-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/projects#list-projects-for-organization" + "url": "https://docs.github.com/rest/issues/issues#list-organization-issues-assigned-to-the-authenticated-user" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "name": "q", - "description": "Limit results to projects of the specified type.", + "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" + } + }, + { + "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": { @@ -29799,13 +30554,31 @@ } }, { - "$ref": "#/components/parameters/pagination-before" + "name": "sort", + "description": "What to sort results by.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "updated", + "comments" + ], + "default": "created" + } }, { - "$ref": "#/components/parameters/pagination-after" + "$ref": "#/components/parameters/direction" + }, + { + "$ref": "#/components/parameters/since" }, { "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -29816,12 +30589,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/projects-v2" + "$ref": "#/components/schemas/issue" } }, "examples": { "default": { - "$ref": "#/components/examples/projects-v2" + "$ref": "#/components/examples/issue-with-repo-items" } } } @@ -29832,42 +30605,69 @@ } } }, - "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, - "category": "projects", - "subcategory": "projects" + "enabledForGitHubApps": false, + "category": "issues", + "subcategory": "issues" } } }, - "/orgs/{org}/projectsV2/{project_number}": { + "/orgs/{org}/members": { "get": { - "summary": "Get project for organization", - "description": "Get a specific organization-owned project.", + "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": [ - "projects" + "orgs" ], - "operationId": "projects/get-for-org", + "operationId": "orgs/list-members", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/projects#get-project-for-organization" + "url": "https://docs.github.com/rest/orgs/members#list-organization-members" }, "parameters": [ { - "$ref": "#/components/parameters/project-number" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/org" + "name": "filter", + "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": [ + "2fa_disabled", + "2fa_insecure", + "all" + ], + "default": "all" + } + }, + { + "name": "role", + "description": "Filter members returned by their role.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "all", + "admin", + "member" + ], + "default": "all" + } + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -29876,11 +30676,14 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/projects-v2" + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } }, "examples": { "default": { - "$ref": "#/components/examples/projects-v2" + "$ref": "#/components/examples/simple-user-items" } } } @@ -29891,144 +30694,136 @@ } } }, - "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": true, - "category": "projects", - "subcategory": "projects" + "category": "orgs", + "subcategory": "members" } } }, - "/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.", + "/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.", "tags": [ - "projects" + "orgs" ], - "operationId": "projects/create-draft-item-for-org", + "operationId": "orgs/check-membership-for-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/drafts#create-draft-item-for-organization-owned-project" + "url": "https://docs.github.com/rest/orgs/members#check-organization-membership-for-a-user" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/project-number" + "$ref": "#/components/parameters/username" } ], - "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" - ] - }, - "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": { - "201": { - "description": "Response", - "content": { - "application/json": { + "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": { - "$ref": "#/components/schemas/projects-v2-item-simple" - }, - "examples": { - "draft_issue": { - "$ref": "#/components/examples/projects-v2-item-simple" - } + "type": "string" } } } }, - "304": { - "$ref": "#/components/responses/not_modified" + "404": { + "description": "Not Found if requester is an organization member and user is not a member" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "members" + } + }, + "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.\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-member", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/members#remove-an-organization-member" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "Response" }, "403": { "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "projects", - "subcategory": "drafts" - } + "category": "orgs", + "subcategory": "members" + }, + "x-github-breaking-changes": [ + { + "changeset": "change_remove_member_trade_compliance_response_status", + "patch": { + "responses": { + "451": { + "$ref": "#/components/responses/validation_failed" + } + } + }, + "version": "2026-03-10" + } + ] } }, - "/orgs/{org}/projectsV2/{project_number}/fields": { + "/orgs/{org}/members/{username}/codespaces": { "get": { - "summary": "List project fields for organization", - "description": "List all fields for a specific organization-owned project.", + "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": [ - "projects" + "codespaces" ], - "operationId": "projects/list-fields-for-org", + "operationId": "codespaces/get-codespaces-for-user-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/fields#list-project-fields-for-organization" + "url": "https://docs.github.com/rest/codespaces/organizations#list-codespaces-for-a-user-in-organization" }, "parameters": [ { - "$ref": "#/components/parameters/project-number" - }, - { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/page" }, { - "$ref": "#/components/parameters/pagination-before" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/pagination-after" + "$ref": "#/components/parameters/username" } ], "responses": { @@ -30037,260 +30832,127 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/projects-v2-field" + "type": "object", + "required": [ + "total_count", + "codespaces" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "codespaces": { + "type": "array", + "items": { + "$ref": "#/components/schemas/codespace" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/projects-v2-field-items" + "$ref": "#/components/examples/codespaces-list" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, "304": { "$ref": "#/components/responses/not_modified" }, - "403": { - "$ref": "#/components/responses/forbidden" + "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, - "category": "projects", - "subcategory": "fields" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organizations" } - }, - "post": { - "summary": "Add a field to an organization-owned project.", - "description": "Add a field to an organization-owned project.", + } + }, + "/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": [ - "projects" + "codespaces" ], - "operationId": "projects/add-field-for-org", + "operationId": "codespaces/delete-from-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/fields#add-a-field-to-an-organization-owned-project" + "url": "https://docs.github.com/rest/codespaces/organizations#delete-a-codespace-from-the-organization" }, "parameters": [ { - "$ref": "#/components/parameters/project-number" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/username" + }, + { + "$ref": "#/components/parameters/codespace-name" } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "object", - "properties": { - "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": "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" - } - } - } - } - }, "responses": { - "201": { - "description": "Response for adding a field to an organization-owned project.", - "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" - } - } - } - } + "202": { + "$ref": "#/components/responses/accepted" }, "304": { "$ref": "#/components/responses/not_modified" }, - "403": { - "$ref": "#/components/responses/forbidden" + "500": { + "$ref": "#/components/responses/internal_error" }, "401": { "$ref": "#/components/responses/requires_authentication" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "projects", - "subcategory": "fields" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organizations" } } }, - "/orgs/{org}/projectsV2/{project_number}/fields/{field_id}": { - "get": { - "summary": "Get project field for organization", - "description": "Get a specific field for an organization-owned project.", + "/orgs/{org}/members/{username}/codespaces/{codespace_name}/stop": { + "post": { + "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": [ - "projects" + "codespaces" ], - "operationId": "projects/get-field-for-org", + "operationId": "codespaces/stop-in-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/fields#get-project-field-for-organization" + "url": "https://docs.github.com/rest/codespaces/organizations#stop-a-codespace-for-an-organization-user" }, "parameters": [ { - "$ref": "#/components/parameters/project-number" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/field-id" + "$ref": "#/components/parameters/username" }, { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/codespace-name" } ], "responses": { @@ -30299,342 +30961,118 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/projects-v2-field" + "$ref": "#/components/schemas/codespace" }, "examples": { "default": { - "$ref": "#/components/examples/projects-v2-field" + "$ref": "#/components/examples/codespace" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, "304": { "$ref": "#/components/responses/not_modified" }, - "403": { - "$ref": "#/components/responses/forbidden" + "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, - "category": "projects", - "subcategory": "fields" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "organizations" } } }, - "/orgs/{org}/projectsV2/{project_number}/items": { + "/orgs/{org}/members/{username}/copilot": { "get": { - "summary": "List items for an organization owned project", - "description": "List all items for a specific organization-owned project accessible by the authenticated user.", + "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": [ - "projects" + "copilot" ], - "operationId": "projects/list-items-for-org", + "operationId": "copilot/get-copilot-seat-details-for-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/items#list-items-for-an-organization-owned-project" + "url": "https://docs.github.com/rest/copilot/copilot-user-management#get-copilot-seat-assignment-details-for-a-user" }, "parameters": [ - { - "$ref": "#/components/parameters/project-number" - }, { "$ref": "#/components/parameters/org" }, { - "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" + "$ref": "#/components/parameters/username" } ], "responses": { "200": { - "description": "Response", + "description": "The user's GitHub Copilot seat details, including usage.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/projects-v2-item-with-content" - } + "$ref": "#/components/schemas/copilot-seat-details" }, "examples": { "default": { - "$ref": "#/components/examples/projects-v2-item-with-content" + "$ref": "#/components/examples/copilot-seat-detail-active" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "500": { + "$ref": "#/components/responses/internal_error" }, "401": { "$ref": "#/components/responses/requires_authentication" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "projects", - "subcategory": "items" - } - }, - "post": { - "summary": "Add item to organization owned project", - "description": "Add an issue or pull request item to the specified organization owned project.", - "tags": [ - "projects" - ], - "operationId": "projects/add-item-for-org", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/items#add-item-to-organization-owned-project" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$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" - ] - } - ] - }, - "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": { - "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" - } - } - } - } - } - }, - "304": { - "$ref": "#/components/responses/not_modified" }, "403": { "$ref": "#/components/responses/forbidden" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "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": "projects", - "subcategory": "items" + "category": "copilot", + "subcategory": "copilot-user-management" } } }, - "/orgs/{org}/projectsV2/{project_number}/items/{item_id}": { + "/orgs/{org}/memberships/{username}": { "get": { - "summary": "Get an item for an organization owned project", - "description": "Get a specific item from an organization-owned project.", + "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": [ - "projects" + "orgs" ], - "operationId": "projects/get-org-item", + "operationId": "orgs/get-membership-for-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/items#get-an-item-for-an-organization-owned-project" + "url": "https://docs.github.com/rest/orgs/members#get-organization-membership-for-a-user" }, "parameters": [ - { - "$ref": "#/components/parameters/project-number" - }, { "$ref": "#/components/parameters/org" }, { - "$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" - } - } - ] - } + "$ref": "#/components/parameters/username" } ], "responses": { @@ -30643,156 +31081,72 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/projects-v2-item-with-content" + "$ref": "#/components/schemas/org-membership" }, "examples": { - "default": { - "$ref": "#/components/examples/projects-v2-item-with-content" + "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" } } } - }, - "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": true, - "category": "projects", - "subcategory": "items" + "category": "orgs", + "subcategory": "members" } }, - "patch": { - "summary": "Update project item for organization", - "description": "Update a specific item in an organization-owned project.", + "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": [ - "projects" + "orgs" ], - "operationId": "projects/update-item-for-org", + "operationId": "orgs/set-membership-for-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/items#update-project-item-for-organization" + "url": "https://docs.github.com/rest/orgs/members#set-organization-membership-for-a-user" }, "parameters": [ - { - "$ref": "#/components/parameters/project-number" - }, { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/item-id" + "$ref": "#/components/parameters/username" } ], "requestBody": { - "required": true, - "description": "Field updates to apply to the project item. Only text, number, date, single select, and iteration fields are supported.", + "required": false, "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" - ] - } + "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" } - }, - "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", + "default": { + "summary": "Set an organization membership role for a user", "value": { - "fields": [ - { - "id": 1011, - "value": "866ee5b8" - } - ] + "role": "member" } } } @@ -30805,68 +31159,60 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/projects-v2-item-with-content" + "$ref": "#/components/schemas/org-membership" }, "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" + "response-if-user-already-had-membership-with-organization": { + "$ref": "#/components/examples/org-membership-response-if-user-has-an-active-admin-membership-with-organization" } } } } }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "422": { + "$ref": "#/components/responses/validation_failed" }, "403": { "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "projects", - "subcategory": "items" - } + "category": "orgs", + "subcategory": "members" + }, + "x-github-breaking-changes": [ + { + "changeset": "change_update_user_membership_trade_compliance_response_status", + "patch": { + "responses": { + "451": { + "$ref": "#/components/responses/validation_failed" + } + } + }, + "version": "2026-03-10" + } + ] }, "delete": { - "summary": "Delete project item for organization", - "description": "Delete a specific item from an organization-owned project.", + "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": [ - "projects" + "orgs" ], - "operationId": "projects/delete-item-for-org", + "operationId": "orgs/remove-membership-for-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/items#delete-project-item-for-organization" + "url": "https://docs.github.com/rest/orgs/members#remove-organization-membership-for-a-user" }, "parameters": [ - { - "$ref": "#/components/parameters/project-number" - }, { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/item-id" + "$ref": "#/components/parameters/username" } ], "responses": { @@ -30876,36 +31222,103 @@ "403": { "$ref": "#/components/responses/forbidden" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "projects", - "subcategory": "items" + "category": "orgs", + "subcategory": "members" } } }, - "/orgs/{org}/projectsV2/{project_number}/views": { - "post": { - "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.", + "/orgs/{org}/migrations": { + "get": { + "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": [ - "projects" + "migrations" ], - "operationId": "projects/create-view-for-org", + "operationId": "migrations/list-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/views#create-a-view-for-an-organization-owned-project" + "url": "https://docs.github.com/rest/migrations/orgs#list-organization-migrations" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/project-number" + "$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": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/migration" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/migration-with-short-org-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "orgs" + } + }, + "post": { + "summary": "Start an organization migration", + "description": "Initiates the generation of a migration archive.", + "tags": [ + "migrations" + ], + "operationId": "migrations/start-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/migrations/orgs#start-an-organization-migration" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" } ], "requestBody": { @@ -30915,77 +31328,75 @@ "schema": { "type": "object", "properties": { - "name": { - "type": "string", - "description": "The name of the view.", - "example": "Sprint Board" + "repositories": { + "type": "array", + "description": "A list of arrays indicating which repositories should be migrated.", + "items": { + "type": "string" + } }, - "layout": { - "type": "string", - "description": "The layout of the view.", - "enum": [ - "table", - "board", - "roadmap" - ], - "example": "board" + "lock_repositories": { + "type": "boolean", + "example": true, + "description": "Indicates whether repositories should be locked (to prevent manipulation) while migrating data.", + "default": false }, - "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" + "exclude_metadata": { + "type": "boolean", + "description": "Indicates whether metadata should be excluded and only git source should be included for the migration.", + "default": false }, - "visible_fields": { + "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": "`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.", + "description": "Exclude related items from being returned in the response in order to improve performance of the request.", "items": { - "type": "integer" - }, - "example": [ - 123, - 456, - 789 - ] + "type": "string", + "enum": [ + "repositories" + ] + } } }, "required": [ - "name", - "layout" - ], - "additionalProperties": false + "repositories" + ] }, "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", + "default": { "value": { - "name": "Product Roadmap", - "layout": "roadmap" + "repositories": [ + "github/Hello-World" + ], + "lock_repositories": true } } } @@ -30994,204 +31405,122 @@ }, "responses": { "201": { - "description": "Response for creating a view in an organization-owned project.", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/projects-v2-view" + "$ref": "#/components/schemas/migration" }, "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" - } + "default": { + "$ref": "#/components/examples/migration-with-short-org-2" } } } } }, - "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, - "category": "projects", - "subcategory": "views" + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "orgs" } } }, - "/orgs/{org}/projectsV2/{project_number}/views/{view_number}/items": { + "/orgs/{org}/migrations/{migration_id}": { "get": { - "summary": "List items for an organization project view", - "description": "List items in an organization project with the saved view's filter applied.", + "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": [ - "projects" + "migrations" ], - "operationId": "projects/list-view-items-for-org", + "operationId": "migrations/get-status-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/items#list-items-for-an-organization-project-view" + "url": "https://docs.github.com/rest/migrations/orgs#get-an-organization-migration-status" }, "parameters": [ - { - "$ref": "#/components/parameters/project-number" - }, { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/view-number" + "$ref": "#/components/parameters/migration-id" }, { - "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`", + "name": "exclude", + "description": "Exclude attributes from the API response to improve performance", "in": "query", - "required": false, "schema": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "array", - "maxItems": 50, - "items": { - "type": "string" - } - } - ] + "type": "array", + "items": { + "description": "Allowed values that can be passed to the exclude param.", + "enum": [ + "repositories" + ], + "example": "repositories", + "type": "string" + } } - }, - { - "$ref": "#/components/parameters/pagination-before" - }, - { - "$ref": "#/components/parameters/pagination-after" - }, - { - "$ref": "#/components/parameters/per-page" } ], "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": { - "type": "array", - "items": { - "$ref": "#/components/schemas/projects-v2-item-with-content" - } + "$ref": "#/components/schemas/migration" }, "examples": { "default": { - "$ref": "#/components/examples/projects-v2-item-with-content" + "$ref": "#/components/examples/migration-with-short-org" } } } - }, - "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, - "category": "projects", - "subcategory": "items" + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "orgs" } } }, - "/orgs/{org}/properties/schema": { + "/orgs/{org}/migrations/{migration_id}/archive": { "get": { - "summary": "Get all custom properties for an organization", - "description": "Gets all custom properties defined for an organization.\nOrganization members can read these properties.", + "summary": "Download an organization migration archive", + "description": "Fetches the URL to a migration archive.", "tags": [ - "orgs" + "migrations" ], - "operationId": "orgs/custom-properties-for-repos-get-organization-definitions", + "operationId": "migrations/download-archive-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/custom-properties#get-all-custom-properties-for-an-organization" + "url": "https://docs.github.com/rest/migrations/orgs#download-an-organization-migration-archive" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/migration-id" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/custom-property" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/custom-properties" - } - } - } - } - }, - "403": { - "$ref": "#/components/responses/forbidden" + "302": { + "description": "Response" }, "404": { "$ref": "#/components/responses/not_found" @@ -31199,101 +31528,72 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "custom-properties" + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "orgs" } }, - "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.", + "delete": { + "summary": "Delete an organization migration archive", + "description": "Deletes a previous migration archive. Migration archives are automatically deleted after seven days.", "tags": [ - "orgs" + "migrations" ], - "operationId": "orgs/custom-properties-for-repos-create-or-update-organization-definitions", + "operationId": "migrations/delete-archive-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/custom-properties#create-or-update-custom-properties-for-an-organization" + "url": "https://docs.github.com/rest/migrations/orgs#delete-an-organization-migration-archive" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/migration-id" } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "properties": { - "type": "array", - "description": "The array of custom properties to create or update.", - "items": { - "$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" - } - ] - } - } - } - } + "responses": { + "204": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/custom-property" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/custom-properties" - } - } - } - } + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "orgs" + } + } + }, + "/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/repos/repos#delete-a-repository) when the migration is complete and you no longer need the source data.", + "tags": [ + "migrations" + ], + "operationId": "migrations/unlock-repo-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/migrations/orgs#unlock-an-organization-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" }, - "403": { - "$ref": "#/components/responses/forbidden" + { + "$ref": "#/components/parameters/migration-id" + }, + { + "$ref": "#/components/parameters/repo-name" + } + ], + "responses": { + "204": { + "description": "Response" }, "404": { "$ref": "#/components/responses/not_found" @@ -31301,30 +31601,36 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "custom-properties" + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "orgs" } } }, - "/orgs/{org}/properties/schema/{custom_property_name}": { + "/orgs/{org}/migrations/{migration_id}/repositories": { "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.", + "summary": "List repositories in an organization migration", + "description": "List all the repositories for this organization migration.", "tags": [ - "orgs" + "migrations" ], - "operationId": "orgs/custom-properties-for-repos-get-organization-definition", + "operationId": "migrations/list-repos-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/custom-properties#get-a-custom-property-for-an-organization" + "url": "https://docs.github.com/rest/migrations/orgs#list-repositories-in-an-organization-migration" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/custom-property-name" + "$ref": "#/components/parameters/migration-id" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -31333,353 +31639,286 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/custom-property" + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } }, "examples": { "default": { - "$ref": "#/components/examples/custom-property" + "$ref": "#/components/examples/minimal-repository-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "403": { - "$ref": "#/components/responses/forbidden" - }, "404": { "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "custom-properties" - } - }, - "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.", + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "orgs" + }, + "x-github-breaking-changes": [ + { + "changeset": "restrict_repo_fields_in_migration_resource", + "patch": { + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/simple-repository" + } + } + } + } + } + } + }, + "version": "2026-03-10" + }, + { + "changeset": "restrict_repo_fields_in_migration_resource", + "patch": { + "responses": { + "200": { + "content": { + "application/json": { + "examples": null + } + } + } + } + }, + "version": "2026-03-10" + } + ] + } + }, + "/orgs/{org}/organization-roles": { + "get": { + "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- An organization member (or a member of a team) assigned a custom organization role that includes the **View organization roles** (`read_organization_custom_org_role`) permission. For more information, see \"[Permissions for organization access](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/permissions-of-custom-organization-roles#permissions-for-organization-access).\"\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ "orgs" ], - "operationId": "orgs/custom-properties-for-repos-create-or-update-organization-definition", + "operationId": "orgs/list-org-roles", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/custom-properties#create-or-update-a-custom-property-for-an-organization" + "url": "https://docs.github.com/rest/orgs/organization-roles#get-all-organization-roles-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/custom-property-name" } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$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" - ] - } - } - } - } - } - }, "responses": { "200": { - "description": "Response", + "description": "Response - list of organization roles", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/custom-property" + "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/custom-property" + "$ref": "#/components/examples/organization-role-list" } } } } }, - "403": { - "$ref": "#/components/responses/forbidden" - }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "custom-properties" + "subcategory": "organization-roles" } - }, + } + }, + "/orgs/{org}/organization-roles/teams/{team_slug}": { "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.", + "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": [ "orgs" ], - "operationId": "orgs/custom-properties-for-repos-delete-organization-definition", + "operationId": "orgs/revoke-all-org-roles-team", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/custom-properties#remove-a-custom-property-for-an-organization" + "url": "https://docs.github.com/rest/orgs/organization-roles#remove-all-organization-roles-for-a-team" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/custom-property-name" + "$ref": "#/components/parameters/team-slug" } ], "responses": { "204": { - "$ref": "#/components/responses/no_content" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "custom-properties" + "subcategory": "organization-roles" } } }, - "/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.", + "/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": [ "orgs" ], - "operationId": "orgs/custom-properties-for-repos-get-organization-values", + "operationId": "orgs/assign-team-to-org-role", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/custom-properties#list-custom-property-values-for-organization-repositories" + "url": "https://docs.github.com/rest/orgs/organization-roles#assign-an-organization-role-to-a-team" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/team-slug" }, { - "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" - } + "$ref": "#/components/parameters/role-id" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/org-repo-custom-property-values" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/org-repo-custom-property-values" - } - } - } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } - }, - "403": { - "$ref": "#/components/responses/forbidden" + "204": { + "description": "Response" }, "404": { - "$ref": "#/components/responses/not_found" + "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, "category": "orgs", - "subcategory": "custom-properties" + "subcategory": "organization-roles" } }, - "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.", + "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": [ "orgs" ], - "operationId": "orgs/custom-properties-for-repos-create-or-update-organization-values", + "operationId": "orgs/revoke-org-role-team", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/custom-properties#create-or-update-custom-property-values-for-organization-repositories" + "url": "https://docs.github.com/rest/orgs/organization-roles#remove-an-organization-role-from-a-team" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/team-slug" + }, + { + "$ref": "#/components/parameters/role-id" } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "repository_names": { - "type": "array", - "description": "The names of repositories that the custom property values will be applied to.", - "items": { - "type": "string" - }, - "minItems": 1, - "maxItems": 30 - }, - "properties": { - "type": "array", - "description": "List of custom property names and associated values to apply to the repositories.", - "items": { - "$ref": "#/components/schemas/custom-property-value" - } - } - }, - "required": [ - "repository_names", - "properties" - ] - }, - "examples": { - "default": { - "$ref": "#/components/examples/org-repo-update-custom-property-values" - } - } - } - } - }, "responses": { "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" + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "custom-properties" + "subcategory": "organization-roles" } } }, - "/orgs/{org}/public_members": { - "get": { - "summary": "List public organization members", - "description": "Members of an organization can choose to have their membership publicized or not.", + "/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": [ "orgs" ], - "operationId": "orgs/list-public-members", + "operationId": "orgs/revoke-all-org-roles-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/members#list-public-organization-members" + "url": "https://docs.github.com/rest/orgs/organization-roles#remove-all-organization-roles-for-a-user" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/username" } ], "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" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "members" + "subcategory": "organization-roles" } } }, - "/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.", + "/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/check-public-membership-for-user", + "operationId": "orgs/assign-user-to-org-role", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/members#check-public-organization-membership-for-a-user" + "url": "https://docs.github.com/rest/orgs/organization-roles#assign-an-organization-role-to-a-user" }, "parameters": [ { @@ -31687,33 +31926,39 @@ }, { "$ref": "#/components/parameters/username" + }, + { + "$ref": "#/components/parameters/role-id" } ], "responses": { "204": { - "description": "Response if user is a public member" + "description": "Response" }, "404": { - "description": "Not Found if user is not a public member" + "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": "members" + "subcategory": "organization-roles" } }, - "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).\"", + "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/set-public-membership-for-authenticated-user", + "operationId": "orgs/revoke-org-role-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/members#set-public-organization-membership-for-the-authenticated-user" + "url": "https://docs.github.com/rest/orgs/organization-roles#remove-an-organization-role-from-a-user" }, "parameters": [ { @@ -31721,117 +31966,93 @@ }, { "$ref": "#/components/parameters/username" + }, + { + "$ref": "#/components/parameters/role-id" } ], "responses": { "204": { "description": "Response" - }, - "403": { - "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, + "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "members" + "subcategory": "organization-roles" } - }, - "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.", + } + }, + "/orgs/{org}/organization-roles/{role_id}": { + "get": { + "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- An organization member (or a member of a team) assigned a custom organization role that includes the **View organization roles** (`read_organization_custom_org_role`) permission. For more information, see \"[Permissions for organization access](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/permissions-of-custom-organization-roles#permissions-for-organization-access).\"\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ "orgs" ], - "operationId": "orgs/remove-public-membership-for-authenticated-user", + "operationId": "orgs/get-org-role", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/members#remove-public-organization-membership-for-the-authenticated-user" + "url": "https://docs.github.com/rest/orgs/organization-roles#get-an-organization-role" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/role-id" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/organization-role" + }, + "examples": { + "default": { + "$ref": "#/components/examples/organization-role" + } + } + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, + "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "members" + "subcategory": "organization-roles" } } }, - "/orgs/{org}/repos": { + "/orgs/{org}/organization-roles/{role_id}/teams": { "get": { - "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).\"", + "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": [ - "repos" + "orgs" ], - "operationId": "repos/list-for-org", + "operationId": "orgs/list-org-role-teams", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#list-organization-repositories" + "url": "https://docs.github.com/rest/orgs/organization-roles#list-teams-that-are-assigned-to-an-organization-role" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "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" - } - }, - { - "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/role-id" }, { "$ref": "#/components/parameters/per-page" @@ -31842,18 +32063,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/minimal-repository" + "$ref": "#/components/schemas/team-role-assignment" } }, "examples": { "default": { - "$ref": "#/components/examples/minimal-repository-items" + "$ref": "#/components/examples/team-items" } } } @@ -31863,279 +32085,124 @@ "$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, - "category": "repos", - "subcategory": "repos" + "category": "orgs", + "subcategory": "organization-roles" } - }, - "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\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.", + } + }, + "/orgs/{org}/organization-roles/{role_id}/users": { + "get": { + "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": [ - "repos" + "orgs" ], - "operationId": "repos/create-in-org", + "operationId": "orgs/list-org-role-users", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#create-an-organization-repository" + "url": "https://docs.github.com/rest/orgs/organization-roles#list-users-that-are-assigned-to-an-organization-role" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/role-id" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], - "requestBody": { - "required": true, - "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": "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": [ - "name" - ] - }, - "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": { - "201": { - "description": "Response", + "200": { + "description": "Response - List of assigned users", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/full-repository" + "type": "array", + "description": "List of users assigned to the organization role", + "items": { + "$ref": "#/components/schemas/user-role-assignment" + } }, "examples": { "default": { - "$ref": "#/components/examples/full-repository" + "$ref": "#/components/examples/simple-user-items" } } } }, "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World", - "schema": { - "type": "string" - } + "Link": { + "$ref": "#/components/headers/link" } } }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "description": "Response if the organization or role does not exist." }, "422": { - "$ref": "#/components/responses/validation_failed" + "description": "Response if the organization roles feature is not enabled or validation failed." } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "repos" - }, - "x-github-breaking-changes": [ - { - "changeset": "change_create_repo_trade_compliance_response_status", - "patch": { - "responses": { - "451": { - "$ref": "#/components/responses/validation_failed" - } - } - }, - "version": "2026-03-10" - } - ] + "category": "orgs", + "subcategory": "organization-roles" + } } }, - "/orgs/{org}/rulesets": { + "/orgs/{org}/outside_collaborators": { "get": { - "summary": "Get all organization repository rulesets", - "description": "Get all the repository rulesets for an organization.", + "summary": "List outside collaborators for an organization", + "description": "List all users who are outside collaborators of an organization.", "tags": [ - "repos" + "orgs" ], - "operationId": "repos/get-org-rulesets", + "operationId": "orgs/list-outside-collaborators", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/rules#get-all-organization-repository-rulesets" - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "rules" + "url": "https://docs.github.com/rest/orgs/outside-collaborators#list-outside-collaborators-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/per-page" + "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/page" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/ruleset-targets" + "$ref": "#/components/parameters/page" } ], "responses": { @@ -32146,260 +32213,226 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/repository-ruleset" + "$ref": "#/components/schemas/simple-user" } }, "examples": { "default": { - "$ref": "#/components/examples/org-ruleset-items" + "$ref": "#/components/examples/simple-user-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "500": { - "$ref": "#/components/responses/internal_error" } - } - }, - "post": { - "summary": "Create an organization repository ruleset", - "description": "Create a repository ruleset for an organization.", - "tags": [ - "repos" - ], - "operationId": "repos/create-org-ruleset", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/rules#create-an-organization-repository-ruleset" }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "rules" + "subcategory": "outside-collaborators" + } + } + }, + "/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": [ + "orgs" + ], + "operationId": "orgs/convert-member-to-outside-collaborator", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/outside-collaborators#convert-an-organization-member-to-outside-collaborator" }, "parameters": [ { "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/username" } ], "requestBody": { - "description": "Request body", - "required": true, + "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", - "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" - } + "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": [ - "name", - "enforcement" - ] + } }, "examples": { - "default": { + "202": { + "summary": "Status code 202, asynchronous request", "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" - } - } - ] + "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/repository-ruleset" + "type": "object", + "properties": {}, + "additionalProperties": false }, "examples": { - "default": { - "$ref": "#/components/examples/org-ruleset" + "202": { + "value": null } } } } }, - "404": { - "$ref": "#/components/responses/not_found" + "204": { + "description": "User was converted" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "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).\"" }, - "500": { - "$ref": "#/components/responses/internal_error" + "404": { + "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "outside-collaborators" } - } - }, - "/orgs/{org}/rulesets/rule-suites": { - "get": { - "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).\"", + }, + "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-org-rule-suites", + "operationId": "orgs/remove-outside-collaborator", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/rule-suites#list-organization-rule-suites" + "url": "https://docs.github.com/rest/orgs/outside-collaborators#remove-outside-collaborator-from-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/ref-in-query" - }, - { - "$ref": "#/components/parameters/repository-name-in-query" - }, - { - "$ref": "#/components/parameters/time-period" - }, - { - "$ref": "#/components/parameters/actor-name-in-query" - }, - { - "$ref": "#/components/parameters/rule-suite-result" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$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/rule-suites" + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } }, "examples": { - "default": { - "$ref": "#/components/examples/rule-suite-items" + "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" - }, - "500": { - "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "rule-suites" + "subcategory": "outside-collaborators" } } }, - "/orgs/{org}/rulesets/rule-suites/{rule_suite_id}": { + "/orgs/{org}/packages": { "get": { - "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).\"", + "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/get-org-rule-suite", + "operationId": "packages/list-packages-for-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/rule-suites#get-an-organization-rule-suite" + "url": "https://docs.github.com/rest/packages/packages#list-packages-for-an-organization" }, "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" + ] + } + }, { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/rule-suite-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": { @@ -32408,61 +32441,58 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/rule-suite" + "type": "array", + "items": { + "$ref": "#/components/schemas/package" + } }, "examples": { "default": { - "$ref": "#/components/examples/rule-suite" + "$ref": "#/components/examples/packages-for-org" } } } } }, - "404": { - "$ref": "#/components/responses/not_found" + "403": { + "$ref": "#/components/responses/forbidden" }, - "500": { - "$ref": "#/components/responses/internal_error" + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "400": { + "$ref": "#/components/responses/package_es_list_error" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "rule-suites" + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } } }, - "/orgs/{org}/rulesets/{ruleset_id}": { + "/orgs/{org}/packages/{package_type}/{package_name}": { "get": { - "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.", + "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/get-org-ruleset", + "operationId": "packages/get-package-for-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/rules#get-an-organization-repository-ruleset" - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "rules" + "url": "https://docs.github.com/rest/packages/packages#get-a-package-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/package-type" }, { - "name": "ruleset_id", - "description": "The ID of the ruleset.", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/package-name" + }, + { + "$ref": "#/components/parameters/org" } ], "responses": { @@ -32471,204 +32501,98 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repository-ruleset" + "$ref": "#/components/schemas/package" }, "examples": { "default": { - "$ref": "#/components/examples/org-ruleset" + "$ref": "#/components/examples/package-org" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "500": { - "$ref": "#/components/responses/internal_error" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } }, - "put": { - "summary": "Update an organization repository ruleset", - "description": "Update a ruleset for an organization.", + "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\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-org-ruleset", + "operationId": "packages/delete-package-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/rules#update-an-organization-repository-ruleset" - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "rules" + "url": "https://docs.github.com/rest/packages/packages#delete-a-package-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/package-type" }, { - "name": "ruleset_id", - "description": "The ID of the ruleset.", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/package-name" + }, + { + "$ref": "#/components/parameters/org" } ], - "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", - "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" - } - } - } - }, - "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": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/repository-ruleset" - }, - "examples": { - "default": { - "$ref": "#/components/examples/org-ruleset" - } - } - } - } + "204": { + "description": "Response" }, "404": { "$ref": "#/components/responses/not_found" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "403": { + "$ref": "#/components/responses/forbidden" }, - "500": { - "$ref": "#/components/responses/internal_error" + "401": { + "$ref": "#/components/responses/requires_authentication" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } - }, - "delete": { - "summary": "Delete an organization repository ruleset", - "description": "Delete a ruleset for an organization.", + } + }, + "/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/delete-org-ruleset", + "operationId": "packages/restore-package-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/rules#delete-an-organization-repository-ruleset" - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "rules" + "url": "https://docs.github.com/rest/packages/packages#restore-a-package-for-an-organization" }, "parameters": [ + { + "$ref": "#/components/parameters/package-type" + }, + { + "$ref": "#/components/parameters/package-name" + }, { "$ref": "#/components/parameters/org" }, { - "name": "ruleset_id", - "description": "The ID of the ruleset.", - "in": "path", - "required": true, + "name": "token", + "description": "package token", "schema": { - "type": "integer" - } + "type": "string" + }, + "required": false, + "in": "query" } ], "responses": { @@ -32678,41 +32602,61 @@ "404": { "$ref": "#/components/responses/not_found" }, - "500": { - "$ref": "#/components/responses/internal_error" + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } } }, - "/orgs/{org}/rulesets/{ruleset_id}/history": { + "/orgs/{org}/packages/{package_type}/{package_name}/versions": { "get": { - "summary": "Get organization ruleset history", - "description": "Get the history of an organization ruleset.", + "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": [ - "orgs" + "packages" ], - "operationId": "orgs/get-org-ruleset-history", + "operationId": "packages/get-all-package-versions-for-package-owned-by-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/rules#get-organization-ruleset-history" + "url": "https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/package-type" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/package-name" + }, + { + "$ref": "#/components/parameters/org" }, { "$ref": "#/components/parameters/page" }, { - "name": "ruleset_id", - "description": "The ID of the ruleset.", - "in": "path", - "required": true, + "$ref": "#/components/parameters/per-page" + }, + { + "name": "state", + "in": "query", + "required": false, + "description": "The state of the package, either active or deleted.", "schema": { - "type": "integer" + "type": "string", + "enum": [ + "active", + "deleted" + ], + "default": "active" } } ], @@ -32724,12 +32668,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/ruleset-version" + "$ref": "#/components/schemas/package-version" } }, "examples": { "default": { - "$ref": "#/components/examples/ruleset-history" + "$ref": "#/components/examples/package-versions-for-org" } } } @@ -32738,51 +32682,45 @@ "404": { "$ref": "#/components/responses/not_found" }, - "500": { - "$ref": "#/components/responses/internal_error" + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "rules" + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } } }, - "/orgs/{org}/rulesets/{ruleset_id}/history/{version_id}": { + "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}": { "get": { - "summary": "Get organization ruleset version", - "description": "Get a version of an organization ruleset.", + "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": [ - "orgs" + "packages" ], - "operationId": "orgs/get-org-ruleset-version", + "operationId": "packages/get-package-version-for-organization", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/rules#get-organization-ruleset-version" + "url": "https://docs.github.com/rest/packages/packages#get-a-package-version-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/package-type" }, { - "name": "ruleset_id", - "description": "The ID of the ruleset.", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/package-name" }, { - "name": "version_id", - "description": "The ID of the version", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/package-version-id" } ], "responses": { @@ -32791,100 +32729,179 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ruleset-version-with-state" + "$ref": "#/components/schemas/package-version" }, "examples": { "default": { - "$ref": "#/components/examples/org-ruleset-version-with-state" + "$ref": "#/components/examples/package-version-org" } } } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } + }, + "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": [ + "packages" + ], + "operationId": "packages/delete-package-version-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#delete-package-version-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/package-type" + }, + { + "$ref": "#/components/parameters/package-name" + }, + { + "$ref": "#/components/parameters/org" + }, + { + "$ref": "#/components/parameters/package-version-id" + } + ], + "responses": { + "204": { + "description": "Response" }, "404": { "$ref": "#/components/responses/not_found" }, - "500": { - "$ref": "#/components/responses/internal_error" + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "rules" + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } } }, - "/orgs/{org}/secret-scanning/alerts": { - "get": { - "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.", + "/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": [ - "secret-scanning" + "packages" ], - "operationId": "secret-scanning/list-alerts-for-org", + "operationId": "packages/restore-package-version-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/secret-scanning/secret-scanning#list-secret-scanning-alerts-for-an-organization" + "url": "https://docs.github.com/rest/packages/packages#restore-package-version-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/secret-scanning-alert-state" + "$ref": "#/components/parameters/package-type" }, { - "$ref": "#/components/parameters/secret-scanning-alert-secret-type" + "$ref": "#/components/parameters/package-name" }, { - "$ref": "#/components/parameters/secret-scanning-alert-exclude-secret-types" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/secret-scanning-alert-exclude-providers" + "$ref": "#/components/parameters/package-version-id" + } + ], + "responses": { + "204": { + "description": "Response" }, - { - "$ref": "#/components/parameters/secret-scanning-alert-providers" + "404": { + "$ref": "#/components/responses/not_found" }, - { - "$ref": "#/components/parameters/secret-scanning-alert-resolution" + "403": { + "$ref": "#/components/responses/forbidden" }, + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } + } + }, + "/orgs/{org}/personal-access-token-requests": { + "get": { + "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": [ + "orgs" + ], + "operationId": "orgs/list-pat-grant-requests", + "externalDocs": { + "description": "API method documentation", + "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/secret-scanning-alert-assignee" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/secret-scanning-alert-sort" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/direction" + "$ref": "#/components/parameters/page" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/personal-access-token-sort" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/direction" }, { - "$ref": "#/components/parameters/secret-scanning-pagination-before-org-repo" + "$ref": "#/components/parameters/personal-access-token-owner" }, { - "$ref": "#/components/parameters/secret-scanning-pagination-after-org-repo" + "$ref": "#/components/parameters/personal-access-token-repository" }, { - "$ref": "#/components/parameters/secret-scanning-alert-validity" + "$ref": "#/components/parameters/personal-access-token-permission" }, { - "$ref": "#/components/parameters/secret-scanning-alert-publicly-leaked" + "$ref": "#/components/parameters/personal-access-token-before" }, { - "$ref": "#/components/parameters/secret-scanning-alert-multi-repo" + "$ref": "#/components/parameters/personal-access-token-after" }, { - "$ref": "#/components/parameters/secret-scanning-alert-hide-secret" + "$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": { @@ -32892,12 +32909,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/organization-secret-scanning-alert" + "$ref": "#/components/schemas/organization-programmatic-access-grant-request" } }, "examples": { "default": { - "$ref": "#/components/examples/organization-secret-scanning-alert-list" + "$ref": "#/components/examples/org-pat-grant-request-paginated" } } } @@ -32907,89 +32924,131 @@ "$ref": "#/components/headers/link" } } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "secret-scanning", - "subcategory": "secret-scanning" + "category": "orgs", + "subcategory": "personal-access-tokens" } - } - }, - "/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.", + }, + "post": { + "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": [ - "secret-scanning" + "orgs" ], - "operationId": "secret-scanning/list-org-pattern-configs", + "operationId": "orgs/review-pat-grant-requests-in-bulk", "externalDocs": { "description": "API method documentation", - "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" + "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/org" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/secret-scanning-pattern-configuration" + "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 + } }, - "examples": { - "default": { - "$ref": "#/components/examples/secret-scanning-pattern-configuration" + "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" }, - "403": { - "$ref": "#/components/responses/forbidden" + "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" } - }, - "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.", + } + }, + "/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": [ - "secret-scanning" + "orgs" ], - "operationId": "secret-scanning/update-org-pattern-configs", + "operationId": "orgs/review-pat-grant-request", "externalDocs": { "description": "API method documentation", - "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" + "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/org" + }, + { + "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" + } } ], "requestBody": { @@ -32999,74 +33058,31 @@ "schema": { "type": "object", "properties": { - "pattern_config_version": { - "$ref": "#/components/schemas/secret-scanning-row-version" - }, - "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" - ] - } - } - } + "action": { + "type": "string", + "description": "Action to apply to the request.", + "enum": [ + "approve", + "deny" + ] }, - "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" - ] - } - } - } + "reason": { + "type": "string", + "description": "Reason for approving or denying the request. Max 1024 characters.", + "maxLength": 1024, + "nullable": true } - } + }, + "required": [ + "action" + ] }, "examples": { - "default": { + "204": { + "summary": "Example of denying a request", "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" - } - ] + "action": "deny", + "reason": "This request is denied because the access is too broad." } } } @@ -33074,116 +33090,72 @@ } }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "pattern_config_version": { - "type": "string", - "description": "The updated pattern configuration version." - } - } - }, - "examples": { - "default": { - "value": { - "pattern_config_version": "0ujsswThIGTUYm2K8FjOOfXtY1K" - } - } - } - } - } - }, - "400": { - "$ref": "#/components/responses/bad_request" + "500": { + "$ref": "#/components/responses/internal_error" }, - "403": { - "$ref": "#/components/responses/forbidden" + "422": { + "$ref": "#/components/responses/validation_failed" }, "404": { "$ref": "#/components/responses/not_found" }, - "409": { - "$ref": "#/components/responses/conflict" + "403": { + "$ref": "#/components/responses/forbidden" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "204": { + "$ref": "#/components/responses/no_content" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "personal-access-tokens" } } }, - "/orgs/{org}/security-advisories": { + "/orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories": { "get": { - "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.", + "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": [ - "security-advisories" + "orgs" ], - "operationId": "security-advisories/list-org-repository-advisories", + "operationId": "orgs/list-pat-grant-request-repositories", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/security-advisories/repository-advisories#list-repository-security-advisories-for-an-organization" + "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/org" }, { - "$ref": "#/components/parameters/direction" - }, - { - "name": "sort", - "description": "The property to sort the results by.", - "in": "query", - "required": false, + "name": "pat_request_id", + "in": "path", + "description": "Unique identifier of the request for access via fine-grained personal access token.", + "required": true, "schema": { - "type": "string", - "enum": [ - "created", - "updated", - "published" - ], - "default": "created" + "type": "integer" } }, { - "$ref": "#/components/parameters/pagination-before" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/pagination-after" + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "500": { + "$ref": "#/components/responses/internal_error" }, - { - "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 - } + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "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": { "200": { "description": "Response", "content": { @@ -33191,186 +33163,112 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/repository-advisory" + "$ref": "#/components/schemas/minimal-repository" } }, "examples": { "default": { - "$ref": "#/components/examples/list-repository-advisories" + "$ref": "#/components/examples/minimal-repository-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "400": { - "$ref": "#/components/responses/bad_request" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "security-advisories", - "subcategory": "repository-advisories" + "category": "orgs", + "subcategory": "personal-access-tokens" } } }, - "/orgs/{org}/security-managers": { + "/orgs/{org}/personal-access-tokens": { "get": { - "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.", + "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": [ "orgs" ], - "operationId": "orgs/list-security-manager-teams", + "operationId": "orgs/list-pat-grants", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams" + "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/org" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team-simple" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/team-simple-items" - } - } - } - } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [], - "category": "orgs", - "subcategory": "security-managers", - "deprecationDate": "2024-12-01", - "removalDate": "2026-01-01" - }, - "deprecated": true - } - }, - "/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": [ - "orgs" - ], - "operationId": "orgs/add-security-manager-team", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team" - }, - "parameters": [ + }, { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/team-slug" - } - ], - "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 - }, - "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": [ - "orgs" - ], - "operationId": "orgs/remove-security-manager-team", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team" - }, - "parameters": [ + "$ref": "#/components/parameters/page" + }, { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/personal-access-token-sort" }, { - "$ref": "#/components/parameters/team-slug" - } - ], - "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/direction" + }, { - "$ref": "#/components/parameters/org" + "$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": "Immutable releases settings response", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/immutable-releases-organization-settings" + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-programmatic-access-grant" + } }, "examples": { "default": { - "value": { - "enforced_repositories": "all" - } + "$ref": "#/components/examples/org-pat-grant-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } }, @@ -33378,30 +33276,25 @@ "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "orgs" + "subcategory": "personal-access-tokens" } }, - "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.", + "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": [ "orgs" ], - "operationId": "orgs/set-immutable-releases-settings", + "operationId": "orgs/update-pat-accesses", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/orgs#set-immutable-releases-settings-for-an-organization" + "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/org" } ], - "responses": { - "204": { - "description": "Response" - } - }, "requestBody": { "required": true, "content": { @@ -33409,122 +33302,87 @@ "schema": { "type": "object", "properties": { - "enforced_repositories": { + "action": { "type": "string", - "description": "The policy that controls how immutable releases are enforced in the organization.", + "description": "Action to apply to the fine-grained personal access token.", "enum": [ - "all", - "none", - "selected" - ], - "example": "all" + "revoke" + ] }, - "selected_repository_ids": { + "pat_ids": { + "description": "The IDs of the fine-grained personal access tokens.", "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" - } + "type": "integer", + "description": "Unique identifier of the fine-grained personal access token." + }, + "minItems": 1, + "maxItems": 100 } }, "required": [ - "enforced_repositories" + "action", + "pat_ids" ] }, "examples": { - "default": { + "204": { + "summary": "Example of revoking a fine-grained personal access token.", "value": { - "enforced_repositories": "all" + "action": "revoke", + "pat_ids": [ + 1296269, + 1296280 + ] } } } } } }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "orgs" - } - } - }, - "/orgs/{org}/settings/immutable-releases/repositories": { - "get": { - "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": [ - "orgs" - ], - "operationId": "orgs/get-immutable-releases-settings-repositories", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/orgs#list-selected-repositories-for-immutable-releases-enforcement" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" + "responses": { + "500": { + "$ref": "#/components/responses/internal_error" }, - { - "$ref": "#/components/parameters/page" + "404": { + "$ref": "#/components/responses/not_found" }, - { - "$ref": "#/components/parameters/per-page" - } - ], - "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/public-repository-paginated" - } - } - } - } + "202": { + "$ref": "#/components/responses/accepted" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "orgs" + "subcategory": "personal-access-tokens" } - }, - "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.", + } + }, + "/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": [ "orgs" ], - "operationId": "orgs/set-immutable-releases-settings-repositories", + "operationId": "orgs/update-pat-access", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/orgs#set-selected-repositories-for-immutable-releases-enforcement" + "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/org" + }, + { + "$ref": "#/components/parameters/fine-grained-personal-access-token-id" } ], "requestBody": { @@ -33534,24 +33392,23 @@ "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" - } + "action": { + "type": "string", + "description": "Action to apply to the fine-grained personal access token.", + "enum": [ + "revoke" + ] } }, "required": [ - "selected_repository_ids" + "action" ] }, "examples": { - "default": { + "204": { + "summary": "Example of revoking a fine-grained personal access token.", "value": { - "selected_repository_ids": [ - 64780797 - ] + "action": "revoke" } } } @@ -33559,93 +33416,115 @@ } }, "responses": { + "500": { + "$ref": "#/components/responses/internal_error" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, "204": { - "description": "Response" + "$ref": "#/components/responses/no_content" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "orgs", - "subcategory": "orgs" + "subcategory": "personal-access-tokens" } } }, - "/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", + "/orgs/{org}/personal-access-tokens/{pat_id}/repositories": { + "get": { + "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": [ "orgs" ], + "operationId": "orgs/list-pat-grant-repositories", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/orgs#enable-a-selected-repository-for-immutable-releases-in-an-organization" + "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/org" }, { - "$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": [ + "name": "pat_id", + "in": "path", + "description": "Unique identifier of the fine-grained personal access token.", + "required": true, + "schema": { + "type": "integer" + } + }, { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/repository-id" + "$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, "category": "orgs", - "subcategory": "orgs" + "subcategory": "personal-access-tokens" } } }, - "/orgs/{org}/settings/network-configurations": { + "/orgs/{org}/private-registries": { "get": { - "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.", + "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": [ - "hosted-compute" + "private-registries" ], - "operationId": "hosted-compute/list-network-configurations-for-org", + "operationId": "private-registries/list-org-private-registries", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/network-configurations#list-hosted-compute-network-configurations-for-an-organization" + "url": "https://docs.github.com/rest/private-registries/organization-configurations#list-private-registries-for-an-organization" }, "parameters": [ { @@ -33667,23 +33546,23 @@ "type": "object", "required": [ "total_count", - "network_configurations" + "configurations" ], "properties": { "total_count": { "type": "integer" }, - "network_configurations": { + "configurations": { "type": "array", "items": { - "$ref": "#/components/schemas/network-configuration" + "$ref": "#/components/schemas/org-private-registry-configuration" } } } }, "examples": { "default": { - "$ref": "#/components/examples/network-configurations-paginated" + "$ref": "#/components/examples/org-private-registry-configurations-paginated" } } } @@ -33693,25 +33572,31 @@ "$ref": "#/components/headers/link" } } + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "network-configurations" + "category": "private-registries", + "subcategory": "organization-configurations" } }, "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.", + "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).\"\nFor OIDC-based registries (`oidc_azure`, `oidc_aws`, `oidc_jfrog`, `oidc_cloudsmith`, or `oidc_gcp`), the `encrypted_value` and `key_id` fields should be omitted.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "hosted-compute" + "private-registries" ], - "operationId": "hosted-compute/create-network-configuration-for-org", + "operationId": "private-registries/create-org-private-registry", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/network-configurations#create-a-hosted-compute-network-configuration-for-an-organization" + "url": "https://docs.github.com/rest/private-registries/organization-configurations#create-a-private-registry-for-an-organization" }, "parameters": [ { @@ -33725,54 +33610,207 @@ "schema": { "type": "object", "properties": { - "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 '_'.", + "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. Required when `auth_type` is `token` or `username_password`. Should be omitted for OIDC auth types.", + "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. Required when `auth_type` is `token` or `username_password`. Should be omitted for OIDC auth types.", "type": "string" }, - "compute_service": { - "description": "The hosted compute service to use for the network configuration.", + "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": [ - "none", - "actions" + "all", + "private", + "selected" ] }, - "network_settings_ids": { + "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", - "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" + "type": "integer" } }, - "failover_network_settings_ids": { - "type": "array", - "minItems": 0, - "maxItems": 1, - "description": "A list of identifiers of the failover network settings resources to use for the network configuration. Exactly one resource identifier must be specified in the list.", - "items": { - "type": "string" - } + "auth_type": { + "description": "The authentication type for the private registry. Defaults to `token` if not specified. Use `oidc_azure`, `oidc_aws`, `oidc_jfrog`, `oidc_cloudsmith`, or `oidc_gcp` for OIDC authentication.", + "type": "string", + "enum": [ + "token", + "username_password", + "oidc_azure", + "oidc_aws", + "oidc_jfrog", + "oidc_cloudsmith", + "oidc_gcp" + ] }, - "failover_network_enabled": { - "type": "boolean", - "description": "Indicates whether the failover network resource is enabled." + "tenant_id": { + "description": "The tenant ID of the Azure AD application. Required when `auth_type` is `oidc_azure`.", + "type": "string" + }, + "client_id": { + "description": "The client ID of the Azure AD application. Required when `auth_type` is `oidc_azure`.", + "type": "string" + }, + "aws_region": { + "description": "The AWS region. Required when `auth_type` is `oidc_aws`.", + "type": "string" + }, + "account_id": { + "description": "The AWS account ID. Required when `auth_type` is `oidc_aws`.", + "type": "string" + }, + "role_name": { + "description": "The AWS IAM role name. Required when `auth_type` is `oidc_aws`.", + "type": "string" + }, + "domain": { + "description": "The CodeArtifact domain. Required when `auth_type` is `oidc_aws`.", + "type": "string" + }, + "domain_owner": { + "description": "The CodeArtifact domain owner (AWS account ID). Required when `auth_type` is `oidc_aws`.", + "type": "string" + }, + "jfrog_oidc_provider_name": { + "description": "The JFrog OIDC provider name. Required when `auth_type` is `oidc_jfrog`.", + "type": "string" + }, + "audience": { + "description": "The OIDC audience. Optional for `oidc_aws`, `oidc_jfrog`, and `oidc_gcp`, and required for `oidc_cloudsmith` auth types.", + "type": "string" + }, + "identity_mapping_name": { + "description": "The JFrog identity mapping name. Optional for `oidc_jfrog` auth type.", + "type": "string" + }, + "namespace": { + "description": "The Cloudsmith organization namespace. Required when `auth_type` is `oidc_cloudsmith`.", + "type": "string" + }, + "service_slug": { + "description": "The Cloudsmith service account slug. Required when `auth_type` is `oidc_cloudsmith`.", + "type": "string" + }, + "api_host": { + "description": "The Cloudsmith API host. Optional for `oidc_cloudsmith` auth type. If omitted, `api.cloudsmith.io` is used by default.", + "type": "string" + }, + "workload_identity_provider": { + "description": "The full resource name of the GCP Workload Identity Provider (e.g. `projects//locations/global/workloadIdentityPools//providers/`). Required when `auth_type` is `oidc_gcp`.", + "type": "string" + }, + "service_account": { + "description": "The GCP service account email to impersonate. Optional for `oidc_gcp` auth type. If omitted, the federated token is used directly (direct WIF).", + "type": "string" } }, "required": [ - "name", - "network_settings_ids" + "registry_type", + "url", + "visibility" ] }, "examples": { - "default": { + "org-private-registry-with-private-visibility": { + "summary": "Example of a private registry configuration with private visibility", "value": { - "name": "my-network-configuration", - "network_settings_ids": [ - "23456789ABDCEF1" - ], - "compute_service": "actions" + "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 + ] + } + }, + "org-private-registry-with-oidc-azure": { + "summary": "Example of an OIDC private registry configuration using Azure", + "value": { + "registry_type": "docker_registry", + "url": "https://myregistry.azurecr.io", + "auth_type": "oidc_azure", + "visibility": "all", + "tenant_id": "12345678-1234-1234-1234-123456789012", + "client_id": "abcdef01-2345-6789-abcd-ef0123456789" + } + }, + "org-private-registry-with-oidc-cloudsmith": { + "summary": "Example of an OIDC private registry configuration using Cloudsmith", + "value": { + "registry_type": "npm_registry", + "url": "https://npm.cloudsmith.io/my-org/my-repo/", + "auth_type": "oidc_cloudsmith", + "visibility": "all", + "namespace": "my-org", + "service_slug": "my-service-account", + "audience": "https://github.com/my-org" + } + }, + "org-private-registry-with-oidc-gcp": { + "summary": "Example of an OIDC private registry configuration using Google Cloud Artifact Registry", + "value": { + "registry_type": "docker_registry", + "url": "https://us-docker.pkg.dev/my-project/my-repo", + "auth_type": "oidc_gcp", + "visibility": "all", + "workload_identity_provider": "projects/123456789/locations/global/workloadIdentityPools/github-pool/providers/github-provider", + "service_account": "dependabot@my-project.iam.gserviceaccount.com" } } } @@ -33781,47 +33819,53 @@ }, "responses": { "201": { - "description": "Response", + "description": "The organization private registry configuration", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/network-configuration" + "$ref": "#/components/schemas/org-private-registry-configuration-with-selected-repositories" }, "examples": { - "default": { - "$ref": "#/components/examples/network-configuration" + "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": "orgs", - "subcategory": "network-configurations" + "category": "private-registries", + "subcategory": "organization-configurations" } } }, - "/orgs/{org}/settings/network-configurations/{network_configuration_id}": { + "/orgs/{org}/private-registries/public-key": { "get": { - "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.", + "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": [ - "hosted-compute" + "private-registries" ], - "operationId": "hosted-compute/get-network-configuration-for-org", + "operationId": "private-registries/get-org-public-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/network-configurations#get-a-hosted-compute-network-configuration-for-an-organization" + "url": "https://docs.github.com/rest/private-registries/organization-configurations#get-private-registries-public-key-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/network-configuration-id" } ], "responses": { @@ -33830,11 +33874,27 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/network-configuration" + "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/network-configuration" + "$ref": "#/components/examples/private-registries-public-key" } } } @@ -33844,32 +33904,83 @@ "$ref": "#/components/headers/link" } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "network-configurations" + "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/org" + }, + { + "$ref": "#/components/parameters/secret-name" + } + ], + "responses": { + "200": { + "description": "The specified private registry configuration for the organization", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/org-private-registry-configuration" + }, + "examples": { + "default": { + "$ref": "#/components/examples/org-private-registry-configuration" + } + } + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "private-registries", + "subcategory": "organization-configurations" } }, "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.", + "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).\"\nFor OIDC-based registries (`oidc_azure`, `oidc_aws`, `oidc_jfrog`, `oidc_cloudsmith`, or `oidc_gcp`), the `encrypted_value` and `key_id` fields should be omitted.\n\nOAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint.", "tags": [ - "hosted-compute" + "private-registries" ], - "operationId": "hosted-compute/update-network-configuration-for-org", + "operationId": "private-registries/update-org-private-registry", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/network-configurations#update-a-hosted-compute-network-configuration-for-an-organization" + "url": "https://docs.github.com/rest/private-registries/organization-configurations#update-a-private-registry-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/network-configuration-id" + "$ref": "#/components/parameters/secret-name" } ], "requestBody": { @@ -33879,50 +33990,160 @@ "schema": { "type": "object", "properties": { - "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 '_'.", + "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" }, - "compute_service": { - "description": "The hosted compute service to use for the network configuration.", + "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": [ - "none", - "actions" + "all", + "private", + "selected" ] }, - "network_settings_ids": { + "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", - "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" + "type": "integer" } }, - "failover_network_settings_ids": { - "type": "array", - "minItems": 0, - "maxItems": 1, - "description": "A list of identifiers of the failover network settings resources to use for the network configuration. Exactly one resource identifier must be specified in the list.", - "items": { - "type": "string" - } + "auth_type": { + "description": "The authentication type for the private registry. This field cannot be changed after creation. If provided, it must match the existing `auth_type` of the configuration. To change the authentication type, delete and recreate the configuration.", + "type": "string", + "enum": [ + "token", + "username_password", + "oidc_azure", + "oidc_aws", + "oidc_jfrog", + "oidc_cloudsmith", + "oidc_gcp" + ] }, - "failover_network_enabled": { - "type": "boolean", - "description": "Indicates whether the failover network resource is enabled." + "tenant_id": { + "description": "The tenant ID of the Azure AD application. Required when `auth_type` is `oidc_azure`.", + "type": "string" + }, + "client_id": { + "description": "The client ID of the Azure AD application. Required when `auth_type` is `oidc_azure`.", + "type": "string" + }, + "aws_region": { + "description": "The AWS region. Required when `auth_type` is `oidc_aws`.", + "type": "string" + }, + "account_id": { + "description": "The AWS account ID. Required when `auth_type` is `oidc_aws`.", + "type": "string" + }, + "role_name": { + "description": "The AWS IAM role name. Required when `auth_type` is `oidc_aws`.", + "type": "string" + }, + "domain": { + "description": "The CodeArtifact domain. Required when `auth_type` is `oidc_aws`.", + "type": "string" + }, + "domain_owner": { + "description": "The CodeArtifact domain owner (AWS account ID). Required when `auth_type` is `oidc_aws`.", + "type": "string" + }, + "jfrog_oidc_provider_name": { + "description": "The JFrog OIDC provider name. Required when `auth_type` is `oidc_jfrog`.", + "type": "string" + }, + "audience": { + "description": "The OIDC audience. Optional for `oidc_aws`, `oidc_jfrog`, and `oidc_gcp`, and required for `oidc_cloudsmith` auth types.", + "type": "string" + }, + "identity_mapping_name": { + "description": "The JFrog identity mapping name. Optional for `oidc_jfrog` auth type.", + "type": "string" + }, + "namespace": { + "description": "The Cloudsmith organization namespace. Required when `auth_type` is `oidc_cloudsmith`.", + "type": "string" + }, + "service_slug": { + "description": "The Cloudsmith service account slug. Required when `auth_type` is `oidc_cloudsmith`.", + "type": "string" + }, + "api_host": { + "description": "The Cloudsmith API host. Optional for `oidc_cloudsmith` auth type. If omitted, `api.cloudsmith.io` is used by default.", + "type": "string" + }, + "workload_identity_provider": { + "description": "The full resource name of the GCP Workload Identity Provider (e.g. `projects//locations/global/workloadIdentityPools//providers/`). Required when `auth_type` is `oidc_gcp`.", + "type": "string" + }, + "service_account": { + "description": "The GCP service account email to impersonate. Optional for `oidc_gcp` auth type. If omitted, the federated token is used directly (direct WIF).", + "type": "string" } } }, "examples": { - "default": { + "secret-based-update": { + "summary": "Update a secret-based private registry", "value": { - "name": "my-network-configuration", - "network_settings_ids": [ - "23456789ABDCEF1" - ], - "compute_service": "actions" + "username": "monalisa", + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678" + } + }, + "oidc-azure-update": { + "summary": "Update an OIDC private registry (Azure)", + "value": { + "tenant_id": "12345678-1234-1234-1234-123456789012", + "visibility": "selected", + "selected_repository_ids": [ + 1296269, + 1296280 + ] } } } @@ -33930,133 +34151,80 @@ } }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/network-configuration" - }, - "examples": { - "default": { - "$ref": "#/components/examples/network-configuration" - } - } - } - } + "204": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "network-configurations" + "category": "private-registries", + "subcategory": "organization-configurations" } }, "delete": { - "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.", + "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": [ - "hosted-compute" + "private-registries" ], - "operationId": "hosted-compute/delete-network-configuration-from-org", + "operationId": "private-registries/delete-org-private-registry", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/network-configurations#delete-a-hosted-compute-network-configuration-from-an-organization" + "url": "https://docs.github.com/rest/private-registries/organization-configurations#delete-a-private-registry-for-an-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/network-configuration-id" + "$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, - "category": "orgs", - "subcategory": "network-configurations" - } - } - }, - "/orgs/{org}/settings/network-settings/{network_settings_id}": { - "get": { - "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": [ - "hosted-compute" - ], - "operationId": "hosted-compute/get-network-settings-for-org", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/network-configurations#get-a-hosted-compute-network-settings-resource-for-an-organization" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" - }, - { - "$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" + "category": "private-registries", + "subcategory": "organization-configurations" } } }, - "/orgs/{org}/team/{team_slug}/copilot/metrics": { + "/orgs/{org}/projectsV2": { "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.", + "summary": "List projects for organization", + "description": "List all projects owned by a specific organization accessible by the authenticated user.", "tags": [ - "copilot" + "projects" ], - "operationId": "copilot/copilot-metrics-for-team", + "operationId": "projects/list-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/copilot/copilot-metrics#get-copilot-metrics-for-a-team" + "url": "https://docs.github.com/rest/projects/projects#list-projects-for-organization" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" - }, - { - "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.", + "name": "q", + "description": "Limit results to projects of the specified type.", "in": "query", "required": false, "schema": { @@ -34064,25 +34232,13 @@ } }, { - "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/pagination-before" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/pagination-after" }, { - "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 - } + "$ref": "#/components/parameters/per-page" } ], "responses": { @@ -34093,62 +34249,58 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/copilot-usage-metrics-day" + "$ref": "#/components/schemas/projects-v2" } }, "examples": { "default": { - "$ref": "#/components/examples/copilot-usage-metrics-for-day" + "$ref": "#/components/examples/projects-v2" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "500": { - "$ref": "#/components/responses/internal_error" + "304": { + "$ref": "#/components/responses/not_modified" }, "403": { "$ref": "#/components/responses/forbidden" }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/usage_metrics_api_disabled" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "copilot", - "subcategory": "copilot-metrics" + "category": "projects", + "subcategory": "projects" } } }, - "/orgs/{org}/teams": { + "/orgs/{org}/projectsV2/{project_number}": { "get": { - "summary": "List teams", - "description": "Lists all teams in an organization that are visible to the authenticated user.", + "summary": "Get project for organization", + "description": "Get a specific organization-owned project.", "tags": [ - "teams" + "projects" ], - "operationId": "teams/list", + "operationId": "projects/get-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/teams#list-teams" + "url": "https://docs.github.com/rest/projects/projects#get-project-for-organization" }, "parameters": [ { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/project-number" }, { - "$ref": "#/components/parameters/team-type" + "$ref": "#/components/parameters/org" } ], "responses": { @@ -34157,14 +34309,11 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team" - } + "$ref": "#/components/schemas/projects-v2" }, "examples": { "default": { - "$ref": "#/components/examples/team-items" + "$ref": "#/components/examples/projects-v2" } } } @@ -34175,104 +34324,77 @@ } } }, + "304": { + "$ref": "#/components/responses/not_modified" + }, "403": { "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "teams", - "subcategory": "teams" + "category": "projects", + "subcategory": "projects" } - }, + } + }, + "/orgs/{org}/projectsV2/{project_number}/drafts": { "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)\".", + "summary": "Create draft item for organization owned project", + "description": "Create draft issue item for the specified organization owned project.", "tags": [ - "teams" + "projects" ], - "operationId": "teams/create", + "operationId": "projects/create-draft-item-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/teams#create-a-team" + "url": "https://docs.github.com/rest/projects/drafts#create-draft-item-for-organization-owned-project" }, "parameters": [ { "$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": { "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": { + "title": { "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" - ] + "description": "The title of the draft issue item to create in the project." }, - "permission": { + "body": { "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." + "description": "The body content of the draft issue item to create in the project." } }, "required": [ - "name" + "title" ] }, "examples": { - "default": { + "title": { + "summary": "Example with Sample Draft Issue Title", "value": { - "name": "Justice League", - "description": "A great team", - "permission": "push", - "notification_setting": "notifications_enabled", - "privacy": "closed" + "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." } } } @@ -34285,69 +34407,61 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-full" + "$ref": "#/components/schemas/projects-v2-item-simple" }, "examples": { - "default": { - "$ref": "#/components/examples/team-full" + "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" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "teams", - "subcategory": "teams" - }, - "x-github-breaking-changes": [ - { - "changeset": "remove_team_permission", - "patch": { - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "properties": { - "permission": null - } - } - } - } - } - }, - "version": "2026-03-10" - } - ] + "category": "projects", + "subcategory": "drafts" + } } }, - "/orgs/{org}/teams/{team_slug}": { + "/orgs/{org}/projectsV2/{project_number}/fields": { "get": { - "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}`.", + "summary": "List project fields for organization", + "description": "List all fields for a specific organization-owned project.", "tags": [ - "teams" + "projects" ], - "operationId": "teams/get-by-name", + "operationId": "projects/list-fields-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/teams#get-a-team-by-name" + "url": "https://docs.github.com/rest/projects/fields#list-project-fields-for-organization" }, "parameters": [ + { + "$ref": "#/components/parameters/project-number" + }, { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" } ], "responses": { @@ -34356,214 +34470,260 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-full" + "type": "array", + "items": { + "$ref": "#/components/schemas/projects-v2-field" + } }, "examples": { "default": { - "$ref": "#/components/examples/team-full" + "$ref": "#/components/examples/projects-v2-field-items" } } } + }, + "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, - "category": "teams", - "subcategory": "teams" + "category": "projects", + "subcategory": "fields" } }, - "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}`.", + "post": { + "summary": "Add a field to an organization-owned project.", + "description": "Add a field to an organization-owned project.", "tags": [ - "teams" + "projects" ], - "operationId": "teams/update-in-org", + "operationId": "projects/add-field-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/teams#update-a-team" + "url": "https://docs.github.com/rest/projects/fields#add-a-field-to-an-organization-owned-project" }, "parameters": [ { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/project-number" }, { - "$ref": "#/components/parameters/team-slug" + "$ref": "#/components/parameters/org" } ], "requestBody": { - "required": false, + "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. 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" - ] + "oneOf": [ + { + "type": "object", + "properties": { + "issue_field_id": { + "type": "integer", + "description": "The ID of the IssueField to create the field for." + } + }, + "required": [ + "issue_field_id" + ], + "additionalProperties": false }, - "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" - ] + { + "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 }, - "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" + { + "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" ], - "default": "pull" + "additionalProperties": false }, - "parent_team_id": { - "type": "integer", - "description": "The ID of a team to set as the parent team.", - "nullable": true + { + "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": { - "default": { + "text_field": { + "summary": "Create a text field", "value": { - "name": "new team name", - "description": "new team description", - "privacy": "closed", - "notification_setting": "notifications_enabled" + "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 when the updated information already exists", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/team-full" - }, - "examples": { - "default": { - "$ref": "#/components/examples/team-full" - } - } - } - } - }, "201": { - "description": "Response", + "description": "Response for adding a field to an organization-owned project.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-full" + "$ref": "#/components/schemas/projects-v2-field" }, "examples": { - "default": { - "$ref": "#/components/examples/team-full" + "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" - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "304": { + "$ref": "#/components/responses/not_modified" }, "403": { "$ref": "#/components/responses/forbidden" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "teams", - "subcategory": "teams" - } - }, - "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": [ - "teams" - ], - "operationId": "teams/delete-in-org", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/teams#delete-a-team" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" }, - { - "$ref": "#/components/parameters/team-slug" - } - ], - "responses": { - "204": { - "description": "Response" + "401": { + "$ref": "#/components/responses/requires_authentication" }, "422": { - "$ref": "#/components/responses/enterprise_team_unsupported" + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "teams", - "subcategory": "teams" + "category": "projects", + "subcategory": "fields" } } }, - "/orgs/{org}/teams/{team_slug}/invitations": { + "/orgs/{org}/projectsV2/{project_number}/fields/{field_id}": { "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]\n> You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/invitations`.", + "summary": "Get project field for organization", + "description": "Get a specific field for an organization-owned project.", "tags": [ - "teams" + "projects" ], - "operationId": "teams/list-pending-invitations-in-org", + "operationId": "projects/get-field-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/members#list-pending-team-invitations" + "url": "https://docs.github.com/rest/projects/fields#get-project-field-for-organization" }, "parameters": [ { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/team-slug" + "$ref": "#/components/parameters/project-number" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/field-id" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/org" } ], "responses": { @@ -34572,14 +34732,11 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/organization-invitation" - } + "$ref": "#/components/schemas/projects-v2-field" }, "examples": { "default": { - "$ref": "#/components/examples/organization-invitation-items" + "$ref": "#/components/examples/projects-v2-field" } } } @@ -34590,57 +34747,80 @@ } } }, - "422": { - "$ref": "#/components/responses/enterprise_team_unsupported" + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "teams", - "subcategory": "members" + "category": "projects", + "subcategory": "fields" } } }, - "/orgs/{org}/teams/{team_slug}/members": { + "/orgs/{org}/projectsV2/{project_number}/items": { "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": "List items for an organization owned project", + "description": "List all items for a specific organization-owned project accessible by the authenticated user.", "tags": [ - "teams" + "projects" ], - "operationId": "teams/list-members-in-org", + "operationId": "projects/list-items-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/members#list-team-members" + "url": "https://docs.github.com/rest/projects/items#list-items-for-an-organization-owned-project" }, "parameters": [ + { + "$ref": "#/components/parameters/project-number" + }, { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" + "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": "role", - "description": "Filters members returned by their role in the team.", + "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": { - "type": "string", - "enum": [ - "member", - "maintainer", - "all" - ], - "default": "all" + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "maxItems": 50, + "items": { + "type": "string" + } + } + ] } }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/pagination-before" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/pagination-after" + }, + { + "$ref": "#/components/parameters/per-page" } ], "responses": { @@ -34651,12 +34831,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/simple-user" + "$ref": "#/components/schemas/projects-v2-item-with-content" } }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/projects-v2-item-with-content" } } } @@ -34666,111 +34846,126 @@ "$ref": "#/components/headers/link" } } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "teams", - "subcategory": "members" - } - } - }, - "/orgs/{org}/teams/{team_slug}/memberships/{username}": { - "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]\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": [ - "teams" - ], - "operationId": "teams/get-membership-for-user-in-org", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/members#get-team-membership-for-a-user" - }, - "parameters": [ - { - "$ref": "#/components/parameters/org" }, - { - "$ref": "#/components/parameters/team-slug" + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "$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" - } - } - } - } + "403": { + "$ref": "#/components/responses/forbidden" }, - "404": { - "description": "if user has no team membership" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "teams", - "subcategory": "members" + "category": "projects", + "subcategory": "items" } }, - "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}`.", + "post": { + "summary": "Add item to organization owned project", + "description": "Add an issue or pull request item to the specified organization owned project.", "tags": [ - "teams" + "projects" ], - "operationId": "teams/add-or-update-membership-for-user-in-org", + "operationId": "projects/add-item-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user" + "url": "https://docs.github.com/rest/projects/items#add-item-to-organization-owned-project" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/project-number" } ], "requestBody": { - "required": false, + "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": { - "role": { + "type": { "type": "string", - "description": "The role that this user should have in the team.", "enum": [ - "member", - "maintainer" + "Issue", + "PullRequest" ], - "default": "member" + "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" + ] + } + ] }, "examples": { - "default": { - "summary": "Add or update team membership for an organization member", + "issue_with_id": { + "summary": "Add an issue using its unique ID", "value": { - "role": "maintainer" + "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 } } } @@ -34778,97 +34973,101 @@ } }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-membership" + "$ref": "#/components/schemas/projects-v2-item-simple" }, "examples": { - "response-if-users-membership-with-team-is-now-pending": { - "$ref": "#/components/examples/team-membership-response-if-users-membership-with-team-is-now-pending" + "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" + } } } } } }, - "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, - "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" + "304": { + "$ref": "#/components/responses/not_modified" }, "403": { - "description": "Forbidden if team synchronization is set up" + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "teams", - "subcategory": "members" + "category": "projects", + "subcategory": "items" } } }, - "/orgs/{org}/teams/{team_slug}/repos": { + "/orgs/{org}/projectsV2/{project_number}/items/{item_id}": { "get": { - "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`.", + "summary": "Get an item for an organization owned project", + "description": "Get a specific item from an organization-owned project.", "tags": [ - "teams" + "projects" ], - "operationId": "teams/list-repos-in-org", + "operationId": "projects/get-org-item", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/teams#list-team-repositories" + "url": "https://docs.github.com/rest/projects/items#get-an-item-for-an-organization-owned-project" }, "parameters": [ { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/project-number" }, { - "$ref": "#/components/parameters/team-slug" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/item-id" }, { - "$ref": "#/components/parameters/page" + "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": { @@ -34877,14 +35076,11 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/minimal-repository" - } + "$ref": "#/components/schemas/projects-v2-item-with-content" }, "examples": { "default": { - "$ref": "#/components/examples/minimal-repository-items" + "$ref": "#/components/examples/projects-v2-item-with-content" } } } @@ -34894,115 +35090,142 @@ "$ref": "#/components/headers/link" } } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "teams", - "subcategory": "teams" - } - } - }, - "/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": { - "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/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": [ - "teams" - ], - "operationId": "teams/check-permissions-for-repo-in-org", - "externalDocs": { - "description": "API method documentation", - "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" - }, - { - "$ref": "#/components/parameters/repo" - } - ], - "responses": { - "200": { - "description": "Alternative response with repository permissions", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/team-repository" - }, - "examples": { - "alternative-response-with-repository-permissions": { - "$ref": "#/components/examples/team-repository-alternative-response-with-repository-permissions" - } - } - } - } + "304": { + "$ref": "#/components/responses/not_modified" }, - "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." + "403": { + "$ref": "#/components/responses/forbidden" }, - "404": { - "description": "Not Found if team does not have permission for the repository" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "teams", - "subcategory": "teams" + "category": "projects", + "subcategory": "items" } }, - "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)\".", + "patch": { + "summary": "Update project item for organization", + "description": "Update a specific item in an organization-owned project.", "tags": [ - "teams" + "projects" ], - "operationId": "teams/add-or-update-repo-permissions-in-org", + "operationId": "projects/update-item-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions" + "url": "https://docs.github.com/rest/projects/items#update-project-item-for-organization" }, "parameters": [ { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/team-slug" + "$ref": "#/components/parameters/project-number" }, { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/item-id" } ], "requestBody": { - "required": false, + "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": { - "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." + "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": { - "default": { - "summary": "Adding a team to an organization repository with the write role", + "text_field": { + "summary": "Update a text field", "value": { - "permission": "push" + "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" + } + ] } } } @@ -35010,102 +35233,302 @@ } }, "responses": { - "204": { - "description": "Response" + "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" + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "teams", - "subcategory": "teams" + "category": "projects", + "subcategory": "items" } }, "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}`.", + "summary": "Delete project item for organization", + "description": "Delete a specific item from an organization-owned project.", "tags": [ - "teams" + "projects" ], - "operationId": "teams/remove-repo-in-org", + "operationId": "projects/delete-item-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team" + "url": "https://docs.github.com/rest/projects/items#delete-project-item-for-organization" }, "parameters": [ { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/team-slug" + "$ref": "#/components/parameters/project-number" }, { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/item-id" } ], "responses": { "204": { "description": "Response" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "teams", - "subcategory": "teams" + "category": "projects", + "subcategory": "items" } } }, - "/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`.", + "/orgs/{org}/projectsV2/{project_number}/views": { + "post": { + "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": [ - "teams" + "projects" ], - "operationId": "teams/list-child-in-org", + "operationId": "projects/create-view-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/teams#list-child-teams" + "url": "https://docs.github.com/rest/projects/views#create-a-view-for-an-organization-owned-project" }, "parameters": [ { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/team-slug" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$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 + ] + }, + "sort_by": { + "type": "array", + "description": "Sorting configuration for the view. Each element is a two-element array of `[field_id, direction]` where `direction` is `\"asc\"` or `\"desc\"`. Supports multiple sort criteria applied in order.", + "items": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ] + } + }, + "example": [ + [ + 123, + "asc" + ], + [ + 456, + "desc" + ] + ] + }, + "group_by": { + "type": "array", + "description": "The field IDs to group items by (horizontal grouping). Supports a single field. The field must support grouping; fields such as `Title`, `Reviewers`, `Linked pull requests`, `Sub-issues progress`, `Tracked by`, and `Tracks` cannot be grouped on.", + "items": { + "type": "integer" + }, + "maxItems": 1, + "example": [ + 123 + ] + }, + "vertical_group_by": { + "type": "array", + "description": "The field IDs to use as columns in `board` layout (vertical grouping). Supports a single field. The field must support grouping; fields such as `Title`, `Reviewers`, `Linked pull requests`, `Sub-issues progress`, `Tracked by`, and `Tracks` cannot be grouped on.", + "items": { + "type": "integer" + }, + "maxItems": 1, + "example": [ + 456 + ] + } + }, + "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": "if child teams exist", + "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": { - "response-if-child-teams-exist": { - "$ref": "#/components/examples/team-items-response-if-child-teams-exist" + "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" + } } } } - }, - "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" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "503": { + "description": "Service unavailable", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } } } } @@ -35113,121 +35536,96 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "teams", - "subcategory": "teams" + "category": "projects", + "subcategory": "views" } } }, - "/orgs/{org}/{security_product}/{enablement}": { - "post": { - "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.", + "/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": [ - "orgs" + "projects" ], - "operationId": "orgs/enable-or-disable-security-product-on-all-org-repos", + "operationId": "projects/list-view-items-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/orgs#enable-or-disable-a-security-feature-for-an-organization" + "url": "https://docs.github.com/rest/projects/items#list-items-for-an-organization-project-view" }, "parameters": [ + { + "$ref": "#/components/parameters/project-number" + }, { "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/security-product" + "$ref": "#/components/parameters/view-number" }, { - "$ref": "#/components/parameters/org-security-product-enablement" - } - ], - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "properties": { - "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", - "enum": [ - "default", - "extended" - ] + "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" } } - }, - "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" + { + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" + }, + { + "$ref": "#/components/parameters/per-page" } - }, - "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/rate-limit-overview" + "type": "array", + "items": { + "$ref": "#/components/schemas/projects-v2-item-with-content" + } }, "examples": { "default": { - "$ref": "#/components/examples/rate-limit-overview" + "$ref": "#/components/examples/projects-v2-item-with-content" } } } }, "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" + "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" } @@ -35235,29 +35633,26 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "rate-limit", - "subcategory": "rate-limit" + "category": "projects", + "subcategory": "items" } } }, - "/repos/{owner}/{repo}": { + "/orgs/{org}/properties/schema": { "get": { - "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.", + "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", + "operationId": "orgs/custom-properties-for-repos-get-organization-definitions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#get-a-repository" + "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/org" } ], "responses": { @@ -35266,11 +35661,14 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/full-repository" + "type": "array", + "items": { + "$ref": "#/components/schemas/custom-property" + } }, "examples": { - "default-response": { - "$ref": "#/components/examples/full-repository-default-response" + "default": { + "$ref": "#/components/examples/custom-properties" } } } @@ -35281,317 +35679,78 @@ }, "404": { "$ref": "#/components/responses/not_found" - }, - "301": { - "$ref": "#/components/responses/moved_permanently" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "repos" + "category": "orgs", + "subcategory": "custom-properties" } }, "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.", + "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/update", + "operationId": "orgs/custom-properties-for-repos-create-or-update-organization-definitions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#update-a-repository" + "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/org" } ], "requestBody": { - "required": false, + "required": true, "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://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 visibility of the repository.", - "enum": [ - "public", - "private" - ] - }, - "security_and_analysis": { - "type": "object", - "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": { - "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`." - } - } - }, - "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`." - } - } - }, - "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`." - } - } - }, - "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`." - } - } - }, - "secret_scanning_delegated_alert_dismissal": { - "type": "object", - "description": "Use the `status` property to enable or disable secret scanning delegated alert dismissal for this repository.", - "properties": { - "status": { - "type": "string", - "description": "Can be `enabled` or `disabled`." - } - } - }, - "secret_scanning_delegated_bypass": { - "type": "object", - "description": "Use the `status` property to enable or disable secret scanning delegated bypass for this repository.", - "properties": { - "status": { - "type": "string", - "description": "Can be `enabled` or `disabled`." - } - } - }, - "secret_scanning_delegated_bypass_options": { - "type": "object", - "description": "Feature options for secret scanning delegated bypass.\nThis object is only honored when `security_and_analysis.secret_scanning_delegated_bypass.status` is set to `enabled`.\nYou can send this object in the same request as `secret_scanning_delegated_bypass`, or update just the options in a separate request.", - "properties": { - "reviewers": { - "type": "array", - "description": "The bypass reviewers for secret scanning delegated bypass.\nIf you omit this field, the existing set of reviewers is unchanged.", - "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" - ] - }, - "mode": { - "type": "string", - "description": "The bypass mode for the reviewer", - "enum": [ - "ALWAYS", - "EXEMPT" - ], - "default": "ALWAYS" - } - } - } - } - } - } - } - }, - "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 + "properties": { + "type": "array", + "description": "The array of custom properties to create or update.", + "items": { + "$ref": "#/components/schemas/custom-property" + }, + "minItems": 1, + "maxItems": 100 } - } + }, + "required": [ + "properties" + ] }, "examples": { "default": { "value": { - "name": "Hello-World", - "description": "This is your first repository", - "homepage": "https://github.com", - "private": true, - "has_issues": true, - "has_projects": true, - "has_wiki": true + "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" + } + ] } } } @@ -35604,25 +35763,22 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/full-repository" + "type": "array", + "items": { + "$ref": "#/components/schemas/custom-property" + } }, "examples": { "default": { - "$ref": "#/components/examples/full-repository" + "$ref": "#/components/examples/custom-properties" } } } } }, - "307": { - "$ref": "#/components/responses/temporary_redirect" - }, "403": { "$ref": "#/components/responses/forbidden" }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, "404": { "$ref": "#/components/responses/not_found" } @@ -35630,319 +35786,226 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "repos" + "category": "orgs", + "subcategory": "custom-properties" } - }, - "delete": { - "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.", + } + }, + "/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/delete", + "operationId": "orgs/custom-properties-for-repos-get-organization-definition", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#delete-a-repository" + "url": "https://docs.github.com/rest/orgs/custom-properties#get-a-custom-property-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/custom-property-name" } ], "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" - } - } + "$ref": "#/components/schemas/custom-property" }, "examples": { "default": { - "value": { - "message": "Organization members cannot delete repositories.", - "documentation_url": "https://docs.github.com/rest/repos/repos#delete-a-repository" - } + "$ref": "#/components/examples/custom-property" } } } } }, - "307": { - "$ref": "#/components/responses/temporary_redirect" + "403": { + "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" - }, - "409": { - "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "repos" + "category": "orgs", + "subcategory": "custom-properties" } - } - }, - "/repos/{owner}/{repo}/actions/artifacts": { - "get": { - "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.", + }, + "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": [ - "actions" + "orgs" ], - "operationId": "actions/list-artifacts-for-repo", + "operationId": "orgs/custom-properties-for-repos-create-or-update-organization-definition", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/artifacts#list-artifacts-for-a-repository" + "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/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/artifact-name" + "$ref": "#/components/parameters/custom-property-name" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$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" + ] + } + } + } + } + } + }, "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/custom-property" }, "examples": { "default": { - "$ref": "#/components/examples/artifact-paginated" + "$ref": "#/components/examples/custom-property" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "artifacts" + "category": "orgs", + "subcategory": "custom-properties" } - } - }, - "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}": { - "get": { - "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.", + }, + "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": [ - "actions" + "orgs" ], - "operationId": "actions/get-artifact", + "operationId": "orgs/custom-properties-for-repos-delete-organization-definition", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/artifacts#get-an-artifact" + "url": "https://docs.github.com/rest/orgs/custom-properties#remove-a-custom-property-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/artifact-id" + "$ref": "#/components/parameters/custom-property-name" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/artifact" - }, - "examples": { - "default": { - "$ref": "#/components/examples/artifact" - } - } - } - } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "artifacts" - } - }, - "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": [ - "actions" - ], - "operationId": "actions/delete-artifact", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/artifacts#delete-an-artifact" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" + "204": { + "$ref": "#/components/responses/no_content" }, - { - "$ref": "#/components/parameters/repo" + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "$ref": "#/components/parameters/artifact-id" - } - ], - "responses": { - "204": { - "description": "Response" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "artifacts" + "category": "orgs", + "subcategory": "custom-properties" } } }, - "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}": { + "/orgs/{org}/properties/values": { "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`.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "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": [ - "actions" + "orgs" ], - "operationId": "actions/download-artifact", + "operationId": "orgs/custom-properties-for-repos-get-organization-values", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/artifacts#download-an-artifact" + "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/artifact-id" + "$ref": "#/components/parameters/page" }, { - "name": "archive_format", - "in": "path", - "required": true, + "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": { - "302": { - "description": "Response", - "headers": { - "Location": { - "$ref": "#/components/headers/location" - } - } - }, - "410": { - "$ref": "#/components/responses/gone" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "artifacts" - } - } - }, - "/repos/{owner}/{repo}/actions/cache/retention-limit": { - "get": { - "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": [ - "actions" - ], - "operationId": "actions/get-actions-cache-retention-limit-for-repository", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/cache#get-github-actions-cache-retention-limit-for-a-repository" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - } - ], "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-cache-retention-limit-for-repository" + "type": "array", + "items": { + "$ref": "#/components/schemas/org-repo-custom-property-values" + } }, "examples": { "default": { - "$ref": "#/components/examples/actions-cache-retention-limit" + "$ref": "#/components/examples/org-repo-custom-property-values" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, "403": { @@ -35955,27 +36018,24 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "cache" + "category": "orgs", + "subcategory": "custom-properties" } }, - "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.", + "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": [ - "actions" + "orgs" ], - "operationId": "actions/set-actions-cache-retention-limit-for-repository", + "operationId": "orgs/custom-properties-for-repos-create-or-update-organization-values", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/cache#set-github-actions-cache-retention-limit-for-a-repository" + "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": { @@ -35983,11 +36043,33 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-cache-retention-limit-for-repository" + "type": "object", + "properties": { + "repository_names": { + "type": "array", + "description": "The names of repositories that the custom property values will be applied to.", + "items": { + "type": "string" + }, + "minItems": 1, + "maxItems": 30 + }, + "properties": { + "type": "array", + "description": "List of custom property names and associated values to apply to the repositories.", + "items": { + "$ref": "#/components/schemas/custom-property-value" + } + } + }, + "required": [ + "repository_names", + "properties" + ] }, "examples": { - "selected_actions": { - "$ref": "#/components/examples/actions-cache-retention-limit" + "default": { + "$ref": "#/components/examples/org-repo-update-custom-property-values" } } } @@ -35995,44 +36077,47 @@ }, "responses": { "204": { - "description": "Response" - }, - "400": { - "$ref": "#/components/responses/bad_request" + "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, - "category": "actions", - "subcategory": "cache" + "category": "orgs", + "subcategory": "custom-properties" } } }, - "/repos/{owner}/{repo}/actions/cache/storage-limit": { + "/orgs/{org}/public_members": { "get": { - "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.", + "summary": "List public organization members", + "description": "Members of an organization can choose to have their membership publicized or not.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/get-actions-cache-storage-limit-for-repository", + "operationId": "orgs/list-public-members", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/cache#get-github-actions-cache-storage-limit-for-a-repository" + "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/page" } ], "responses": { @@ -36041,306 +36126,202 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-cache-storage-limit-for-repository" + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } }, "examples": { "default": { - "$ref": "#/components/examples/actions-cache-storage-limit" + "$ref": "#/components/examples/simple-user-items" } } } - } - }, - "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 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": [ - "actions" - ], - "operationId": "actions/set-actions-cache-storage-limit-for-repository", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/cache#set-github-actions-cache-storage-limit-for-a-repository" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/actions-cache-storage-limit-for-repository" - }, - "examples": { - "selected_actions": { - "$ref": "#/components/examples/actions-cache-storage-limit" - } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" } } } }, - "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" + "category": "orgs", + "subcategory": "members" } } }, - "/repos/{owner}/{repo}/actions/cache/usage": { + "/orgs/{org}/public_members/{username}": { "get": { - "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.", + "summary": "Check public organization membership for a user", + "description": "Check if the provided user is a public member of the organization.", "tags": [ - "actions" + "orgs" ], - "operationId": "actions/get-actions-cache-usage", + "operationId": "orgs/check-public-membership-for-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/cache#get-github-actions-cache-usage-for-a-repository" + "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": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/actions-cache-usage-by-repository" - }, - "examples": { - "default": { - "$ref": "#/components/examples/actions-cache-usage" - } - } - } - } + "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": "actions", - "subcategory": "cache" + "category": "orgs", + "subcategory": "members" } - } - }, - "/repos/{owner}/{repo}/actions/caches": { - "get": { - "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.", + }, + "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": [ - "actions" + "orgs" ], - "operationId": "actions/get-actions-cache-list", + "operationId": "orgs/set-public-membership-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/cache#list-github-actions-caches-for-a-repository" + "url": "https://docs.github.com/rest/orgs/members#set-public-organization-membership-for-the-authenticated-user" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$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/org" }, { - "$ref": "#/components/parameters/direction" + "$ref": "#/components/parameters/username" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/actions-cache-list" - }, - "examples": { - "default": { - "$ref": "#/components/examples/actions-cache-list" - } - } - } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } + "204": { + "description": "Response" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [], - "category": "actions", - "subcategory": "cache" + "enabledForGitHubApps": false, + "category": "orgs", + "subcategory": "members" } }, "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.", + "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": [ - "actions" + "orgs" ], - "operationId": "actions/delete-actions-cache-by-key", + "operationId": "orgs/remove-public-membership-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/cache#delete-github-actions-caches-for-a-repository-using-a-cache-key" + "url": "https://docs.github.com/rest/orgs/members#remove-public-organization-membership-for-the-authenticated-user" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/actions-cache-key-required" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/actions-cache-git-ref-full" + "$ref": "#/components/parameters/username" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/actions-cache-list" - }, - "examples": { - "default": { - "$ref": "#/components/examples/actions-cache-list" - } - } - } - } + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "cache" + "enabledForGitHubApps": false, + "category": "orgs", + "subcategory": "members" } } }, - "/repos/{owner}/{repo}/actions/caches/{cache_id}": { - "delete": { - "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.", + "/orgs/{org}/repos": { + "get": { + "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": [ - "actions" + "repos" ], - "operationId": "actions/delete-actions-cache-by-id", + "operationId": "repos/list-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/cache#delete-a-github-actions-cache-for-a-repository-using-a-cache-id" + "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/cache-id" - } - ], - "responses": { - "204": { - "description": "Response" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "cache" - } - } - }, - "/repos/{owner}/{repo}/actions/jobs/{job_id}": { - "get": { - "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": [ - "actions" - ], - "operationId": "actions/get-job-for-workflow-run", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-jobs#get-a-job-for-a-workflow-run" - }, - "parameters": [ + "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" + } + }, { - "$ref": "#/components/parameters/owner" + "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/repo" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/job-id" + "$ref": "#/components/parameters/page" } ], "responses": { @@ -36349,57 +36330,21 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/job" + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } }, "examples": { "default": { - "$ref": "#/components/examples/job" + "$ref": "#/components/examples/minimal-repository-items" } } } - } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "workflow-jobs" - } - } - }, - "/repos/{owner}/{repo}/actions/jobs/{job_id}/logs": { - "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.\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": [ - "actions" - ], - "operationId": "actions/download-job-logs-for-workflow-run", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-jobs#download-job-logs-for-a-workflow-run" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/job-id" - } - ], - "responses": { - "302": { - "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", - "schema": { - "type": "string" - } + "Link": { + "$ref": "#/components/headers/link" } } } @@ -36407,52 +36352,187 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "workflow-jobs" + "category": "repos", + "subcategory": "repos" } - } - }, - "/repos/{owner}/{repo}/actions/jobs/{job_id}/rerun": { + }, "post": { - "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.", + "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": [ - "actions" + "repos" ], - "operationId": "actions/re-run-job-for-workflow-run", + "operationId": "repos/create-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-runs#re-run-a-job-from-a-workflow-run" + "url": "https://docs.github.com/rest/repos/repos#create-an-organization-repository" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/job-id" + "$ref": "#/components/parameters/org" } ], "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { "type": "object", - "nullable": true, "properties": { - "enable_debug_logging": { + "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": "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, - "description": "Whether to enable debug logging for the re-run." + "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": [ + "name" + ] }, "examples": { "default": { - "value": null + "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 + } } } } @@ -36464,129 +36544,224 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/empty-object" + "$ref": "#/components/schemas/full-repository" }, "examples": { "default": { - "value": null + "$ref": "#/components/examples/full-repository" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World", + "schema": { + "type": "string" + } + } } }, "403": { "$ref": "#/components/responses/forbidden" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "workflow-runs" - } + "category": "repos", + "subcategory": "repos" + }, + "x-github-breaking-changes": [ + { + "changeset": "change_create_repo_trade_compliance_response_status", + "patch": { + "responses": { + "451": { + "$ref": "#/components/responses/validation_failed" + } + } + }, + "version": "2026-03-10" + } + ] } }, - "/repos/{owner}/{repo}/actions/oidc/customization/sub": { + "/orgs/{org}/rulesets": { "get": { - "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.", + "summary": "Get all organization repository rulesets", + "description": "Get all the repository rulesets for an organization.", "tags": [ - "actions" + "repos" ], - "operationId": "actions/get-custom-oidc-sub-claim-for-repo", + "operationId": "repos/get-org-rulesets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/oidc#get-the-customization-template-for-an-oidc-subject-claim-for-a-repository" + "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" } ], "responses": { "200": { - "description": "Status response", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/oidc-custom-sub-repo" + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-ruleset" + } }, "examples": { "default": { - "$ref": "#/components/examples/oidc-custom-sub-repo" + "$ref": "#/components/examples/org-ruleset-items" } } } } }, - "400": { - "$ref": "#/components/responses/bad_request" - }, "404": { "$ref": "#/components/responses/not_found" + }, + "500": { + "$ref": "#/components/responses/internal_error" } - }, - "x-github": { - "enabledForGitHubApps": true, - "previews": [], - "category": "actions", - "subcategory": "oidc" } }, - "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.", + "post": { + "summary": "Create an organization repository ruleset", + "description": "Create a repository ruleset for an organization.", "tags": [ - "actions" + "repos" ], - "operationId": "actions/set-custom-oidc-sub-claim-for-repo", + "operationId": "repos/create-org-ruleset", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-a-repository" + "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/org" } ], "requestBody": { + "description": "Request body", "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": { - "use_default": { - "description": "Whether to use the default template or not. If `true`, the `include_claim_keys` field is ignored.", - "type": "boolean" + "name": { + "type": "string", + "description": "The name of the ruleset." }, - "include_claim_keys": { - "description": "Array of unique strings. Each claim key can only contain alphanumeric characters and underscores.", + "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": { - "type": "string" + "$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": { - "use_default": false, - "include_claim_keys": [ - "repo", - "context" + "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" + } + } ] } } @@ -36596,15 +36771,15 @@ }, "responses": { "201": { - "description": "Empty response", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/empty-object" + "$ref": "#/components/schemas/repository-ruleset" }, "examples": { "default": { - "value": null + "$ref": "#/components/examples/org-ruleset" } } } @@ -36613,39 +36788,48 @@ "404": { "$ref": "#/components/responses/not_found" }, - "400": { - "$ref": "#/components/responses/bad_request" - }, "422": { - "$ref": "#/components/responses/validation_failed_simple" + "$ref": "#/components/responses/validation_failed" + }, + "500": { + "$ref": "#/components/responses/internal_error" } - }, - "x-github": { - "enabledForGitHubApps": true, - "previews": [], - "category": "actions", - "subcategory": "oidc" } } }, - "/repos/{owner}/{repo}/actions/organization-secrets": { + "/orgs/{org}/rulesets/rule-suites": { "get": { - "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.", + "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": [ - "actions" + "repos" ], - "operationId": "actions/list-repo-organization-secrets", + "operationId": "repos/get-org-rule-suites", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/secrets#list-repository-organization-secrets" + "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/repository-name-in-query" + }, + { + "$ref": "#/components/parameters/time-period" + }, + { + "$ref": "#/components/parameters/actor-name-in-query" + }, + { + "$ref": "#/components/parameters/rule-suite-result" + }, + { + "$ref": "#/components/parameters/evaluate-status" }, { "$ref": "#/components/parameters/per-page" @@ -36660,69 +36844,49 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "secrets" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "secrets": { - "type": "array", - "items": { - "$ref": "#/components/schemas/actions-secret" - } - } - } + "$ref": "#/components/schemas/rule-suites" }, "examples": { "default": { - "$ref": "#/components/examples/actions-secret-paginated" + "$ref": "#/components/examples/rule-suite-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "secrets" + "category": "orgs", + "subcategory": "rule-suites" } } }, - "/repos/{owner}/{repo}/actions/organization-variables": { + "/orgs/{org}/rulesets/rule-suites/{rule_suite_id}": { "get": { - "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.", + "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": [ - "actions" + "repos" ], - "operationId": "actions/list-repo-organization-variables", + "operationId": "repos/get-org-rule-suite", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/variables#list-repository-organization-variables" + "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/variables-per-page" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/rule-suite-id" } ], "responses": { @@ -36731,63 +36895,61 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "variables" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "variables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/actions-variable" - } - } - } + "$ref": "#/components/schemas/rule-suite" }, "examples": { "default": { - "$ref": "#/components/examples/actions-variables-paginated" + "$ref": "#/components/examples/rule-suite" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "variables" + "category": "orgs", + "subcategory": "rule-suites" } } }, - "/repos/{owner}/{repo}/actions/permissions": { + "/orgs/{org}/rulesets/{ruleset_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 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", + "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": [ - "actions" + "repos" ], + "operationId": "repos/get-org-ruleset", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/permissions#get-github-actions-permissions-for-a-repository" + "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/org" }, { - "$ref": "#/components/parameters/repo" + "name": "ruleset_id", + "description": "The ID of the ruleset.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { @@ -36796,200 +36958,249 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-repository-permissions" + "$ref": "#/components/schemas/repository-ruleset" }, "examples": { "default": { - "$ref": "#/components/examples/actions-repository-permissions" + "$ref": "#/components/examples/org-ruleset" } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "500": { + "$ref": "#/components/responses/internal_error" } - }, - "x-github": { - "enabledForGitHubApps": true, - "githubCloudOnly": false, - "category": "actions", - "subcategory": "permissions" } }, "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", + "summary": "Update an organization repository ruleset", + "description": "Update a ruleset for an organization.", "tags": [ - "actions" + "repos" ], + "operationId": "repos/update-org-ruleset", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/permissions#set-github-actions-permissions-for-a-repository" + "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/org" }, { - "$ref": "#/components/parameters/repo" + "name": "ruleset_id", + "description": "The ID of the ruleset.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], - "responses": { - "204": { - "description": "Response" - } - }, "requestBody": { - "required": true, + "description": "Request body", + "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { - "enabled": { - "$ref": "#/components/schemas/actions-enabled" + "name": { + "type": "string", + "description": "The name of the ruleset." }, - "allowed_actions": { - "$ref": "#/components/schemas/allowed-actions" + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag", + "push", + "repository" + ] }, - "sha_pinning_required": { - "$ref": "#/components/schemas/sha-pinning-required" + "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": [ - "enabled" - ] + } }, "examples": { "default": { "value": { - "enabled": true, - "allowed_actions": "selected", - "sha_pinning_required": true + "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" + } + } + ] } } } } } }, - "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": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-workflow-access-to-repository" + "$ref": "#/components/schemas/repository-ruleset" }, "examples": { "default": { - "$ref": "#/components/examples/actions-workflow-access-to-repository" + "$ref": "#/components/examples/org-ruleset" } } } } + }, + "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": [], - "category": "actions", - "subcategory": "permissions" } }, - "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.", + "delete": { + "summary": "Delete an organization repository ruleset", + "description": "Delete a ruleset for an organization.", "tags": [ - "actions" + "repos" ], - "operationId": "actions/set-workflow-access-to-repository", + "operationId": "repos/delete-org-ruleset", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/permissions#set-the-level-of-access-for-workflows-outside-of-the-repository" + "url": "https://docs.github.com/rest/orgs/rules#delete-an-organization-repository-ruleset" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "rules" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/actions-workflow-access-to-repository" - }, - "examples": { - "default": { - "$ref": "#/components/examples/actions-workflow-access-to-repository" - } - } + "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" } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [], - "category": "actions", - "subcategory": "permissions" } } }, - "/repos/{owner}/{repo}/actions/permissions/artifact-and-log-retention": { + "/orgs/{org}/rulesets/{ruleset_id}/history": { "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", + "summary": "Get organization ruleset history", + "description": "Get the history of an organization ruleset.", "tags": [ - "actions" + "orgs" ], + "operationId": "orgs/get-org-ruleset-history", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/permissions#get-artifact-and-log-retention-settings-for-a-repository" + "url": "https://docs.github.com/rest/orgs/rules#get-organization-ruleset-history" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "name": "ruleset_id", + "description": "The ID of the ruleset.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { @@ -36998,14 +37209,14 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-artifact-and-log-retention-response" + "type": "array", + "items": { + "$ref": "#/components/schemas/ruleset-version" + } }, "examples": { "default": { - "value": { - "days": 90, - "maximum_allowed_days": 365 - } + "$ref": "#/components/examples/ruleset-history" } } } @@ -37013,87 +37224,160 @@ }, "404": { "$ref": "#/components/responses/not_found" + }, + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { + "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "permissions" + "category": "orgs", + "subcategory": "rules" } - }, - "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", + } + }, + "/orgs/{org}/rulesets/{ruleset_id}/history/{version_id}": { + "get": { + "summary": "Get organization ruleset version", + "description": "Get a version of an organization ruleset.", "tags": [ - "actions" + "orgs" ], + "operationId": "orgs/get-org-ruleset-version", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/permissions#set-artifact-and-log-retention-settings-for-a-repository" + "url": "https://docs.github.com/rest/orgs/rules#get-organization-ruleset-version" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "name": "ruleset_id", + "description": "The ID of the ruleset.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "version_id", + "description": "The ID of the version", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { - "204": { - "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 + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ruleset-version-with-state" + }, + "examples": { + "default": { + "$ref": "#/components/examples/org-ruleset-version-with-state" } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { + "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "permissions" + "category": "orgs", + "subcategory": "rules" } } }, - "/repos/{owner}/{repo}/actions/permissions/fork-pr-contributor-approval": { + "/orgs/{org}/secret-scanning/alerts": { "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", + "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": [ - "actions" + "secret-scanning" ], + "operationId": "secret-scanning/list-alerts-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/permissions#get-fork-pr-contributor-approval-permissions-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" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-secret-type" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-exclude-secret-types" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-exclude-providers" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-providers" + }, + { + "$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" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-bypassed" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-included-metadata" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-owner-email-hash" } ], "responses": { @@ -37102,99 +37386,78 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-fork-pr-contributor-approval" + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-secret-scanning-alert" + } }, "examples": { "default": { - "$ref": "#/components/examples/actions-fork-pr-contributor-approval" + "$ref": "#/components/examples/organization-secret-scanning-alert-list" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, "404": { "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { + "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "permissions" + "category": "secret-scanning", + "subcategory": "secret-scanning" } - }, - "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", + } + }, + "/orgs/{org}/secret-scanning/custom-patterns": { + "get": { + "summary": "List organization custom patterns", + "description": "Lists secret scanning custom patterns for an organization.\n\nPersonal access tokens (classic) need the `read:org` scope to use this endpoint.", "tags": [ - "actions" + "secret-scanning" ], + "operationId": "secret-scanning/list-org-custom-patterns", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/permissions#set-fork-pr-contributor-approval-permissions-for-a-repository" + "url": "https://docs.github.com/rest/secret-scanning/custom-patterns#list-organization-custom-patterns" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "secret-scanning", + "subcategory": "custom-patterns" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" - } - ], - "responses": { - "204": { - "description": "Response" + "$ref": "#/components/parameters/secret-scanning-custom-pattern-state" }, - "404": { - "$ref": "#/components/responses/not_found" + { + "$ref": "#/components/parameters/secret-scanning-custom-pattern-push-protection" }, - "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": { - "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "permissions" - } - } - }, - "/repos/{owner}/{repo}/actions/permissions/fork-pr-workflows-private-repos": { - "get": { - "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": [ - "actions" - ], - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/permissions#get-private-repo-fork-pr-workflow-settings-for-a-repository" - }, - "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/secret-scanning-custom-pattern-sort" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/direction" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/per-page" } ], "responses": { @@ -37203,14 +37466,22 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-fork-pr-workflows-private-repos" + "type": "array", + "items": { + "$ref": "#/components/schemas/secret-scanning-custom-pattern" + } }, "examples": { "default": { - "$ref": "#/components/examples/actions-fork-pr-workflows-private-repos" + "$ref": "#/components/examples/secret-scanning-custom-pattern-list" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, "403": { @@ -37219,30 +37490,28 @@ "404": { "$ref": "#/components/responses/not_found" } - }, - "x-github": { - "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "permissions" } }, - "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", + "post": { + "summary": "Bulk create organization custom patterns", + "description": "Bulk creates secret scanning custom patterns for an organization.\n\nPersonal access tokens (classic) need the `write:org` scope to use this endpoint.", "tags": [ - "actions" + "secret-scanning" ], + "operationId": "secret-scanning/bulk-create-org-custom-patterns", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/permissions#set-private-repo-fork-pr-workflow-settings-for-a-repository" + "url": "https://docs.github.com/rest/secret-scanning/custom-patterns#bulk-create-organization-custom-patterns" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "secret-scanning", + "subcategory": "custom-patterns" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" } ], "requestBody": { @@ -37250,316 +37519,276 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-fork-pr-workflows-private-repos-request" + "type": "object", + "required": [ + "patterns" + ], + "properties": { + "patterns": { + "type": "array", + "description": "The list of custom patterns to create.", + "items": { + "$ref": "#/components/schemas/secret-scanning-custom-pattern-to-create" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/actions-fork-pr-workflows-private-repos" + "$ref": "#/components/examples/secret-scanning-custom-pattern-bulk-create-request" } } } } }, "responses": { - "204": { - "description": "Empty response for successful settings update" + "201": { + "description": "All patterns created successfully.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "created_patterns": { + "type": "array", + "description": "The list of successfully created custom patterns.", + "items": { + "$ref": "#/components/schemas/secret-scanning-custom-pattern" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/secret-scanning-custom-pattern-bulk-create-response" + } + } + } + } + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" }, "422": { - "$ref": "#/components/responses/validation_failed" - } - }, - "x-github": { - "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "permissions" - } - } - }, - "/repos/{owner}/{repo}/actions/permissions/selected-actions": { - "get": { - "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": [ - "actions" - ], - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/permissions#get-allowed-actions-and-reusable-workflows-for-a-repository" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - } - ], - "responses": { - "200": { - "description": "Response", + "description": "Validation failed for one or more patterns.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/selected-actions" - }, - "examples": { - "default": { - "$ref": "#/components/examples/selected-actions" + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "A summary message describing the error." + }, + "validation_errors": { + "type": "object", + "description": "A map of validation errors keyed by the zero-based index of the pattern that failed.", + "additionalProperties": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "description": "List of validation errors for this pattern.", + "items": { + "$ref": "#/components/schemas/secret-scanning-custom-pattern-validation-error" + } + } + } + } + } } } } } } - }, - "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", + "delete": { + "summary": "Bulk delete organization custom patterns", + "description": "Bulk deletes secret scanning custom patterns for an organization.\n\nPersonal access tokens (classic) need the `write:org` scope to use this endpoint.", "tags": [ - "actions" + "secret-scanning" ], + "operationId": "secret-scanning/bulk-delete-org-custom-patterns", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/permissions#set-allowed-actions-and-reusable-workflows-for-a-repository" + "url": "https://docs.github.com/rest/secret-scanning/custom-patterns#bulk-delete-organization-custom-patterns" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "secret-scanning", + "subcategory": "custom-patterns" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" } ], - "responses": { - "204": { - "description": "Response" - } - }, "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/selected-actions" + "type": "object", + "required": [ + "patterns" + ], + "properties": { + "patterns": { + "type": "array", + "description": "The list of custom patterns to delete.", + "maxItems": 500, + "items": { + "$ref": "#/components/schemas/secret-scanning-custom-pattern-to-delete" + } + }, + "post_delete_action": { + "type": "string", + "description": "What to do with alerts associated with the deleted patterns.\n`delete_alerts` permanently removes the alerts.\n`resolve_alerts` resolves the alerts as \"pattern deleted\".\nDefaults to `delete_alerts` when not specified.", + "enum": [ + "delete_alerts", + "resolve_alerts" + ], + "default": "delete_alerts" + } + } }, "examples": { - "selected_actions": { - "$ref": "#/components/examples/selected-actions" + "default": { + "$ref": "#/components/examples/secret-scanning-custom-pattern-bulk-delete-request" } } } } }, - "x-github": { - "enabledForGitHubApps": true, - "githubCloudOnly": false, - "category": "actions", - "subcategory": "permissions" + "responses": { + "204": { + "description": "All patterns deleted successfully." + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "412": { + "$ref": "#/components/responses/precondition_failed" + } } } }, - "/repos/{owner}/{repo}/actions/permissions/workflow": { - "get": { - "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.", + "/orgs/{org}/secret-scanning/custom-patterns/{pattern_id}": { + "patch": { + "summary": "Update an organization custom pattern", + "description": "Updates a secret scanning custom pattern for an organization.\n\nPersonal access tokens (classic) need the `write:org` scope to use this endpoint.", "tags": [ - "actions" + "secret-scanning" ], - "operationId": "actions/get-github-actions-default-workflow-permissions-repository", + "operationId": "secret-scanning/update-org-custom-pattern", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/permissions#get-default-workflow-permissions-for-a-repository" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/actions-get-default-workflow-permissions" - }, - "examples": { - "default": { - "$ref": "#/components/examples/actions-default-workflow-permissions" - } - } - } - } - } + "url": "https://docs.github.com/rest/secret-scanning/custom-patterns#update-an-organization-custom-pattern" }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "permissions" - } - }, - "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": [ - "actions" - ], - "operationId": "actions/set-github-actions-default-workflow-permissions-repository", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/permissions#set-default-workflow-permissions-for-a-repository" + "category": "secret-scanning", + "subcategory": "custom-patterns" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "name": "pattern_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "The ID of the custom pattern." } ], - "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": { - "$ref": "#/components/schemas/actions-set-default-workflow-permissions" + "$ref": "#/components/schemas/secret-scanning-custom-pattern-to-update" }, "examples": { "default": { - "$ref": "#/components/examples/actions-default-workflow-permissions" + "$ref": "#/components/examples/secret-scanning-custom-pattern-update-request" } } } } }, - "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": { "200": { - "description": "Response", + "description": "Pattern updated successfully.", "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/secret-scanning-custom-pattern" }, "examples": { "default": { - "$ref": "#/components/examples/runner-paginated" + "$ref": "#/components/examples/secret-scanning-custom-pattern" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "412": { + "$ref": "#/components/responses/precondition_failed" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "self-hosted-runners" } } }, - "/repos/{owner}/{repo}/actions/runners/downloads": { + "/orgs/{org}/secret-scanning/pattern-configurations": { "get": { - "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.", + "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": [ - "actions" + "secret-scanning" ], - "operationId": "actions/list-runner-applications-for-repo", + "operationId": "secret-scanning/list-org-pattern-configs", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/self-hosted-runners#list-runner-applications-for-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" + "$ref": "#/components/parameters/org" } ], "responses": { @@ -37568,46 +37797,44 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/runner-application" - } + "$ref": "#/components/schemas/secret-scanning-pattern-configuration" }, "examples": { "default": { - "$ref": "#/components/examples/runner-application-items" + "$ref": "#/components/examples/secret-scanning-pattern-configuration" } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "self-hosted-runners" } - } - }, - "/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.", + }, + "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": [ - "actions" + "secret-scanning" ], - "operationId": "actions/generate-runner-jitconfig-for-repo", + "operationId": "secret-scanning/update-org-pattern-configs", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/self-hosted-runners#create-configuration-for-a-just-in-time-runner-for-a-repository" + "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": { @@ -37616,48 +37843,75 @@ "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." + "pattern_config_version": { + "$ref": "#/components/schemas/secret-scanning-row-version" }, - "labels": { + "provider_pattern_settings": { "type": "array", - "minItems": 1, - "maxItems": 100, + "description": "Pattern settings for provider patterns.", "items": { - "type": "string" - }, - "description": "The names of the custom labels to add to the runner. **Minimum items**: 1. **Maximum items**: 100." + "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" + ] + } + } + } }, - "work_folder": { - "type": "string", - "description": "The working directory to be used for job execution, relative to the runner install directory.", - "default": "_work" + "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" + ] + } + } + } } } }, "examples": { "default": { "value": { - "name": "New runner", - "runner_group_id": 1, - "labels": [ - "self-hosted", - "X64", - "macOS", - "no-gpu" + "pattern_config_version": "0ujsswThIGTUYm2K8FjOOfXtY1K", + "provider_pattern_settings": [ + { + "token_type": "GITHUB_PERSONAL_ACCESS_TOKEN", + "push_protection_setting": "enabled" + } ], - "work_folder": "_work" + "custom_pattern_settings": [ + { + "token_type": "cp_2", + "custom_pattern_version": "0ujsswThIGTUYm2K8FjOOfXtY1K", + "push_protection_setting": "enabled" + } + ] } } } @@ -37665,103 +37919,180 @@ } }, "responses": { - "201": { - "$ref": "#/components/responses/actions_runner_jitconfig" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "pattern_config_version": { + "type": "string", + "description": "The updated pattern configuration version." + } + } + }, + "examples": { + "default": { + "value": { + "pattern_config_version": "0ujsswThIGTUYm2K8FjOOfXtY1K" + } + } + } + } + } + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" - }, "409": { "$ref": "#/components/responses/conflict" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "self-hosted-runners" } } }, - "/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.", + "/orgs/{org}/security-advisories": { + "get": { + "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": [ - "actions" + "security-advisories" ], - "operationId": "actions/create-registration-token-for-repo", + "operationId": "security-advisories/list-org-repository-advisories", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/self-hosted-runners#create-a-registration-token-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": "sort", + "description": "The property to sort the results by.", + "in": "query", + "required": false, + "schema": { + "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": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/authentication-token" + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-advisory" + } }, "examples": { "default": { - "$ref": "#/components/examples/authentication-token" + "$ref": "#/components/examples/list-repository-advisories" } } } } + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "self-hosted-runners" + "category": "security-advisories", + "subcategory": "repository-advisories" } } }, - "/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.", + "/orgs/{org}/security-managers": { + "get": { + "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": [ - "actions" + "orgs" ], - "operationId": "actions/create-remove-token-for-repo", + "operationId": "orgs/list-security-manager-teams", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/self-hosted-runners#create-a-remove-token-for-a-repository" + "url": "https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams" }, "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" + "type": "array", + "items": { + "$ref": "#/components/schemas/team-simple" + } }, "examples": { "default": { - "$ref": "#/components/examples/authentication-token-2" + "$ref": "#/components/examples/team-simple-items" } } } @@ -37771,228 +38102,274 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "self-hosted-runners" - } + "previews": [], + "category": "orgs", + "subcategory": "security-managers", + "deprecationDate": "2024-12-01", + "removalDate": "2026-01-01" + }, + "deprecated": true } }, - "/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.", + "/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": [ - "actions" + "orgs" ], - "operationId": "actions/get-self-hosted-runner-for-repo", + "operationId": "orgs/add-security-manager-team", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/self-hosted-runners#get-a-self-hosted-runner-for-a-repository" + "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/runner-id" + "$ref": "#/components/parameters/team-slug" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/runner" - }, - "examples": { - "default": { - "$ref": "#/components/examples/runner" - } - } - } - } + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "self-hosted-runners" - } + "previews": [], + "category": "orgs", + "subcategory": "security-managers", + "deprecationDate": "2024-12-01", + "removalDate": "2026-01-01" + }, + "deprecated": true }, "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.", + "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": [ - "actions" + "orgs" ], - "operationId": "actions/delete-self-hosted-runner-from-repo", + "operationId": "orgs/remove-security-manager-team", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/self-hosted-runners#delete-a-self-hosted-runner-from-a-repository" + "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/runner-id" + "$ref": "#/components/parameters/team-slug" } ], "responses": { "204": { "description": "Response" - }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "self-hosted-runners" - } + "previews": [], + "category": "orgs", + "subcategory": "security-managers", + "deprecationDate": "2024-12-01", + "removalDate": "2026-01-01" + }, + "deprecated": true } }, - "/repos/{owner}/{repo}/actions/runners/{runner_id}/labels": { + "/orgs/{org}/settings/immutable-releases": { "get": { - "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.", + "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": [ - "actions" + "orgs" ], - "operationId": "actions/list-labels-for-self-hosted-runner-for-repo", + "operationId": "orgs/get-immutable-releases-settings", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/self-hosted-runners#list-labels-for-a-self-hosted-runner-for-a-repository" + "url": "https://docs.github.com/rest/orgs/orgs#get-immutable-releases-settings-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/runner-id" + "$ref": "#/components/parameters/org" } ], "responses": { "200": { - "$ref": "#/components/responses/actions_runner_labels" - }, - "404": { - "$ref": "#/components/responses/not_found" + "description": "Immutable releases settings response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/immutable-releases-organization-settings" + }, + "examples": { + "default": { + "value": { + "enforced_repositories": "all" + } + } + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "self-hosted-runners" + "category": "orgs", + "subcategory": "orgs" } }, - "post": { - "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.", + "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": [ - "actions" + "orgs" ], - "operationId": "actions/add-custom-labels-to-self-hosted-runner-for-repo", + "operationId": "orgs/set-immutable-releases-settings", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/self-hosted-runners#add-custom-labels-to-a-self-hosted-runner-for-a-repository" + "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/runner-id" + "$ref": "#/components/parameters/org" } ], + "responses": { + "204": { + "description": "Response" + } + }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", - "required": [ - "labels" - ], "properties": { - "labels": { + "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", - "minItems": 1, - "maxItems": 100, - "description": "The names of the custom labels to add to the runner.", + "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": "string" + "type": "integer" } } - } + }, + "required": [ + "enforced_repositories" + ] }, "examples": { "default": { "value": { - "labels": [ - "gpu", - "accelerated" - ] + "enforced_repositories": "all" } } } } } }, - "responses": { - "200": { - "$ref": "#/components/responses/actions_runner_labels" + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "orgs" + } + } + }, + "/orgs/{org}/settings/immutable-releases/repositories": { + "get": { + "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": [ + "orgs" + ], + "operationId": "orgs/get-immutable-releases-settings-repositories", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/orgs#list-selected-repositories-for-immutable-releases-enforcement" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" }, - "404": { - "$ref": "#/components/responses/not_found" + { + "$ref": "#/components/parameters/page" }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" + { + "$ref": "#/components/parameters/per-page" + } + ], + "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/public-repository-paginated" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "self-hosted-runners" + "category": "orgs", + "subcategory": "orgs" } }, "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.", + "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": [ - "actions" + "orgs" ], - "operationId": "actions/set-custom-labels-for-self-hosted-runner-for-repo", + "operationId": "orgs/set-immutable-releases-settings-repositories", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/self-hosted-runners#set-custom-labels-for-a-self-hosted-runner-for-a-repository" + "url": "https://docs.github.com/rest/orgs/orgs#set-selected-repositories-for-immutable-releases-enforcement" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/runner-id" + "$ref": "#/components/parameters/org" } ], "requestBody": { @@ -38001,27 +38378,24 @@ "application/json": { "schema": { "type": "object", - "required": [ - "labels" - ], "properties": { - "labels": { + "selected_repository_ids": { "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.", + "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": "string" + "type": "integer" } } - } + }, + "required": [ + "selected_repository_ids" + ] }, "examples": { "default": { "value": { - "labels": [ - "gpu", - "accelerated" + "selected_repository_ids": [ + 64780797 ] } } @@ -38030,154 +38404,103 @@ } }, "responses": { - "200": { - "$ref": "#/components/responses/actions_runner_labels" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "self-hosted-runners" + "category": "orgs", + "subcategory": "orgs" } - }, - "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.", + } + }, + "/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": [ - "actions" + "orgs" ], - "operationId": "actions/remove-all-custom-labels-from-self-hosted-runner-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/self-hosted-runners#remove-all-custom-labels-from-a-self-hosted-runner-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/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/runner-id" + "$ref": "#/components/parameters/repository-id" } ], "responses": { - "200": { - "$ref": "#/components/responses/actions_runner_labels_readonly" - }, - "404": { - "$ref": "#/components/responses/not_found" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "self-hosted-runners" + "category": "orgs", + "subcategory": "orgs" } - } - }, - "/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.", + "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": [ - "actions" + "orgs" ], - "operationId": "actions/remove-custom-label-from-self-hosted-runner-for-repo", "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-a-repository" + "url": "https://docs.github.com/rest/orgs/orgs#disable-a-selected-repository-for-immutable-releases-in-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/runner-id" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/runner-label-name" + "$ref": "#/components/parameters/repository-id" } ], "responses": { - "200": { - "$ref": "#/components/responses/actions_runner_labels" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "self-hosted-runners" + "category": "orgs", + "subcategory": "orgs" } } }, - "/repos/{owner}/{repo}/actions/runs": { + "/orgs/{org}/settings/network-configurations": { "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`.", + "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": [ - "actions" + "hosted-compute" ], - "operationId": "actions/list-workflow-runs-for-repo", + "operationId": "hosted-compute/list-network-configurations-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-runs#list-workflow-runs-for-a-repository" + "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/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" }, { "$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": { @@ -38189,23 +38512,23 @@ "type": "object", "required": [ "total_count", - "workflow_runs" + "network_configurations" ], "properties": { "total_count": { "type": "integer" }, - "workflow_runs": { + "network_configurations": { "type": "array", "items": { - "$ref": "#/components/schemas/workflow-run" + "$ref": "#/components/schemas/network-configuration" } } } }, "examples": { "default": { - "$ref": "#/components/examples/workflow-run-paginated" + "$ref": "#/components/examples/network-configurations-paginated" } } } @@ -38220,48 +38543,248 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "workflow-runs" + "category": "orgs", + "subcategory": "network-configurations" + } + }, + "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": [ + "hosted-compute" + ], + "operationId": "hosted-compute/create-network-configuration-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/network-configurations#create-a-hosted-compute-network-configuration-for-an-organization" + }, + "parameters": [ + { + "$ref": "#/components/parameters/org" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "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", + "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" + } + }, + "failover_network_settings_ids": { + "type": "array", + "minItems": 0, + "maxItems": 1, + "description": "A list of identifiers of the failover network settings resources to use for the network configuration. Exactly one resource identifier must be specified in the list.", + "items": { + "type": "string" + } + }, + "failover_network_enabled": { + "type": "boolean", + "description": "Indicates whether the failover network resource is enabled." + } + }, + "required": [ + "name", + "network_settings_ids" + ] + }, + "examples": { + "default": { + "value": { + "name": "my-network-configuration", + "network_settings_ids": [ + "23456789ABDCEF1" + ], + "compute_service": "actions" + } + } + } + } + } + }, + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/network-configuration" + }, + "examples": { + "default": { + "$ref": "#/components/examples/network-configuration" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "network-configurations" } } }, - "/repos/{owner}/{repo}/actions/runs/{run_id}": { + "/orgs/{org}/settings/network-configurations/{network_configuration_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.", + "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": [ - "actions" + "hosted-compute" ], - "operationId": "actions/get-workflow-run", + "operationId": "hosted-compute/get-network-configuration-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-runs#get-a-workflow-run" + "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/org" }, { - "$ref": "#/components/parameters/repo" - }, + "$ref": "#/components/parameters/network-configuration-id" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/network-configuration" + }, + "examples": { + "default": { + "$ref": "#/components/examples/network-configuration" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "network-configurations" + } + }, + "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": [ + "hosted-compute" + ], + "operationId": "hosted-compute/update-network-configuration-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/network-configurations#update-a-hosted-compute-network-configuration-for-an-organization" + }, + "parameters": [ { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/exclude-pull-requests" + "$ref": "#/components/parameters/network-configuration-id" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "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", + "enum": [ + "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" + } + }, + "failover_network_settings_ids": { + "type": "array", + "minItems": 0, + "maxItems": 1, + "description": "A list of identifiers of the failover network settings resources to use for the network configuration. Exactly one resource identifier must be specified in the list.", + "items": { + "type": "string" + } + }, + "failover_network_enabled": { + "type": "boolean", + "description": "Indicates whether the failover network resource is enabled." + } + } + }, + "examples": { + "default": { + "value": { + "name": "my-network-configuration", + "network_settings_ids": [ + "23456789ABDCEF1" + ], + "compute_service": "actions" + } + } + } + } + } + }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/workflow-run" + "$ref": "#/components/schemas/network-configuration" }, "examples": { "default": { - "$ref": "#/components/examples/workflow-run" + "$ref": "#/components/examples/network-configuration" } } } @@ -38271,30 +38794,27 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "workflow-runs" + "category": "orgs", + "subcategory": "network-configurations" } }, "delete": { - "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", + "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": [ - "actions" + "hosted-compute" ], + "operationId": "hosted-compute/delete-network-configuration-from-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-runs#delete-a-workflow-run" + "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/org" }, { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/network-configuration-id" } ], "responses": { @@ -38305,32 +38825,29 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "workflow-runs" + "category": "orgs", + "subcategory": "network-configurations" } } }, - "/repos/{owner}/{repo}/actions/runs/{run_id}/approvals": { + "/orgs/{org}/settings/network-settings/{network_settings_id}": { "get": { - "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.", + "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": [ - "actions" + "hosted-compute" ], - "operationId": "actions/get-reviews-for-run", + "operationId": "hosted-compute/get-network-settings-for-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-runs#get-the-review-history-for-a-workflow-run" + "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/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/network-settings-id" } ], "responses": { @@ -38339,70 +38856,80 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/environment-approvals" - } + "$ref": "#/components/schemas/network-settings" }, "examples": { "default": { - "$ref": "#/components/examples/environment-approvals-items" + "$ref": "#/components/examples/network-settings" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "workflow-runs" + "category": "orgs", + "subcategory": "network-configurations" } } }, - "/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.", + "/orgs/{org}/teams": { + "get": { + "summary": "List teams", + "description": "Lists all teams in an organization that are visible to the authenticated user.", "tags": [ - "actions" + "teams" ], - "operationId": "actions/approve-workflow-run", + "operationId": "teams/list", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-runs#approve-a-workflow-run-for-a-fork-pull-request" + "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/run-id" + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/team-type" } ], "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/empty-object" + "type": "array", + "items": { + "$ref": "#/components/schemas/team" + } }, "examples": { "default": { - "value": null + "$ref": "#/components/examples/team-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, "403": { "$ref": "#/components/responses/forbidden" } @@ -38410,175 +38937,176 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "workflow-runs" + "category": "teams", + "subcategory": "teams" } - } - }, - "/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts": { - "get": { - "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.", + }, + "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": [ - "actions" + "teams" ], - "operationId": "actions/list-workflow-run-artifacts", + "operationId": "teams/create", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/artifacts#list-workflow-run-artifacts" + "url": "https://docs.github.com/rest/teams/teams#create-a-team" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/run-id" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/artifact-name" - }, - { - "$ref": "#/components/parameters/direction" + "$ref": "#/components/parameters/org" } ], - "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" - } + "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." + }, + "parent_team_slug": { + "type": "string", + "description": "The slug of a team to set as the parent team. Ignored when `parent_team_id` is also provided." } }, - "examples": { - "default": { - "$ref": "#/components/examples/artifact-paginated" + "required": [ + "name" + ] + }, + "examples": { + "default": { + "value": { + "name": "Justice League", + "description": "A great team", + "permission": "push", + "notification_setting": "notifications_enabled", + "privacy": "closed" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "artifacts" - } - } - }, - "/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": [ - "actions" - ], - "operationId": "actions/get-workflow-run-attempt", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-runs#get-a-workflow-run-attempt" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/run-id" - }, - { - "$ref": "#/components/parameters/attempt-number" - }, - { - "$ref": "#/components/parameters/exclude-pull-requests" - } - ], "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/workflow-run" + "$ref": "#/components/schemas/team-full" }, "examples": { "default": { - "$ref": "#/components/examples/workflow-run" + "$ref": "#/components/examples/team-full" } } } } + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "workflow-runs" - } + "category": "teams", + "subcategory": "teams" + }, + "x-github-breaking-changes": [ + { + "changeset": "remove_team_permission", + "patch": { + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "permission": null + } + } + } + } + } + }, + "version": "2026-03-10" + } + ] } }, - "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs": { + "/orgs/{org}/teams/{team_slug}": { "get": { - "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.", + "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": [ - "actions" + "teams" ], - "operationId": "actions/list-jobs-for-workflow-run-attempt", + "operationId": "teams/get-by-name", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-jobs#list-jobs-for-a-workflow-run-attempt" + "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/run-id" - }, - { - "$ref": "#/components/parameters/attempt-number" - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/team-slug" } ], "responses": { @@ -38587,34 +39115,14 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "jobs" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "jobs": { - "type": "array", - "items": { - "$ref": "#/components/schemas/job" - } - } - } + "$ref": "#/components/schemas/team-full" }, "examples": { "default": { - "$ref": "#/components/examples/job-paginated" + "$ref": "#/components/examples/team-full" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, "404": { @@ -38624,257 +39132,272 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "workflow-jobs" + "category": "teams", + "subcategory": "teams" } - } - }, - "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs": { - "get": { - "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.", + }, + "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": [ - "actions" + "teams" ], - "operationId": "actions/download-workflow-run-attempt-logs", + "operationId": "teams/update-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-runs#download-workflow-run-attempt-logs" + "url": "https://docs.github.com/rest/teams/teams#update-a-team" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/attempt-number" + "$ref": "#/components/parameters/team-slug" } ], - "responses": { - "302": { - "description": "Response", - "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": { - "type": "string" + "requestBody": { + "required": false, + "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. 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" + ] + }, + "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 + }, + "parent_team_slug": { + "type": "string", + "description": "The slug of a team to set as the parent team. Ignored when `parent_team_id` is also provided.", + "nullable": true + } + } + }, + "examples": { + "default": { + "value": { + "name": "new team name", + "description": "new team description", + "privacy": "closed", + "notification_setting": "notifications_enabled" + } } } } } }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "workflow-runs" - } - } - }, - "/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": [ - "actions" - ], - "operationId": "actions/cancel-workflow-run", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-runs#cancel-a-workflow-run" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/run-id" - } - ], "responses": { - "202": { + "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" + } + } + } + } + }, + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/empty-object" + "$ref": "#/components/schemas/team-full" }, "examples": { "default": { - "value": null + "$ref": "#/components/examples/team-full" } } } } }, - "409": { - "$ref": "#/components/responses/conflict" + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "workflow-runs" + "category": "teams", + "subcategory": "teams" } - } - }, - "/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.", + }, + "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": [ - "actions" + "teams" ], - "operationId": "actions/review-custom-gates-for-run", + "operationId": "teams/delete-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-runs#review-custom-deployment-protection-rules-for-a-workflow-run" + "url": "https://docs.github.com/rest/teams/teams#delete-a-team" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/team-slug" } ], - "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" + }, + "422": { + "$ref": "#/components/responses/enterprise_team_unsupported" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [], - "category": "actions", - "subcategory": "workflow-runs" + "category": "teams", + "subcategory": "teams" } } }, - "/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.", + "/orgs/{org}/teams/{team_slug}/invitations": { + "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]\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": [ - "actions" + "teams" ], - "operationId": "actions/force-cancel-workflow-run", + "operationId": "teams/list-pending-invitations-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-runs#force-cancel-a-workflow-run" + "url": "https://docs.github.com/rest/teams/members#list-pending-team-invitations" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/team-slug" }, { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { - "202": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/empty-object" + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-invitation" + } }, "examples": { "default": { - "value": null + "$ref": "#/components/examples/organization-invitation-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "409": { - "$ref": "#/components/responses/conflict" + "422": { + "$ref": "#/components/responses/enterprise_team_unsupported" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "workflow-runs" + "category": "teams", + "subcategory": "members" } } }, - "/repos/{owner}/{repo}/actions/runs/{run_id}/jobs": { + "/orgs/{org}/teams/{team_slug}/members": { "get": { - "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.", + "summary": "List team members", + "description": "Team members will include the members of child teams.\n\nEach member includes their `role` on the team (`member` or `maintainer`) and an `inherited` flag indicating whether the membership is inherited from a child team (`true`) or is a direct membership (`false`). These fields let you read a member's role and direct/inherited status without additional requests.\n\nTo list members in a team, the team must be visible to the authenticated user.", "tags": [ - "actions" + "teams" ], - "operationId": "actions/list-jobs-for-workflow-run", + "operationId": "teams/list-members-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-jobs#list-jobs-for-a-workflow-run" + "url": "https://docs.github.com/rest/teams/members#list-team-members" }, "parameters": [ { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/team-slug" }, { - "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.", + "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" } }, { @@ -38890,26 +39413,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/team-member" } }, "examples": { "default": { - "$ref": "#/components/examples/job-paginated" + "$ref": "#/components/examples/team-member-items" } } } @@ -38924,221 +39435,206 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "workflow-jobs" + "category": "teams", + "subcategory": "members" } } }, - "/repos/{owner}/{repo}/actions/runs/{run_id}/logs": { + "/orgs/{org}/teams/{team_slug}/memberships/{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.\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.", + "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": [ - "actions" + "teams" ], - "operationId": "actions/download-workflow-run-logs", + "operationId": "teams/get-membership-for-user-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-runs#download-workflow-run-logs" + "url": "https://docs.github.com/rest/teams/members#get-team-membership-for-a-user" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/team-slug" }, { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/username" } ], "responses": { - "302": { + "200": { "description": "Response", - "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", + "content": { + "application/json": { "schema": { - "type": "string" + "$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" + } } } } + }, + "404": { + "description": "if user has no team membership" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "workflow-runs" + "category": "teams", + "subcategory": "members" } }, - "delete": { - "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.", + "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": [ - "actions" + "teams" ], - "operationId": "actions/delete-workflow-run-logs", + "operationId": "teams/add-or-update-membership-for-user-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-runs#delete-workflow-run-logs" + "url": "https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/team-slug" }, { - "$ref": "#/components/parameters/run-id" + "$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": { - "204": { - "description": "Response" + "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" + } + } + } + } }, "403": { - "$ref": "#/components/responses/forbidden" + "description": "Forbidden if team synchronization is set up" }, - "500": { - "$ref": "#/components/responses/internal_error" + "422": { + "description": "Unprocessable Entity if you attempt to add an organization to a team" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "workflow-runs" + "category": "teams", + "subcategory": "members" } - } - }, - "/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments": { - "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.\n\nIf the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + }, + "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": [ - "actions" + "teams" ], - "operationId": "actions/get-pending-deployments-for-run", + "operationId": "teams/remove-membership-for-user-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-runs#get-pending-deployments-for-a-workflow-run" + "url": "https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/team-slug" }, { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/username" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/pending-deployment" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/pending-deployment-items" - } - } - } - } + "204": { + "description": "Response" + }, + "403": { + "description": "Forbidden if team synchronization is set up" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "workflow-runs" + "category": "teams", + "subcategory": "members" } - }, - "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\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.", + } + }, + "/orgs/{org}/teams/{team_slug}/repos": { + "get": { + "summary": "List team repositories", + "description": "Lists a team's repositories visible to the authenticated user.\n\nOAuth app tokens and personal access tokens (classic) need the `read:org` or `repo` scope to use this endpoint.\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": [ - "actions" + "teams" ], - "operationId": "actions/review-pending-deployments-for-run", + "operationId": "teams/list-repos-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-runs#review-pending-deployments-for-a-workflow-run" + "url": "https://docs.github.com/rest/teams/teams#list-team-repositories" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/team-slug" }, { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], - "requestBody": { - "required": true, - "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.", - "enum": [ - "approved", - "rejected" - ], - "example": "approved" - }, - "comment": { - "type": "string", - "description": "A comment to accompany the deployment review", - "example": "Ship it!" - } - }, - "required": [ - "environment_ids", - "state", - "comment" - ] - }, - "examples": { - "default": { - "value": { - "environment_ids": [ - 161171787 - ], - "state": "approved", - "comment": "Ship it!" - } - } - } - } - } - }, "responses": { "200": { "description": "Response", @@ -39147,118 +39643,110 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/deployment" + "$ref": "#/components/schemas/minimal-repository" } }, "examples": { "default": { - "$ref": "#/components/examples/deployment-items" + "$ref": "#/components/examples/minimal-repository-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "actions", - "subcategory": "workflow-runs" + "enabledForGitHubApps": true, + "category": "teams", + "subcategory": "teams" } } }, - "/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.", + "/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}": { + "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/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": [ - "actions" + "teams" ], - "operationId": "actions/re-run-workflow", + "operationId": "teams/check-permissions-for-repo-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-runs#re-run-a-workflow" + "url": "https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/team-slug" }, { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" } ], - "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", + "200": { + "description": "Alternative response with repository permissions", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/empty-object" + "$ref": "#/components/schemas/team-repository" }, "examples": { - "default": { - "value": null + "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, - "category": "actions", - "subcategory": "workflow-runs" + "category": "teams", + "subcategory": "teams" } - } - }, - "/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.", + }, + "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": [ - "actions" + "teams" ], - "operationId": "actions/re-run-workflow-failed-jobs", + "operationId": "teams/add-or-update-repo-permissions-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-runs#re-run-failed-jobs-from-a-workflow-run" + "url": "https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/team-slug" }, { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" } ], "requestBody": { @@ -39267,114 +39755,92 @@ "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." + "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": { - "value": null + "summary": "Adding a team to an organization repository with the write role", + "value": { + "permission": "push" + } } } } } }, "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/empty-object" - }, - "examples": { - "default": { - "value": null - } - } - } - } + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "workflow-runs" + "category": "teams", + "subcategory": "teams" } - } - }, - "/repos/{owner}/{repo}/actions/runs/{run_id}/timing": { - "get": { - "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.", + }, + "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": [ - "actions" + "teams" ], - "operationId": "actions/get-workflow-run-usage", + "operationId": "teams/remove-repo-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-runs#get-workflow-run-usage" + "url": "https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/team-slug" }, { - "$ref": "#/components/parameters/run-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/workflow-run-usage" - }, - "examples": { - "default": { - "$ref": "#/components/examples/workflow-run-usage" - } - } - } - } + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "actions", - "subcategory": "workflow-runs" + "enabledForGitHubApps": true, + "category": "teams", + "subcategory": "teams" } } }, - "/repos/{owner}/{repo}/actions/secrets": { + "/orgs/{org}/teams/{team_slug}/teams": { "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.", + "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": [ - "actions" + "teams" ], - "operationId": "actions/list-repo-secrets", + "operationId": "teams/list-child-in-org", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/secrets#list-repository-secrets" + "url": "https://docs.github.com/rest/teams/teams#list-child-teams" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/team-slug" }, { "$ref": "#/components/parameters/per-page" @@ -39385,30 +39851,18 @@ ], "responses": { "200": { - "description": "Response", + "description": "if child teams exist", "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/team" } }, "examples": { - "default": { - "$ref": "#/components/examples/actions-secret-paginated" + "response-if-child-teams-exist": { + "$ref": "#/components/examples/team-items-response-if-child-teams-exist" } } } @@ -39423,67 +39877,144 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "secrets" + "category": "teams", + "subcategory": "teams" } } }, - "/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.", + "/orgs/{org}/{security_product}/{enablement}": { + "post": { + "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": [ - "actions" + "orgs" ], - "operationId": "actions/get-repo-public-key", + "operationId": "orgs/enable-or-disable-security-product-on-all-org-repos", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/secrets#get-a-repository-public-key" + "url": "https://docs.github.com/rest/orgs/orgs#enable-or-disable-a-security-feature-for-an-organization" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/org" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/security-product" + }, + { + "$ref": "#/components/parameters/org-security-product-enablement" + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "properties": { + "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", + "enum": [ + "default", + "extended" + ] + } + } + }, + "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 `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/actions-public-key" + "$ref": "#/components/schemas/rate-limit-overview" }, "examples": { "default": { - "$ref": "#/components/examples/actions-public-key" + "$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" + } } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "secrets" + "category": "rate-limit", + "subcategory": "rate-limit" } } }, - "/repos/{owner}/{repo}/actions/secrets/{secret_name}": { + "/repos/{owner}/{repo}": { "get": { - "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.", + "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": [ - "actions" + "repos" ], - "operationId": "actions/get-repo-secret", + "operationId": "repos/get", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/secrets#get-a-repository-secret" + "url": "https://docs.github.com/rest/repos/repos#get-a-repository" }, "parameters": [ { @@ -39491,9 +40022,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/secret-name" } ], "responses": { @@ -39502,34 +40030,43 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-secret" + "$ref": "#/components/schemas/full-repository" }, "examples": { - "default": { - "$ref": "#/components/examples/actions-secret" + "default-response": { + "$ref": "#/components/examples/full-repository-default-response" } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "301": { + "$ref": "#/components/responses/moved_permanently" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "secrets" + "category": "repos", + "subcategory": "repos" } }, - "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.", + "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": [ - "actions" + "repos" ], - "operationId": "actions/create-or-update-repo-secret", + "operationId": "repos/update", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/secrets#create-or-update-a-repository-secret" + "url": "https://docs.github.com/rest/repos/repos#update-a-repository" }, "parameters": [ { @@ -39537,38 +40074,301 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/secret-name" } ], "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { - "encrypted_value": { + "name": { "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/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})$" + "description": "The name of the repository." }, - "key_id": { + "description": { "type": "string", - "description": "ID of the key you used to encrypt the secret." + "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://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 visibility of the repository.", + "enum": [ + "public", + "private" + ] + }, + "security_and_analysis": { + "type": "object", + "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": { + "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`." + } + } + }, + "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`." + } + } + }, + "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`." + } + } + }, + "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`." + } + } + }, + "secret_scanning_delegated_alert_dismissal": { + "type": "object", + "description": "Use the `status` property to enable or disable secret scanning delegated alert dismissal for this repository.", + "properties": { + "status": { + "type": "string", + "description": "Can be `enabled` or `disabled`." + } + } + }, + "secret_scanning_delegated_bypass": { + "type": "object", + "description": "Use the `status` property to enable or disable secret scanning delegated bypass for this repository.", + "properties": { + "status": { + "type": "string", + "description": "Can be `enabled` or `disabled`." + } + } + }, + "secret_scanning_delegated_bypass_options": { + "type": "object", + "description": "Feature options for secret scanning delegated bypass.\nThis object is only honored when `security_and_analysis.secret_scanning_delegated_bypass.status` is set to `enabled`.\nYou can send this object in the same request as `secret_scanning_delegated_bypass`, or update just the options in a separate request.", + "properties": { + "reviewers": { + "type": "array", + "description": "The bypass reviewers for secret scanning delegated bypass.\nIf you omit this field, the existing set of reviewers is unchanged.", + "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" + ] + }, + "mode": { + "type": "string", + "description": "The bypass mode for the reviewer", + "enum": [ + "ALWAYS", + "EXEMPT" + ], + "default": "ALWAYS" + } + } + } + } + } + } + } + }, + "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_pull_requests": { + "type": "boolean", + "description": "Either `true` to allow pull requests for this repository or `false` to prevent pull requests.", + "default": true + }, + "pull_request_creation_policy": { + "type": "string", + "description": "The policy that controls who can create pull requests for this repository: `all` or `collaborators_only`.", + "enum": [ + "all", + "collaborators_only" + ] + }, + "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": [ - "encrypted_value", - "key_id" - ] + } }, "examples": { "default": { "value": { - "encrypted_value": "c2VjcmV0", - "key_id": "012345678912345678" + "name": "Hello-World", + "description": "This is your first repository", + "homepage": "https://github.com", + "private": true, + "has_issues": true, + "has_projects": true, + "has_wiki": true } } } @@ -39576,42 +40376,51 @@ } }, "responses": { - "201": { - "description": "Response when creating a secret", + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/empty-object" + "$ref": "#/components/schemas/full-repository" }, "examples": { "default": { - "value": null + "$ref": "#/components/examples/full-repository" } } } } }, - "204": { - "description": "Response when updating a secret" + "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, - "category": "actions", - "subcategory": "secrets" + "category": "repos", + "subcategory": "repos" } }, "delete": { - "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.", + "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": [ - "actions" + "repos" ], - "operationId": "actions/delete-repo-secret", + "operationId": "repos/delete", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/secrets#delete-a-repository-secret" + "url": "https://docs.github.com/rest/repos/repos#delete-a-repository" }, "parameters": [ { @@ -39619,35 +40428,67 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/secret-name" } ], "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:", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + }, + "examples": { + "default": { + "value": { + "message": "Organization members cannot delete repositories.", + "documentation_url": "https://docs.github.com/rest/repos/repos#delete-a-repository" + } + } + } + } + } + }, + "307": { + "$ref": "#/components/responses/temporary_redirect" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "secrets" + "category": "repos", + "subcategory": "repos" } } }, - "/repos/{owner}/{repo}/actions/variables": { + "/repos/{owner}/{repo}/actions/artifacts": { "get": { - "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.", + "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": [ "actions" ], - "operationId": "actions/list-repo-variables", + "operationId": "actions/list-artifacts-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/variables#list-repository-variables" + "url": "https://docs.github.com/rest/actions/artifacts#list-artifacts-for-a-repository" }, "parameters": [ { @@ -39657,10 +40498,13 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/variables-per-page" + "$ref": "#/components/parameters/per-page" }, { "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/artifact-name" } ], "responses": { @@ -39672,23 +40516,23 @@ "type": "object", "required": [ "total_count", - "variables" + "artifacts" ], "properties": { "total_count": { "type": "integer" }, - "variables": { + "artifacts": { "type": "array", "items": { - "$ref": "#/components/schemas/actions-variable" + "$ref": "#/components/schemas/artifact" } } } }, "examples": { "default": { - "$ref": "#/components/examples/actions-variables-paginated" + "$ref": "#/components/examples/artifact-paginated" } } } @@ -39704,19 +40548,21 @@ "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "actions", - "subcategory": "variables" + "subcategory": "artifacts" } - }, - "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.", + } + }, + "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}": { + "get": { + "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": [ "actions" ], - "operationId": "actions/create-repo-variable", + "operationId": "actions/get-artifact", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/variables#create-a-repository-variable" + "url": "https://docs.github.com/rest/actions/artifacts#get-an-artifact" }, "parameters": [ { @@ -39724,76 +40570,239 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/artifact-id" } ], - "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." - } + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/artifact" }, - "required": [ - "name", - "value" - ] - }, - "examples": { - "default": { - "value": { - "name": "USERNAME", - "value": "octocat" + "examples": { + "default": { + "$ref": "#/components/examples/artifact" } } } } } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "artifacts" + } + }, + "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": [ + "actions" + ], + "operationId": "actions/delete-artifact", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/artifacts#delete-an-artifact" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/artifact-id" + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "artifacts" + } + } + }, + "/repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}": { + "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`.\n\nOAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "actions" + ], + "operationId": "actions/download-artifact", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/artifacts#download-an-artifact" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/artifact-id" + }, + { + "name": "archive_format", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "302": { + "description": "Response", + "headers": { + "Location": { + "$ref": "#/components/headers/location" + } + } + }, + "410": { + "$ref": "#/components/responses/gone" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "artifacts" + } + } + }, + "/repos/{owner}/{repo}/actions/cache/retention-limit": { + "get": { + "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": [ + "actions" + ], + "operationId": "actions/get-actions-cache-retention-limit-for-repository", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/cache#get-github-actions-cache-retention-limit-for-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + } + ], "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/empty-object" + "$ref": "#/components/schemas/actions-cache-retention-limit-for-repository" }, "examples": { "default": { - "value": null + "$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": "variables" + "subcategory": "cache" + } + }, + "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": [ + "actions" + ], + "operationId": "actions/set-actions-cache-retention-limit-for-repository", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/cache#set-github-actions-cache-retention-limit-for-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-cache-retention-limit-for-repository" + }, + "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" } } }, - "/repos/{owner}/{repo}/actions/variables/{name}": { + "/repos/{owner}/{repo}/actions/cache/storage-limit": { "get": { - "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.", + "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": [ "actions" ], - "operationId": "actions/get-repo-variable", + "operationId": "actions/get-actions-cache-storage-limit-for-repository", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/variables#get-a-repository-variable" + "url": "https://docs.github.com/rest/actions/cache#get-github-actions-cache-storage-limit-for-a-repository" }, "parameters": [ { @@ -39801,9 +40810,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/variable-name" } ], "responses": { @@ -39812,34 +40818,40 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-variable" + "$ref": "#/components/schemas/actions-cache-storage-limit-for-repository" }, "examples": { "default": { - "$ref": "#/components/examples/actions-variable" + "$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": "variables" + "subcategory": "cache" } }, - "patch": { - "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.", + "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": [ "actions" ], - "operationId": "actions/update-repo-variable", + "operationId": "actions/set-actions-cache-storage-limit-for-repository", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/variables#update-a-repository-variable" + "url": "https://docs.github.com/rest/actions/cache#set-github-actions-cache-storage-limit-for-a-repository" }, "parameters": [ { @@ -39847,9 +40859,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/variable-name" } ], "requestBody": { @@ -39857,24 +40866,11 @@ "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." - } - } + "$ref": "#/components/schemas/actions-cache-storage-limit-for-repository" }, "examples": { - "default": { - "value": { - "name": "USERNAME", - "value": "octocat" - } + "selected_actions": { + "$ref": "#/components/examples/actions-cache-storage-limit" } } } @@ -39883,25 +40879,36 @@ "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": "variables" + "subcategory": "cache" } - }, - "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.", + } + }, + "/repos/{owner}/{repo}/actions/cache/usage": { + "get": { + "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": [ "actions" ], - "operationId": "actions/delete-repo-variable", + "operationId": "actions/get-actions-cache-usage", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/variables#delete-a-repository-variable" + "url": "https://docs.github.com/rest/actions/cache#get-github-actions-cache-usage-for-a-repository" }, "parameters": [ { @@ -39909,35 +40916,44 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/variable-name" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-cache-usage-by-repository" + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-cache-usage" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "actions", - "subcategory": "variables" + "subcategory": "cache" } } }, - "/repos/{owner}/{repo}/actions/workflows": { + "/repos/{owner}/{repo}/actions/caches": { "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.", + "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": [ "actions" ], - "operationId": "actions/list-repo-workflows", + "operationId": "actions/get-actions-cache-list", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflows#list-repository-workflows" + "url": "https://docs.github.com/rest/actions/cache#list-github-actions-caches-for-a-repository" }, "parameters": [ { @@ -39951,6 +40967,18 @@ }, { "$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": { @@ -39959,26 +40987,11 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "workflows" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "workflows": { - "type": "array", - "items": { - "$ref": "#/components/schemas/workflow" - } - } - } + "$ref": "#/components/schemas/actions-cache-list" }, "examples": { "default": { - "$ref": "#/components/examples/workflow-paginated" + "$ref": "#/components/examples/actions-cache-list" } } } @@ -39993,22 +41006,21 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, + "previews": [], "category": "actions", - "subcategory": "workflows" + "subcategory": "cache" } - } - }, - "/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.", + }, + "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": [ "actions" ], - "operationId": "actions/get-workflow", + "operationId": "actions/delete-actions-cache-by-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflows#get-a-workflow" + "url": "https://docs.github.com/rest/actions/cache#delete-github-actions-caches-for-a-repository-using-a-cache-key" }, "parameters": [ { @@ -40018,7 +41030,10 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/workflow-id" + "$ref": "#/components/parameters/actions-cache-key-required" + }, + { + "$ref": "#/components/parameters/actions-cache-git-ref-full" } ], "responses": { @@ -40027,11 +41042,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/workflow" + "$ref": "#/components/schemas/actions-cache-list" }, "examples": { "default": { - "$ref": "#/components/examples/workflow" + "$ref": "#/components/examples/actions-cache-list" } } } @@ -40042,21 +41057,21 @@ "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "actions", - "subcategory": "workflows" + "subcategory": "cache" } } }, - "/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.", + "/repos/{owner}/{repo}/actions/caches/{cache_id}": { + "delete": { + "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": [ "actions" ], - "operationId": "actions/disable-workflow", + "operationId": "actions/delete-actions-cache-by-id", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflows#disable-a-workflow" + "url": "https://docs.github.com/rest/actions/cache#delete-a-github-actions-cache-for-a-repository-using-a-cache-id" }, "parameters": [ { @@ -40066,7 +41081,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/workflow-id" + "$ref": "#/components/parameters/cache-id" } ], "responses": { @@ -40078,21 +41093,21 @@ "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "actions", - "subcategory": "workflows" + "subcategory": "cache" } } }, - "/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", + "/repos/{owner}/{repo}/actions/concurrency_groups": { + "get": { + "summary": "List concurrency groups for a repository", + "description": "Lists the active concurrency groups for a repository.\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-concurrency-groups-for-repository", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflows#create-a-workflow-dispatch-event" + "url": "https://docs.github.com/rest/actions/concurrency-groups#list-concurrency-groups-for-a-repository" }, "parameters": [ { @@ -40102,140 +41117,56 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/workflow-id" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/pagination-after" } ], "responses": { - "204": { - "description": "Empty response when `return_run_details` parameter is `false`." - }, "200": { - "description": "Response including the workflow run ID and URLs when `return_run_details` parameter is `true`.", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/workflow-dispatch-response" + "$ref": "#/components/schemas/concurrency-group-list" }, "examples": { "default": { - "$ref": "#/components/examples/workflow-dispatch-response" + "$ref": "#/components/examples/concurrency-group-list" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - } - }, - "requestBody": { - "required": true, - "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 25. Any default properties configured in the workflow file will be used when `inputs` are omitted.", - "additionalProperties": true, - "maxProperties": 25 - }, - "return_run_details": { - "type": "boolean", - "description": "Whether the response should include the workflow run ID and URLs." - } - }, - "required": [ - "ref" - ] - }, - "examples": { - "default": { - "value": { - "ref": "topic-branch", - "inputs": { - "name": "Mona the Octocat", - "home": "San Francisco, CA" - } - } - } - } - } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "workflows" - }, - "x-github-breaking-changes": [ - { - "changeset": "change_workflow_dispatch_response_status", - "patch": [ - { - "op": "remove", - "path": "/responses/204" - }, - { - "op": "remove", - "path": "/requestBody/content/application~1json/schema/properties/return_run_details" - } - ], - "version": "2026-03-10" - } - ] - } - }, - "/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": { - "204": { - "description": "Response" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "actions", - "subcategory": "workflows" + "subcategory": "concurrency-groups" } } }, - "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs": { + "/repos/{owner}/{repo}/actions/concurrency_groups/{concurrency_group_name}": { "get": { - "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`.", + "summary": "Get a concurrency group for a repository", + "description": "Gets a specific concurrency group for a repository, including all instances in the group's queue.\nReturns 404 if the group is inactive or does not exist.\n\nOptionally, pass `ahead_of_run` or `ahead_of_job` to filter the results to only the items\nahead of the specified workflow run or job in the queue, plus the specified item itself\n(returned as the last element). This is useful for determining what is blocking a particular\nrun or job. Returns 422 if the specified run or job is not in this concurrency group.\n\nWhen using `ahead_of_run`, this matches workflow-level concurrency and any reusable-workflow\nleases held on behalf of that run. Job-level leases within the run are not considered to\nblock the run as a whole. Use `ahead_of_job` to match job-level concurrency and reusable-workflow\nleases on the job's ancestor paths.\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-workflow-runs", + "operationId": "actions/get-concurrency-group-for-repository", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflow-runs#list-workflow-runs-for-a-workflow" + "url": "https://docs.github.com/rest/actions/concurrency-groups#get-a-concurrency-group-for-a-repository" }, "parameters": [ { @@ -40245,37 +41176,27 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/workflow-id" - }, - { - "$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/concurrency-group-name" }, { - "$ref": "#/components/parameters/workflow-run-check-suite-id" + "name": "ahead_of_run", + "description": "Filter to items ahead of this workflow run ID in the queue, plus the run itself.\nMatches workflow-level concurrency and reusable-workflow leases held on behalf of\nthe run. Mutually exclusive with `ahead_of_job`.", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 1 + } }, { - "$ref": "#/components/parameters/workflow-run-head-sha" + "name": "ahead_of_job", + "description": "Filter to items ahead of this job ID in the queue, plus the job itself.\nMatches job-level concurrency and reusable-workflow leases on the job's\nancestor paths. Mutually exclusive with `ahead_of_run`.", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "minimum": 1 + } } ], "responses": { @@ -40284,56 +41205,42 @@ "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" - } - } - } + "$ref": "#/components/schemas/concurrency-group" }, "examples": { "default": { - "$ref": "#/components/examples/workflow-run-paginated" + "$ref": "#/components/examples/concurrency-group" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "actions", - "subcategory": "workflow-runs" + "subcategory": "concurrency-groups" } } }, - "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing": { + "/repos/{owner}/{repo}/actions/jobs/{job_id}": { "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.", + "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": [ "actions" ], - "operationId": "actions/get-workflow-usage", + "operationId": "actions/get-job-for-workflow-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/workflows#get-workflow-usage" + "url": "https://docs.github.com/rest/actions/workflow-jobs#get-a-job-for-a-workflow-run" }, "parameters": [ { @@ -40343,7 +41250,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/workflow-id" + "$ref": "#/components/parameters/job-id" } ], "responses": { @@ -40352,11 +41259,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/workflow-usage" + "$ref": "#/components/schemas/job" }, "examples": { "default": { - "$ref": "#/components/examples/workflow-usage" + "$ref": "#/components/examples/job" } } } @@ -40365,23 +41272,23 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, + "enabledForGitHubApps": true, "category": "actions", - "subcategory": "workflows" + "subcategory": "workflow-jobs" } } }, - "/repos/{owner}/{repo}/activity": { + "/repos/{owner}/{repo}/actions/jobs/{job_id}/logs": { "get": { - "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).\"", + "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-activities", + "operationId": "actions/download-job-logs-for-workflow-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#list-repository-activities" + "url": "https://docs.github.com/rest/actions/workflow-jobs#download-job-logs-for-a-workflow-run" }, "parameters": [ { @@ -40391,116 +41298,41 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/direction" - }, - { - "$ref": "#/components/parameters/per-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" - ] - } + "$ref": "#/components/parameters/job-id" } ], "responses": { - "200": { + "302": { "description": "Response", - "content": { - "application/json": { + "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", "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/activity" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/activity-items" - } + "type": "string" } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "repos" + "category": "actions", + "subcategory": "workflow-jobs" } } }, - "/repos/{owner}/{repo}/assignees": { - "get": { - "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.", + "/repos/{owner}/{repo}/actions/jobs/{job_id}/rerun": { + "post": { + "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": [ - "issues" + "actions" ], - "operationId": "issues/list-assignees", + "operationId": "actions/re-run-job-for-workflow-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/assignees#list-assignees" + "url": "https://docs.github.com/rest/actions/workflow-runs#re-run-a-job-from-a-workflow-run" }, "parameters": [ { @@ -40510,59 +41342,76 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/job-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." + }, + "enable_debugger": { + "type": "boolean", + "default": false, + "description": "Whether to enable the debugger for the re-run of this job." + } + } + }, + "examples": { + "default": { + "value": null + } + } + } + } + }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "value": null } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "404": { - "$ref": "#/components/responses/not_found" + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "assignees" + "category": "actions", + "subcategory": "workflow-runs" } } }, - "/repos/{owner}/{repo}/assignees/{assignee}": { + "/repos/{owner}/{repo}/actions/oidc/customization/sub": { "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": "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": [ - "issues" + "actions" ], - "operationId": "issues/check-user-can-be-assigned", + "operationId": "actions/get-custom-oidc-sub-claim-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/assignees#check-if-a-user-can-be-assigned" + "url": "https://docs.github.com/rest/actions/oidc#get-the-customization-template-for-an-oidc-subject-claim-for-a-repository" }, "parameters": [ { @@ -40570,50 +41419,48 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "name": "assignee", - "in": "path", - "required": true, - "schema": { - "type": "string" - } } ], "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": "Status response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/basic-error" + "$ref": "#/components/schemas/oidc-custom-sub-repo" + }, + "examples": { + "default": { + "$ref": "#/components/examples/oidc-custom-sub-repo" + } } } } + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "assignees" + "previews": [], + "category": "actions", + "subcategory": "oidc" } - } - }, - "/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).", + }, + "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": [ - "repos" + "actions" ], - "operationId": "repos/create-attestation", + "operationId": "actions/set-custom-oidc-sub-claim-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/attestations#create-an-attestation" + "url": "https://docs.github.com/rest/actions/oidc#set-the-customization-template-for-an-oidc-subject-claim-for-a-repository" }, "parameters": [ { @@ -40628,35 +41475,39 @@ "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": { - "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." + "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" + } + }, + "use_immutable_subject": { + "description": "Whether to opt in to the immutable OIDC subject claim format for this repository. When `true`, OIDC tokens will use a stable, repository-ID-based `sub` claim.", + "type": "boolean" } - }, - "required": [ - "bundle" - ] + } }, "examples": { "default": { - "$ref": "#/components/examples/attestation" + "value": { + "use_default": false, + "include_claim_keys": [ + "repo", + "context" + ] + } } } } @@ -40664,54 +41515,49 @@ }, "responses": { "201": { - "description": "response", + "description": "Empty response", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "description": "The ID of the attestation." - } - } + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "value": { - "id": 2 - } + "value": null } } } } }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "$ref": "#/components/responses/not_found" + }, + "400": { + "$ref": "#/components/responses/bad_request" }, "422": { - "$ref": "#/components/responses/validation_failed" + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "attestations" + "previews": [], + "category": "actions", + "subcategory": "oidc" } } }, - "/repos/{owner}/{repo}/attestations/{subject_digest}": { + "/repos/{owner}/{repo}/actions/organization-secrets": { "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).", + "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": [ - "repos" + "actions" ], - "operationId": "repos/list-attestations", + "operationId": "actions/list-repo-organization-secrets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/attestations#list-attestations" + "url": "https://docs.github.com/rest/actions/secrets#list-repository-organization-secrets" }, "parameters": [ { @@ -40724,29 +41570,7 @@ "$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" - } + "$ref": "#/components/parameters/page" } ], "responses": { @@ -40756,100 +41580,126 @@ "application/json": { "schema": { "type": "object", + "required": [ + "total_count", + "secrets" + ], "properties": { - "attestations": { + "total_count": { + "type": "integer" + }, + "secrets": { "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" - } - } + "$ref": "#/components/schemas/actions-secret" } } } }, "examples": { "default": { - "$ref": "#/components/examples/list-attestations" + "$ref": "#/components/examples/actions-secret-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "attestations" + "category": "actions", + "subcategory": "secrets" + } + } + }, + "/repos/{owner}/{repo}/actions/organization-variables": { + "get": { + "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": [ + "actions" + ], + "operationId": "actions/list-repo-organization-variables", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/variables#list-repository-organization-variables" }, - "x-github-breaking-changes": [ + "parameters": [ { - "changeset": "remove_bundle", - "patch": { - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "properties": { - "attestations": { - "items": { - "properties": { - "bundle": null - } - } - } - } + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/variables-per-page" + }, + { + "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "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/actions-variables-paginated" + } } } }, - "version": "2026-03-10" + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } } - ] + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "variables" + } } }, - "/repos/{owner}/{repo}/autolinks": { + "/repos/{owner}/{repo}/actions/permissions": { "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.", + "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": [ - "repos" + "actions" ], - "operationId": "repos/list-autolinks", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/autolinks#get-all-autolinks-of-a-repository" + "url": "https://docs.github.com/rest/actions/permissions#get-github-actions-permissions-for-a-repository" }, "parameters": [ { @@ -40865,14 +41715,11 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/autolink" - } + "$ref": "#/components/schemas/actions-repository-permissions" }, "examples": { "default": { - "$ref": "#/components/examples/autolink-items" + "$ref": "#/components/examples/actions-repository-permissions" } } } @@ -40880,22 +41727,22 @@ } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "autolinks" + "githubCloudOnly": false, + "category": "actions", + "subcategory": "permissions" } }, - "post": { - "summary": "Create an autolink reference for a repository", - "description": "Users with admin access to the repository can create an autolink.", + "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": [ - "repos" + "actions" ], - "operationId": "repos/create-autolink", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/autolinks#create-an-autolink-reference-for-a-repository" + "url": "https://docs.github.com/rest/actions/permissions#set-github-actions-permissions-for-a-repository" }, "parameters": [ { @@ -40905,6 +41752,11 @@ "$ref": "#/components/parameters/repo" } ], + "responses": { + "204": { + "description": "Response" + } + }, "requestBody": { "required": true, "content": { @@ -40912,84 +41764,51 @@ "schema": { "type": "object", "properties": { - "key_prefix": { - "type": "string", - "description": "This prefix appended by certain characters will generate a link any time it is found in an issue, pull request, or commit." + "enabled": { + "$ref": "#/components/schemas/actions-enabled" }, - "url_template": { - "type": "string", - "description": "The URL must contain `` for the reference number. `` matches different characters depending on the value of `is_alphanumeric`." + "allowed_actions": { + "$ref": "#/components/schemas/allowed-actions" }, - "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." + "sha_pinning_required": { + "$ref": "#/components/schemas/sha-pinning-required" } }, "required": [ - "key_prefix", - "url_template" + "enabled" ] }, "examples": { "default": { "value": { - "key_prefix": "TICKET-", - "url_template": "https://example.com/TICKET?query=", - "is_alphanumeric": true - } - } - } - } - } - }, - "responses": { - "201": { - "description": "response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/autolink" - }, - "examples": { - "default": { - "$ref": "#/components/examples/autolink" + "enabled": true, + "allowed_actions": "selected", + "sha_pinning_required": true } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/autolinks/1", - "schema": { - "type": "string" - } - } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "autolinks" + "githubCloudOnly": false, + "category": "actions", + "subcategory": "permissions" } } }, - "/repos/{owner}/{repo}/autolinks/{autolink_id}": { + "/repos/{owner}/{repo}/actions/permissions/access": { "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.", + "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": [ - "repos" + "actions" ], - "operationId": "repos/get-autolink", + "operationId": "actions/get-workflow-access-to-repository", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/autolinks#get-an-autolink-reference-of-a-repository" + "url": "https://docs.github.com/rest/actions/permissions#get-the-level-of-access-for-workflows-outside-of-the-repository" }, "parameters": [ { @@ -40997,9 +41816,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/autolink-id" } ], "responses": { @@ -41008,37 +41824,35 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/autolink" + "$ref": "#/components/schemas/actions-workflow-access-to-repository" }, "examples": { "default": { - "$ref": "#/components/examples/autolink" + "$ref": "#/components/examples/actions-workflow-access-to-repository" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "autolinks" + "previews": [], + "category": "actions", + "subcategory": "permissions" } }, - "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.", + "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": [ - "repos" + "actions" ], - "operationId": "repos/delete-autolink", + "operationId": "actions/set-workflow-access-to-repository", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/autolinks#delete-an-autolink-reference-from-a-repository" + "url": "https://docs.github.com/rest/actions/permissions#set-the-level-of-access-for-workflows-outside-of-the-repository" }, "parameters": [ { @@ -41046,38 +41860,48 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/autolink-id" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-workflow-access-to-repository" + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-workflow-access-to-repository" + } + } + } + } + }, "responses": { "204": { "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "autolinks" + "previews": [], + "category": "actions", + "subcategory": "permissions" } } }, - "/repos/{owner}/{repo}/automated-security-fixes": { + "/repos/{owner}/{repo}/actions/permissions/artifact-and-log-retention": { "get": { - "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)\".", + "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": [ - "repos" + "actions" ], - "operationId": "repos/check-automated-security-fixes", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#check-if-dependabot-security-updates-are-enabled-for-a-repository" + "url": "https://docs.github.com/rest/actions/permissions#get-artifact-and-log-retention-settings-for-a-repository" }, "parameters": [ { @@ -41089,17 +41913,17 @@ ], "responses": { "200": { - "description": "Response if Dependabot is enabled", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/check-automated-security-fixes" + "$ref": "#/components/schemas/actions-artifact-and-log-retention-response" }, "examples": { "default": { "value": { - "enabled": true, - "paused": false + "days": 90, + "maximum_allowed_days": 365 } } } @@ -41107,26 +41931,25 @@ } }, "404": { - "description": "Not Found if Dependabot is not enabled for the repository" + "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "repos" + "category": "actions", + "subcategory": "permissions" } }, "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)\".", + "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": [ - "repos" + "actions" ], - "operationId": "repos/enable-automated-security-fixes", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#enable-dependabot-security-updates" + "url": "https://docs.github.com/rest/actions/permissions#set-artifact-and-log-retention-settings-for-a-repository" }, "parameters": [ { @@ -41138,59 +41961,51 @@ ], "responses": { "204": { - "description": "Response" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "repos" - } - }, - "delete": { - "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": [ - "repos" - ], - "operationId": "repos/disable-automated-security-fixes", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#disable-dependabot-security-updates" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" + "description": "Empty response for successful settings update" }, - { - "$ref": "#/components/parameters/repo" + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } - ], - "responses": { - "204": { - "description": "Response" + }, + "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, - "category": "repos", - "subcategory": "repos" + "category": "actions", + "subcategory": "permissions" } } }, - "/repos/{owner}/{repo}/branches": { + "/repos/{owner}/{repo}/actions/permissions/fork-pr-contributor-approval": { "get": { - "summary": "List branches", - "description": "", + "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": [ - "repos" + "actions" ], - "operationId": "repos/list-branches", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branches#list-branches" + "url": "https://docs.github.com/rest/actions/permissions#get-fork-pr-contributor-approval-permissions-for-a-repository" }, "parameters": [ { @@ -41198,21 +42013,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "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" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -41221,22 +42021,14 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/short-branch" - } + "$ref": "#/components/schemas/actions-fork-pr-contributor-approval" }, "examples": { "default": { - "$ref": "#/components/examples/short-branch-with-protection-items" + "$ref": "#/components/examples/actions-fork-pr-contributor-approval" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, "404": { @@ -41244,24 +42036,21 @@ } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branches" + "category": "actions", + "subcategory": "permissions" } - } - }, - "/repos/{owner}/{repo}/branches/{branch}": { - "get": { - "summary": "Get a branch", - "description": "", + }, + "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": [ - "repos" + "actions" ], - "operationId": "repos/get-branch", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branches#get-a-branch" + "url": "https://docs.github.com/rest/actions/permissions#set-fork-pr-contributor-approval-permissions-for-a-repository" }, "parameters": [ { @@ -41269,53 +42058,55 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/branch" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/branch-with-protection" - }, - "examples": { - "default": { - "$ref": "#/components/examples/branch-get" + "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" } } } } - }, - "301": { - "$ref": "#/components/responses/moved_permanently" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branches" + "category": "actions", + "subcategory": "permissions" } } }, - "/repos/{owner}/{repo}/branches/{branch}/protection": { + "/repos/{owner}/{repo}/actions/permissions/fork-pr-workflows-private-repos": { "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.", + "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": [ - "repos" + "actions" ], - "operationId": "repos/get-branch-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#get-branch-protection" + "url": "https://docs.github.com/rest/actions/permissions#get-private-repo-fork-pr-workflow-settings-for-a-repository" }, "parameters": [ { @@ -41323,9 +42114,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/branch" } ], "responses": { @@ -41334,37 +42122,39 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/branch-protection" + "$ref": "#/components/schemas/actions-fork-pr-workflows-private-repos" }, "examples": { "default": { - "$ref": "#/components/examples/branch-protection" + "$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, - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "permissions" } }, "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.", + "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": [ - "repos" + "actions" ], - "operationId": "repos/update-branch-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#update-branch-protection" + "url": "https://docs.github.com/rest/actions/permissions#set-private-repo-fork-pr-workflow-settings-for-a-repository" }, "parameters": [ { @@ -41372,9 +42162,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/branch" } ], "requestBody": { @@ -41382,304 +42169,88 @@ "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" - ] + "$ref": "#/components/schemas/actions-fork-pr-workflows-private-repos-request" }, "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 - } + "$ref": "#/components/examples/actions-fork-pr-workflows-private-repos" } } } } }, + "responses": { + "204": { + "description": "Empty response for successful settings update" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "permissions" + } + } + }, + "/repos/{owner}/{repo}/actions/permissions/selected-actions": { + "get": { + "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": [ + "actions" + ], + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/permissions#get-allowed-actions-and-reusable-workflows-for-a-repository" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + } + ], "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/protected-branch" + "$ref": "#/components/schemas/selected-actions" }, "examples": { "default": { - "$ref": "#/components/examples/branch-protection-update" + "$ref": "#/components/examples/selected-actions" } } } } - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branch-protection" + "githubCloudOnly": false, + "category": "actions", + "subcategory": "permissions" } }, - "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://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "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": [ - "repos" + "actions" ], - "operationId": "repos/delete-branch-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#delete-branch-protection" + "url": "https://docs.github.com/rest/actions/permissions#set-allowed-actions-and-reusable-workflows-for-a-repository" }, "parameters": [ { @@ -41687,38 +42258,47 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/branch" } ], "responses": { "204": { "description": "Response" - }, - "403": { - "$ref": "#/components/responses/forbidden" + } + }, + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/selected-actions" + }, + "examples": { + "selected_actions": { + "$ref": "#/components/examples/selected-actions" + } + } + } } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branch-protection" + "githubCloudOnly": false, + "category": "actions", + "subcategory": "permissions" } } }, - "/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": { + "/repos/{owner}/{repo}/actions/permissions/workflow": { "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://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "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/get-admin-branch-protection", + "operationId": "actions/get-github-actions-default-workflow-permissions-repository", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#get-admin-branch-protection" + "url": "https://docs.github.com/rest/actions/permissions#get-default-workflow-permissions-for-a-repository" }, "parameters": [ { @@ -41726,9 +42306,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/branch" } ], "responses": { @@ -41737,11 +42314,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/protected-branch-admin-enforced" + "$ref": "#/components/schemas/actions-get-default-workflow-permissions" }, "examples": { "default": { - "$ref": "#/components/examples/protected-branch-admin-enforced-2" + "$ref": "#/components/examples/actions-default-workflow-permissions" } } } @@ -41751,20 +42328,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "permissions" } }, - "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://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.", + "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/set-admin-branch-protection", + "operationId": "actions/set-github-actions-default-workflow-permissions-repository", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#set-admin-branch-protection" + "url": "https://docs.github.com/rest/actions/permissions#set-default-workflow-permissions-for-a-repository" }, "parameters": [ { @@ -41772,23 +42349,26 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/branch" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/protected-branch-admin-enforced" - }, - "examples": { - "default": { - "$ref": "#/components/examples/protected-branch-admin-enforced-2" - } + "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": { + "$ref": "#/components/schemas/actions-set-default-workflow-permissions" + }, + "examples": { + "default": { + "$ref": "#/components/examples/actions-default-workflow-permissions" } } } @@ -41797,22 +42377,32 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "permissions" } - }, - "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.", + } + }, + "/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": [ - "repos" + "actions" ], - "operationId": "repos/delete-admin-branch-protection", + "operationId": "actions/list-self-hosted-runners-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#delete-admin-branch-protection" + "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" }, @@ -41820,36 +42410,68 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "runners" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "runners": { + "type": "array", + "items": { + "$ref": "#/components/schemas/runner" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/runner-paginated" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "self-hosted-runners" } } }, - "/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": { + "/repos/{owner}/{repo}/actions/runners/downloads": { "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://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "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-pull-request-review-protection", + "operationId": "actions/list-runner-applications-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#get-pull-request-review-protection" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#list-runner-applications-for-a-repository" }, "parameters": [ { @@ -41857,9 +42479,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/branch" } ], "responses": { @@ -41868,11 +42487,14 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/protected-branch-pull-request-review" + "type": "array", + "items": { + "$ref": "#/components/schemas/runner-application" + } }, "examples": { "default": { - "$ref": "#/components/examples/protected-branch-pull-request-review" + "$ref": "#/components/examples/runner-application-items" } } } @@ -41882,20 +42504,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "self-hosted-runners" } - }, - "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://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.", + } + }, + "/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-pull-request-review-protection", + "operationId": "actions/generate-runner-jitconfig-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#update-pull-request-review-protection" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#create-configuration-for-a-just-in-time-runner-for-a-repository" }, "parameters": [ { @@ -41903,120 +42527,56 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/branch" } ], "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { "type": "object", + "required": [ + "name", + "runner_group_id", + "labels" + ], "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/) have reviewed." + "name": { + "type": "string", + "description": "The name of the new runner." }, - "required_approving_review_count": { + "runner_group_id": { "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." + "description": "The ID of the runner group to register the runner to." }, - "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 + "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." }, - "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" - } - } - } + "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": { - "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 + "name": "New runner", + "runner_group_id": 1, + "labels": [ + "self-hosted", + "X64", + "macOS", + "no-gpu" + ], + "work_folder": "_work" } } } @@ -42024,42 +42584,38 @@ } }, "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" - } - } - } - } + "201": { + "$ref": "#/components/responses/actions_runner_jitconfig" + }, + "404": { + "$ref": "#/components/responses/not_found" }, "422": { - "$ref": "#/components/responses/validation_failed" + "$ref": "#/components/responses/validation_failed_simple" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "self-hosted-runners" } - }, - "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://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + } + }, + "/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-pull-request-review-protection", + "operationId": "actions/create-registration-token-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#delete-pull-request-review-protection" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#create-a-registration-token-for-a-repository" }, "parameters": [ { @@ -42067,38 +42623,44 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/branch" } ], "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, - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "self-hosted-runners" } } }, - "/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": { - "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://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.", + "/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-commit-signature-protection", + "operationId": "actions/create-remove-token-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#get-commit-signature-protection" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#create-a-remove-token-for-a-repository" }, "parameters": [ { @@ -42106,48 +42668,44 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/branch" } ], "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/protected-branch-admin-enforced" + "$ref": "#/components/schemas/authentication-token" }, "examples": { "default": { - "$ref": "#/components/examples/protected-branch-admin-enforced" + "$ref": "#/components/examples/authentication-token-2" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "self-hosted-runners" } - }, - "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.", + } + }, + "/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/create-commit-signature-protection", + "operationId": "actions/get-self-hosted-runner-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#create-commit-signature-protection" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#get-a-self-hosted-runner-for-a-repository" }, "parameters": [ { @@ -42157,7 +42715,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/runner-id" } ], "responses": { @@ -42166,37 +42724,34 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/protected-branch-admin-enforced" + "$ref": "#/components/schemas/runner" }, "examples": { "default": { - "$ref": "#/components/examples/protected-branch-admin-enforced" + "$ref": "#/components/examples/runner" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "self-hosted-runners" } }, "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.", + "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/delete-commit-signature-protection", + "operationId": "actions/delete-self-hosted-runner-from-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#delete-commit-signature-protection" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#delete-a-self-hosted-runner-from-a-repository" }, "parameters": [ { @@ -42206,36 +42761,36 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/runner-id" } ], "responses": { "204": { "description": "Response" }, - "404": { - "$ref": "#/components/responses/not_found" + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "self-hosted-runners" } } }, - "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": { + "/repos/{owner}/{repo}/actions/runners/{runner_id}/labels": { "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://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "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-status-checks-protection", + "operationId": "actions/list-labels-for-self-hosted-runner-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#get-status-checks-protection" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#list-labels-for-a-self-hosted-runner-for-a-repository" }, "parameters": [ { @@ -42245,24 +42800,12 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/runner-id" } ], "responses": { "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/status-check-policy" - }, - "examples": { - "default": { - "$ref": "#/components/examples/status-check-policy" - } - } - } - } + "$ref": "#/components/responses/actions_runner_labels" }, "404": { "$ref": "#/components/responses/not_found" @@ -42271,20 +42814,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "self-hosted-runners" } }, - "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.", + "post": { + "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/update-status-check-protection", + "operationId": "actions/add-custom-labels-to-self-hosted-runner-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#update-status-check-protection" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#add-custom-labels-to-a-self-hosted-runner-for-a-repository" }, "parameters": [ { @@ -42294,56 +42837,36 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/runner-id" } ], "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { "type": "object", + "required": [ + "labels" + ], "properties": { - "strict": { - "type": "boolean", - "description": "Require branches to be up to date before merging." - }, - "contexts": { + "labels": { "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.", + "minItems": 1, + "maxItems": 100, + "description": "The names of the custom labels to add to the runner.", "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." - } - } - } } } }, "examples": { "default": { "value": { - "strict": true, - "contexts": [ - "continuous-integration/travis-ci" + "labels": [ + "gpu", + "accelerated" ] } } @@ -42353,44 +42876,32 @@ }, "responses": { "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/status-check-policy" - }, - "examples": { - "default": { - "$ref": "#/components/examples/status-check-policy" - } - } - } - } + "$ref": "#/components/responses/actions_runner_labels" }, "404": { "$ref": "#/components/responses/not_found" }, "422": { - "$ref": "#/components/responses/validation_failed" + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "self-hosted-runners" } }, - "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.", + "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/remove-status-check-protection", + "operationId": "actions/set-custom-labels-for-self-hosted-runner-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#remove-status-check-protection" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#set-custom-labels-for-a-self-hosted-runner-for-a-repository" }, "parameters": [ { @@ -42400,33 +42911,71 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$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, - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "self-hosted-runners" } - } - }, - "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": { - "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://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + }, + "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/get-all-status-check-contexts", + "operationId": "actions/remove-all-custom-labels-from-self-hosted-runner-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#get-all-status-check-contexts" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#remove-all-custom-labels-from-a-self-hosted-runner-for-a-repository" }, "parameters": [ { @@ -42436,29 +42985,12 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/runner-id" } ], "responses": { "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "string" - } - }, - "examples": { - "default": { - "value": [ - "continuous-integration/travis-ci" - ] - } - } - } - } + "$ref": "#/components/responses/actions_runner_labels_readonly" }, "404": { "$ref": "#/components/responses/not_found" @@ -42467,20 +42999,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "self-hosted-runners" } - }, - "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.", + } + }, + "/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": [ - "repos" + "actions" ], - "operationId": "repos/add-status-check-contexts", + "operationId": "actions/remove-custom-label-from-self-hosted-runner-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#add-status-check-contexts" + "url": "https://docs.github.com/rest/actions/self-hosted-runners#remove-a-custom-label-from-a-self-hosted-runner-for-a-repository" }, "parameters": [ { @@ -42490,108 +43024,42 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/runner-id" + }, + { + "$ref": "#/components/parameters/runner-label-name" } ], - "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 adding status checks to a branch protection rule", - "value": { - "contexts": [ - "continuous-integration/travis-ci", - "continuous-integration/jenkins" - ] - } - } - } - } - } - }, "responses": { "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "string" - } - }, - "examples": { - "default": { - "value": [ - "continuous-integration/travis-ci", - "continuous-integration/jenkins" - ] - } - } - } - } - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "$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, - "requestBodyParameterName": "contexts", - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "self-hosted-runners" } - }, - "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.", + } + }, + "/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": [ - "repos" + "actions" ], - "operationId": "repos/set-status-check-contexts", + "operationId": "actions/list-workflow-runs-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#set-status-check-contexts" + "url": "https://docs.github.com/rest/actions/workflow-runs#list-workflow-runs-for-a-repository" }, "parameters": [ { @@ -42601,210 +43069,92 @@ "$ref": "#/components/parameters/repo" }, { - "$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": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "type": "string" - } - }, - "examples": { - "default": { - "value": [ - "continuous-integration/travis-ci" - ] - } - } - } - } + "$ref": "#/components/parameters/actor" }, - "422": { - "$ref": "#/components/responses/validation_failed" + { + "$ref": "#/components/parameters/workflow-run-branch" }, - "404": { - "$ref": "#/components/responses/not_found" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "requestBodyParameterName": "contexts", - "category": "branches", - "subcategory": "branch-protection" - } - }, - "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": [ - "repos" - ], - "operationId": "repos/remove-status-check-contexts", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#remove-status-check-contexts" - }, - "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/event" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/workflow-run-status" }, { - "$ref": "#/components/parameters/branch" + "$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": { - "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", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "type": "string" + "type": "object", + "required": [ + "total_count", + "workflow_runs" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "workflow_runs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/workflow-run" + } + } } }, "examples": { "default": { - "value": [ - "continuous-integration/travis-ci" - ] + "$ref": "#/components/examples/workflow-run-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "requestBodyParameterName": "contexts", - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "workflow-runs" } } }, - "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions": { + "/repos/{owner}/{repo}/actions/runs/{run_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://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.", + "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": [ - "repos" + "actions" ], - "operationId": "repos/get-access-restrictions", + "operationId": "actions/get-workflow-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#get-access-restrictions" + "url": "https://docs.github.com/rest/actions/workflow-runs#get-a-workflow-run" }, "parameters": [ { @@ -42814,7 +43164,10 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/run-id" + }, + { + "$ref": "#/components/parameters/exclude-pull-requests" } ], "responses": { @@ -42823,37 +43176,34 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/branch-restriction-policy" + "$ref": "#/components/schemas/workflow-run" }, "examples": { "default": { - "$ref": "#/components/examples/branch-restriction-policy" + "$ref": "#/components/examples/workflow-run" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "workflow-runs" } }, "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.", + "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": [ - "repos" + "actions" ], - "operationId": "repos/delete-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#delete-access-restrictions" + "url": "https://docs.github.com/rest/actions/workflow-runs#delete-a-workflow-run" }, "parameters": [ { @@ -42863,7 +43213,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/run-id" } ], "responses": { @@ -42874,22 +43224,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "workflow-runs" } } }, - "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": { + "/repos/{owner}/{repo}/actions/runs/{run_id}/approvals": { "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://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.", + "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": [ - "repos" + "actions" ], - "operationId": "repos/get-apps-with-access-to-protected-branch", + "operationId": "actions/get-reviews-for-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#get-apps-with-access-to-the-protected-branch" + "url": "https://docs.github.com/rest/actions/workflow-runs#get-the-review-history-for-a-workflow-run" }, "parameters": [ { @@ -42899,7 +43249,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/run-id" } ], "responses": { @@ -42910,38 +43260,37 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/integration" + "$ref": "#/components/schemas/environment-approvals" } }, "examples": { "default": { - "$ref": "#/components/examples/integration-items" + "$ref": "#/components/examples/environment-approvals-items" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "workflow-runs" } - }, + } + }, + "/repos/{owner}/{repo}/actions/runs/{run_id}/approve": { "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://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.", + "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": [ - "repos" + "actions" ], - "operationId": "repos/add-app-access-restrictions", + "operationId": "actions/approve-workflow-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#add-app-access-restrictions" + "url": "https://docs.github.com/rest/actions/workflow-runs#approve-a-workflow-run-for-a-fork-pull-request" }, "parameters": [ { @@ -42951,86 +43300,51 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/run-id" } ], - "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": [ - "octoapp" - ] - } - } - } - } - } - }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/integration" - } + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/integration-items" + "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, - "requestBodyParameterName": "apps", - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "workflow-runs" } - }, - "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://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.", + } + }, + "/repos/{owner}/{repo}/actions/runs/{run_id}/artifacts": { + "get": { + "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": [ - "repos" + "actions" ], - "operationId": "repos/set-app-access-restrictions", + "operationId": "actions/list-workflow-run-artifacts", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#set-app-access-restrictions" + "url": "https://docs.github.com/rest/actions/artifacts#list-workflow-run-artifacts" }, "parameters": [ { @@ -43040,86 +43354,77 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/run-id" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/artifact-name" + }, + { + "$ref": "#/components/parameters/direction" } ], - "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": [ - "octoapp" - ] - } - } - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/integration" + "type": "object", + "required": [ + "total_count", + "artifacts" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "artifacts": { + "type": "array", + "items": { + "$ref": "#/components/schemas/artifact" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/integration-items" + "$ref": "#/components/examples/artifact-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "requestBodyParameterName": "apps", - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "artifacts" } - }, - "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://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.", + } + }, + "/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": [ - "repos" + "actions" ], - "operationId": "repos/remove-app-access-restrictions", + "operationId": "actions/get-workflow-run-attempt", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#remove-app-access-restrictions" + "url": "https://docs.github.com/rest/actions/workflow-runs#get-a-workflow-run-attempt" }, "parameters": [ { @@ -43129,88 +43434,51 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/run-id" + }, + { + "$ref": "#/components/parameters/attempt-number" + }, + { + "$ref": "#/components/parameters/exclude-pull-requests" } ], - "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": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/integration" - } + "$ref": "#/components/schemas/workflow-run" }, "examples": { "default": { - "$ref": "#/components/examples/integration-items" + "$ref": "#/components/examples/workflow-run" } } } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "requestBodyParameterName": "apps", - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "workflow-runs" } } }, - "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": { + "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs": { "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://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.", + "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": [ - "repos" + "actions" ], - "operationId": "repos/get-teams-with-access-to-protected-branch", + "operationId": "actions/list-jobs-for-workflow-run-attempt", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#get-teams-with-access-to-the-protected-branch" + "url": "https://docs.github.com/rest/actions/workflow-jobs#list-jobs-for-a-workflow-run-attempt" }, "parameters": [ { @@ -43220,7 +43488,16 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/run-id" + }, + { + "$ref": "#/components/parameters/attempt-number" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -43229,17 +43506,34 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team" + "type": "object", + "required": [ + "total_count", + "jobs" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/job" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/team-items" + "$ref": "#/components/examples/job-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, "404": { @@ -43249,20 +43543,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "workflow-jobs" } - }, - "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://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.", + } + }, + "/repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs": { + "get": { + "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": [ - "repos" + "actions" ], - "operationId": "repos/add-team-access-restrictions", + "operationId": "actions/download-workflow-run-attempt-logs", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#add-team-access-restrictions" + "url": "https://docs.github.com/rest/actions/workflow-runs#download-workflow-run-attempt-logs" }, "parameters": [ { @@ -43272,98 +43568,95 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/run-id" + }, + { + "$ref": "#/components/parameters/attempt-number" } ], - "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" - ] - } + "responses": { + "302": { + "description": "Response", + "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": { + "type": "string" } } } } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "workflow-runs" + } + } + }, + "/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": [ + "actions" + ], + "operationId": "actions/cancel-workflow-run", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/workflow-runs#cancel-a-workflow-run" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/run-id" + } + ], "responses": { - "200": { + "202": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team" - } + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/team-items" + "value": null } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "requestBodyParameterName": "teams", - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "workflow-runs" } - }, - "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.", + } + }, + "/repos/{owner}/{repo}/actions/runs/{run_id}/concurrency_groups": { + "get": { + "summary": "List concurrency groups for a workflow run", + "description": "Lists all concurrency groups associated with a workflow run or its jobs.\n\nThe set of groups is derived from the run's configuration, so a group is\nincluded even when the run no longer has any items currently holding or\nwaiting in it. In that case the `group_members` array will be empty.\n`total_count` reflects the number of groups the run participates in by\nconfiguration, not the number with active items.\n\nThis differs from `GET /repos/{owner}/{repo}/actions/concurrency_groups/{group_name}`,\nwhich returns 404 when a group has no active items. That endpoint reports\nthe live state of a group repo-wide, while this endpoint reports the\ngroups associated with a specific run by configuration.\n\nResults are sorted by group name and support cursor-based pagination via\n`before` and `after`. The `after` cursor paginates forward only and does\nnot emit a `rel=\"prev\"` Link; use `before` to page backward from a\nforward page's `next` cursor.\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/set-team-access-restrictions", + "operationId": "actions/list-concurrency-groups-for-workflow-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#set-team-access-restrictions" + "url": "https://docs.github.com/rest/actions/concurrency-groups#list-concurrency-groups-for-a-workflow-run" }, "parameters": [ { @@ -43373,76 +43666,42 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/run-id" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" } ], - "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": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team" - } + "$ref": "#/components/schemas/concurrency-group-run-list" }, "examples": { "default": { - "$ref": "#/components/examples/team-items" + "$ref": "#/components/examples/concurrency-group-run-list" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, + "404": { + "$ref": "#/components/responses/not_found" + }, "422": { "$ref": "#/components/responses/validation_failed" } @@ -43450,21 +43709,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "requestBodyParameterName": "teams", - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "concurrency-groups" } - }, - "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.", + } + }, + "/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": [ - "repos" + "actions" ], - "operationId": "repos/remove-team-access-restrictions", + "operationId": "actions/review-custom-gates-for-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#remove-team-access-restrictions" + "url": "https://docs.github.com/rest/actions/workflow-runs#review-custom-deployment-protection-rules-for-a-workflow-run" }, "parameters": [ { @@ -43474,50 +43734,29 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/run-id" } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "oneOf": [ + "anyOf": [ { - "type": "object", - "properties": { - "teams": { - "type": "array", - "description": "The slug values for teams", - "items": { - "type": "string" - } - } - }, - "required": [ - "teams" - ], - "example": { - "teams": [ - "my-team" - ] - } + "$ref": "#/components/schemas/review-custom-gates-comment-required" }, { - "type": "array", - "description": "The slug values for teams", - "items": { - "type": "string" - } + "$ref": "#/components/schemas/review-custom-gates-state-required" } ] }, "examples": { "default": { - "summary": "Example removing a team in a branch protection rule", "value": { - "teams": [ - "octocats" - ] + "environment_name": "prod-eus", + "state": "approved", + "comment": "All health checks passed." } } } @@ -43525,48 +43764,30 @@ } }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/team-items" - } - } - } - } - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "requestBodyParameterName": "teams", - "category": "branches", - "subcategory": "branch-protection" + "previews": [], + "category": "actions", + "subcategory": "workflow-runs" } } }, - "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": { - "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://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": [ - "repos" + "/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": "repos/get-users-with-access-to-protected-branch", + "operationId": "actions/force-cancel-workflow-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#get-users-with-access-to-the-protected-branch" + "url": "https://docs.github.com/rest/actions/workflow-runs#force-cancel-a-workflow-run" }, "parameters": [ { @@ -43576,49 +43797,48 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/run-id" } ], "responses": { - "200": { + "202": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "value": null } } } } }, - "404": { - "$ref": "#/components/responses/not_found" + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "workflow-runs" } - }, - "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://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. |", + } + }, + "/repos/{owner}/{repo}/actions/runs/{run_id}/jobs": { + "get": { + "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/add-user-access-restrictions", + "operationId": "actions/list-jobs-for-workflow-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#add-user-access-restrictions" + "url": "https://docs.github.com/rest/actions/workflow-jobs#list-jobs-for-a-workflow-run" }, "parameters": [ { @@ -43628,46 +43848,181 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$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" + }, + { + "$ref": "#/components/parameters/page" } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "users": { - "type": "array", - "description": "The username for users", - "items": { - "type": "string" + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "jobs" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/job" + } } } }, - "required": [ - "users" - ], - "example": { - "users": [ - "mona" - ] - } - }, - "examples": { - "default": { - "summary": "Example adding a user in a branch protection rule", - "value": { - "users": [ - "octocat" - ] + "examples": { + "default": { + "$ref": "#/components/examples/job-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "workflow-jobs" + } + } + }, + "/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": [ + "actions" + ], + "operationId": "actions/download-workflow-run-logs", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/workflow-runs#download-workflow-run-logs" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/run-id" + } + ], + "responses": { + "302": { + "description": "Response", + "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": { + "type": "string" + } + } } } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "workflow-runs" + } + }, + "delete": { + "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": [ + "actions" + ], + "operationId": "actions/delete-workflow-run-logs", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/workflow-runs#delete-workflow-run-logs" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$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, + "category": "actions", + "subcategory": "workflow-runs" + } + } + }, + "/repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments": { + "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.\n\nIf the repository is private, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "actions" + ], + "operationId": "actions/get-pending-deployments-for-run", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/workflow-runs#get-pending-deployments-for-a-workflow-run" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/run-id" + } + ], "responses": { "200": { "description": "Response", @@ -43676,39 +44031,35 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/simple-user" + "$ref": "#/components/schemas/pending-deployment" } }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/pending-deployment-items" } } } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "requestBodyParameterName": "users", - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "workflow-runs" } }, - "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. |", + "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\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": [ - "repos" + "actions" ], - "operationId": "repos/set-user-access-restrictions", + "operationId": "actions/review-pending-deployments-for-run", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#set-user-access-restrictions" + "url": "https://docs.github.com/rest/actions/workflow-runs#review-pending-deployments-for-a-workflow-run" }, "parameters": [ { @@ -43718,7 +44069,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/run-id" } ], "requestBody": { @@ -43728,30 +44079,47 @@ "schema": { "type": "object", "properties": { - "users": { + "environment_ids": { "type": "array", - "description": "The username for users", + "description": "The list of environment ids to approve or reject", + "example": [ + 161171787, + 161171795 + ], "items": { - "type": "string" + "type": "integer", + "example": 161171787 } + }, + "state": { + "type": "string", + "description": "Whether to approve or reject deployment to the specified environments.", + "enum": [ + "approved", + "rejected" + ], + "example": "approved" + }, + "comment": { + "type": "string", + "description": "A comment to accompany the deployment review", + "example": "Ship it!" } }, "required": [ - "users" - ], - "example": { - "users": [ - "mona" - ] - } + "environment_ids", + "state", + "comment" + ] }, "examples": { "default": { - "summary": "Example replacing a user in a branch protection rule", "value": { - "users": [ - "octocat" - ] + "environment_ids": [ + 161171787 + ], + "state": "approved", + "comment": "Ship it!" } } } @@ -43766,39 +44134,37 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/simple-user" + "$ref": "#/components/schemas/deployment" } }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/deployment-items" } } } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "requestBodyParameterName": "users", - "category": "branches", - "subcategory": "branch-protection" + "enabledForGitHubApps": false, + "category": "actions", + "subcategory": "workflow-runs" } - }, - "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. |", + } + }, + "/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": [ - "repos" + "actions" ], - "operationId": "repos/remove-user-access-restrictions", + "operationId": "actions/re-run-workflow", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branch-protection#remove-user-access-restrictions" + "url": "https://docs.github.com/rest/actions/workflow-runs#re-run-a-workflow" }, "parameters": [ { @@ -43808,89 +44174,68 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/run-id" } ], "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { "type": "object", + "nullable": true, "properties": { - "users": { - "type": "array", - "description": "The username for users", - "items": { - "type": "string" - } + "enable_debug_logging": { + "type": "boolean", + "default": false, + "description": "Whether to enable debug logging for the re-run." } - }, - "required": [ - "users" - ], - "example": { - "users": [ - "mona" - ] } }, "examples": { "default": { - "summary": "Example removing a user in a branch protection rule", - "value": { - "users": [ - "octocat" - ] - } + "value": null } } } } }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "value": null } } } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "requestBodyParameterName": "users", - "category": "branches", - "subcategory": "branch-protection" + "category": "actions", + "subcategory": "workflow-runs" } } }, - "/repos/{owner}/{repo}/branches/{branch}/rename": { + "/repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs": { "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.", + "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": [ - "repos" + "actions" ], - "operationId": "repos/rename-branch", + "operationId": "actions/re-run-workflow-failed-jobs", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branches#rename-a-branch" + "url": "https://docs.github.com/rest/actions/workflow-runs#re-run-failed-jobs-from-a-workflow-run" }, "parameters": [ { @@ -43900,30 +44245,27 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/run-id" } ], "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { "type": "object", + "nullable": true, "properties": { - "new_name": { - "type": "string", - "description": "The new name of the branch." + "enable_debug_logging": { + "type": "boolean", + "default": false, + "description": "Whether to enable debug logging for the re-run." } - }, - "required": [ - "new_name" - ] + } }, "examples": { "default": { - "value": { - "new_name": "my_renamed_branch" - } + "value": null } } } @@ -43935,45 +44277,36 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/branch-with-protection" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/branch-with-protection" + "value": null } } } } - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branches" + "category": "actions", + "subcategory": "workflow-runs" } } }, - "/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.", + "/repos/{owner}/{repo}/actions/runs/{run_id}/timing": { + "get": { + "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": [ - "checks" + "actions" ], - "operationId": "checks/create", + "operationId": "actions/get-workflow-run-usage", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/checks/runs#create-a-check-run" + "url": "https://docs.github.com/rest/actions/workflow-runs#get-workflow-run-usage" }, "parameters": [ { @@ -43981,324 +44314,138 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/run-id" } ], - "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 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": [ - "name", - "head_sha" - ], - "discriminator": { - "propertyName": "status" + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/workflow-run-usage" }, - "oneOf": [ - { - "properties": { - "status": { - "enum": [ - "completed" - ] - } + "examples": { + "default": { + "$ref": "#/components/examples/workflow-run-usage" + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "actions", + "subcategory": "workflow-runs" + } + } + }, + "/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": [ + "actions" + ], + "operationId": "actions/list-repo-secrets", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/secrets#list-repository-secrets" + }, + "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", + "required": [ + "total_count", + "secrets" + ], + "properties": { + "total_count": { + "type": "integer" }, - "required": [ - "status", - "conclusion" - ], - "additionalProperties": true - }, - { - "properties": { - "status": { - "enum": [ - "queued", - "in_progress" - ] + "secrets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/actions-secret" } - }, - "additionalProperties": true - } - ] - }, - "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" - } - ] + "examples": { + "default": { + "$ref": "#/components/examples/actions-secret-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "secrets" + } + } + }, + "/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": [ + "actions" + ], + "operationId": "actions/get-repo-public-key", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/secrets#get-a-repository-public-key" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + } + ], "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/check-run" + "$ref": "#/components/schemas/actions-public-key" }, "examples": { - "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" + "default": { + "$ref": "#/components/examples/actions-public-key" } } } @@ -44308,22 +44455,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "checks", - "subcategory": "runs" + "category": "actions", + "subcategory": "secrets" } } }, - "/repos/{owner}/{repo}/check-runs/{check_run_id}": { + "/repos/{owner}/{repo}/actions/secrets/{secret_name}": { "get": { - "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.", + "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": [ - "checks" + "actions" ], - "operationId": "checks/get", + "operationId": "actions/get-repo-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/checks/runs#get-a-check-run" + "url": "https://docs.github.com/rest/actions/secrets#get-a-repository-secret" }, "parameters": [ { @@ -44333,7 +44480,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/check-run-id" + "$ref": "#/components/parameters/secret-name" } ], "responses": { @@ -44342,11 +44489,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/check-run" + "$ref": "#/components/schemas/actions-secret" }, "examples": { "default": { - "$ref": "#/components/examples/check-run" + "$ref": "#/components/examples/actions-secret" } } } @@ -44356,20 +44503,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "checks", - "subcategory": "runs" + "category": "actions", + "subcategory": "secrets" } }, - "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.", + "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": [ - "checks" + "actions" ], - "operationId": "checks/update", + "operationId": "actions/create-or-update-repo-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/checks/runs#update-a-check-run" + "url": "https://docs.github.com/rest/actions/secrets#create-or-update-a-repository-secret" }, "parameters": [ { @@ -44379,7 +44526,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/check-run-id" + "$ref": "#/components/parameters/secret-name" } ], "requestBody": { @@ -44389,257 +44536,26 @@ "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 of the check run. Only GitHub Actions can set a status of `waiting`, `pending`, or `requested`.", - "enum": [ - "queued", - "in_progress", - "completed", - "waiting", - "requested", - "pending" - ] - }, - "conclusion": { + "encrypted_value": { "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" - ] + "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})$" }, - "completed_at": { + "key_id": { "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" - ] - } + "description": "ID of the key you used to encrypt the secret." } }, - "anyOf": [ - { - "properties": { - "status": { - "enum": [ - "completed" - ] - } - }, - "required": [ - "conclusion" - ], - "additionalProperties": true - }, - { - "properties": { - "status": { - "enum": [ - "queued", - "in_progress" - ] - } - }, - "additionalProperties": true - } + "required": [ + "encrypted_value", + "key_id" ] }, "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" - } - ] - } + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678" } } } @@ -44647,41 +44563,42 @@ } }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "Response when creating a secret", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/check-run" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/check-run" + "value": null } } } } + }, + "204": { + "description": "Response when updating a secret" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "checks", - "subcategory": "runs" + "category": "actions", + "subcategory": "secrets" } - } - }, - "/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.", + }, + "delete": { + "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": [ - "checks" + "actions" ], - "operationId": "checks/list-annotations", + "operationId": "actions/delete-repo-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/checks/runs#list-check-run-annotations" + "url": "https://docs.github.com/rest/actions/secrets#delete-a-repository-secret" }, "parameters": [ { @@ -44691,59 +44608,33 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/check-run-id" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/secret-name" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/check-annotation" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/check-annotation-items" - } - } - } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "checks", - "subcategory": "runs" + "category": "actions", + "subcategory": "secrets" } } }, - "/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)\".", + "/repos/{owner}/{repo}/actions/variables": { + "get": { + "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": [ - "checks" + "actions" ], - "operationId": "checks/rerequest-run", + "operationId": "actions/list-repo-variables", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/checks/runs#rerequest-a-check-run" + "url": "https://docs.github.com/rest/actions/variables#list-repository-variables" }, "parameters": [ { @@ -44753,68 +44644,66 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/check-run-id" + "$ref": "#/components/parameters/variables-per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/empty-object" + "type": "object", + "required": [ + "total_count", + "variables" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "variables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/actions-variable" + } + } + } }, "examples": { "default": { - "value": null + "$ref": "#/components/examples/actions-variables-paginated" } } } - } - }, - "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" - } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "checks", - "subcategory": "runs" + "category": "actions", + "subcategory": "variables" } - } - }, - "/repos/{owner}/{repo}/check-suites": { + }, "post": { - "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.", + "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": [ - "checks" + "actions" ], - "operationId": "checks/create-suite", + "operationId": "actions/create-repo-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/checks/suites#create-a-check-suite" + "url": "https://docs.github.com/rest/actions/variables#create-a-repository-variable" }, "parameters": [ { @@ -44831,19 +44720,25 @@ "schema": { "type": "object", "properties": { - "head_sha": { + "name": { "type": "string", - "description": "The sha of the head commit." + "description": "The name of the variable." + }, + "value": { + "type": "string", + "description": "The value of the variable." } }, "required": [ - "head_sha" + "name", + "value" ] }, "examples": { "default": { "value": { - "head_sha": "d6fde92930d4715a2b49857d24b940956b26d2d3" + "name": "USERNAME", + "value": "octocat" } } } @@ -44851,31 +44746,64 @@ } }, "responses": { - "200": { - "description": "Response when the suite already exists", + "201": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/check-suite" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/check-suite" + "value": null } } } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "variables" + } + } + }, + "/repos/{owner}/{repo}/actions/variables/{name}": { + "get": { + "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": [ + "actions" + ], + "operationId": "actions/get-repo-variable", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/variables#get-a-repository-variable" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "201": { - "description": "Response when the suite was created", + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/variable-name" + } + ], + "responses": { + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/check-suite" + "$ref": "#/components/schemas/actions-variable" }, "examples": { "default": { - "$ref": "#/components/examples/check-suite" + "$ref": "#/components/examples/actions-variable" } } } @@ -44885,22 +44813,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "checks", - "subcategory": "suites" + "category": "actions", + "subcategory": "variables" } - } - }, - "/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.", + "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": [ - "checks" + "actions" ], - "operationId": "checks/set-suites-preferences", + "operationId": "actions/update-repo-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/checks/suites#update-repository-preferences-for-check-suites" + "url": "https://docs.github.com/rest/actions/variables#update-a-repository-variable" }, "parameters": [ { @@ -44908,6 +44834,9 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/variable-name" } ], "requestBody": { @@ -44917,39 +44846,21 @@ "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.", - "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" - ] - } + "name": { + "type": "string", + "description": "The name of the variable." + }, + "value": { + "type": "string", + "description": "The value of the variable." } } }, "examples": { "default": { "value": { - "auto_trigger_checks": [ - { - "app_id": 4, - "setting": false - } - ] + "name": "USERNAME", + "value": "octocat" } } } @@ -44957,41 +44868,27 @@ } }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/check-suite-preference" - }, - "examples": { - "default": { - "$ref": "#/components/examples/check-suite-preference" - } - } - } - } + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "checks", - "subcategory": "suites" + "category": "actions", + "subcategory": "variables" } - } - }, - "/repos/{owner}/{repo}/check-suites/{check_suite_id}": { - "get": { - "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.", + }, + "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": [ - "checks" + "actions" ], - "operationId": "checks/get-suite", + "operationId": "actions/delete-repo-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/checks/suites#get-a-check-suite" + "url": "https://docs.github.com/rest/actions/variables#delete-a-repository-variable" }, "parameters": [ { @@ -45001,45 +44898,33 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/check-suite-id" + "$ref": "#/components/parameters/variable-name" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/check-suite" - }, - "examples": { - "default": { - "$ref": "#/components/examples/check-suite" - } - } - } - } + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "checks", - "subcategory": "suites" + "category": "actions", + "subcategory": "variables" } } }, - "/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs": { + "/repos/{owner}/{repo}/actions/workflows": { "get": { - "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.", + "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": [ - "checks" + "actions" ], - "operationId": "checks/list-for-suite", + "operationId": "actions/list-repo-workflows", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/checks/runs#list-check-runs-in-a-check-suite" + "url": "https://docs.github.com/rest/actions/workflows#list-repository-workflows" }, "parameters": [ { @@ -45048,29 +44933,6 @@ { "$ref": "#/components/parameters/repo" }, - { - "$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" }, @@ -45087,23 +44949,23 @@ "type": "object", "required": [ "total_count", - "check_runs" + "workflows" ], "properties": { "total_count": { "type": "integer" }, - "check_runs": { + "workflows": { "type": "array", "items": { - "$ref": "#/components/schemas/check-run" + "$ref": "#/components/schemas/workflow" } } } }, "examples": { "default": { - "$ref": "#/components/examples/check-run-paginated" + "$ref": "#/components/examples/workflow-paginated" } } } @@ -45118,22 +44980,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "checks", - "subcategory": "runs" + "category": "actions", + "subcategory": "workflows" } } }, - "/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.", + "/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": [ - "checks" + "actions" ], - "operationId": "checks/rerequest-suite", + "operationId": "actions/get-workflow", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/checks/suites#rerequest-a-check-suite" + "url": "https://docs.github.com/rest/actions/workflows#get-a-workflow" }, "parameters": [ { @@ -45143,20 +45005,20 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/check-suite-id" + "$ref": "#/components/parameters/workflow-id" } ], "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/empty-object" + "$ref": "#/components/schemas/workflow" }, "examples": { "default": { - "value": null + "$ref": "#/components/examples/workflow" } } } @@ -45166,22 +45028,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "checks", - "subcategory": "suites" + "category": "actions", + "subcategory": "workflows" } } }, - "/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.", + "/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": [ - "code-scanning" + "actions" ], - "operationId": "code-scanning/list-alerts-for-repo", + "operationId": "actions/disable-workflow", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#list-code-scanning-alerts-for-a-repository" + "url": "https://docs.github.com/rest/actions/workflows#disable-a-workflow" }, "parameters": [ { @@ -45191,125 +45053,33 @@ "$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/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" - } - }, - { - "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": "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, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/workflow-id" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/code-scanning-alert-items" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/code-scanning-alert-items" - } - } - } - } - }, - "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" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "code-scanning", - "subcategory": "code-scanning" + "category": "actions", + "subcategory": "workflows" } } }, - "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": { - "get": { - "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.", + "/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": [ - "code-scanning" + "actions" ], - "operationId": "code-scanning/get-alert", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-alert" + "url": "https://docs.github.com/rest/actions/workflows#create-a-workflow-dispatch-event" }, "parameters": [ { @@ -45319,67 +45089,29 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/alert-number" + "$ref": "#/components/parameters/workflow-id" } ], "responses": { + "204": { + "description": "Empty response when `return_run_details` parameter is `false`." + }, "200": { - "description": "Response", + "description": "Response including the workflow run ID and URLs when `return_run_details` parameter is `true`.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/code-scanning-alert" + "$ref": "#/components/schemas/workflow-dispatch-response" }, "examples": { "default": { - "$ref": "#/components/examples/code-scanning-alert" + "$ref": "#/components/examples/workflow-dispatch-response" } } } } - }, - "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, - "category": "code-scanning", - "subcategory": "code-scanning" - } - }, - "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": [ - "code-scanning" - ], - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#update-a-code-scanning-alert" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/alert-number" - } - ], "requestBody": { "required": true, "content": { @@ -45387,96 +45119,79 @@ "schema": { "type": "object", "properties": { - "state": { - "$ref": "#/components/schemas/code-scanning-alert-set-state" - }, - "dismissed_reason": { - "$ref": "#/components/schemas/code-scanning-alert-dismissed-reason" - }, - "dismissed_comment": { - "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + "ref": { + "type": "string", + "description": "The git reference for the workflow. The reference can be a branch or tag name." }, - "create_request": { - "$ref": "#/components/schemas/code-scanning-alert-create-request" + "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 }, - "assignees": { - "$ref": "#/components/schemas/code-scanning-alert-assignees" + "return_run_details": { + "type": "boolean", + "description": "Whether the response should include the workflow run ID and URLs." } }, - "anyOf": [ - { - "required": [ - "state" - ] - }, - { - "required": [ - "assignees" - ] - } + "required": [ + "ref" ] }, "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": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/code-scanning-alert" - }, - "examples": { - "default": { - "$ref": "#/components/examples/code-scanning-alert-dismissed" + "ref": "topic-branch", + "inputs": { + "name": "Mona the Octocat", + "home": "San Francisco, CA" + } } } } } - }, - "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": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "category": "code-scanning", - "subcategory": "code-scanning" - } + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "workflows" + }, + "x-github-breaking-changes": [ + { + "changeset": "change_workflow_dispatch_response_status", + "patch": [ + { + "op": "remove", + "path": "/responses/204" + }, + { + "op": "remove", + "path": "/requestBody/content/application~1json/schema/properties/return_run_details" + }, + { + "op": "replace", + "path": "/responses/200/description", + "value": "Response including the workflow run ID and URLs." + } + ], + "version": "2026-03-10" + } + ] } }, - "/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.", + "/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": [ - "code-scanning" + "actions" ], - "operationId": "code-scanning/get-autofix", + "operationId": "actions/enable-workflow", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-the-status-of-an-autofix-for-a-code-scanning-alert" + "url": "https://docs.github.com/rest/actions/workflows#enable-a-workflow" }, "parameters": [ { @@ -45486,55 +45201,33 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/alert-number" + "$ref": "#/components/parameters/workflow-id" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/code-scanning-autofix" - }, - "examples": { - "default": { - "$ref": "#/components/examples/code-scanning-autofix" - } - } - } - } - }, - "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" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "code-scanning", - "subcategory": "code-scanning" + "category": "actions", + "subcategory": "workflows" } - }, - "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.", + } + }, + "/repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs": { + "get": { + "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": [ - "code-scanning" + "actions" ], - "operationId": "code-scanning/create-autofix", + "operationId": "actions/list-workflow-runs", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#create-an-autofix-for-a-code-scanning-alert" + "url": "https://docs.github.com/rest/actions/workflow-runs#list-workflow-runs-for-a-workflow" }, "parameters": [ { @@ -45544,75 +45237,95 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/alert-number" + "$ref": "#/components/parameters/workflow-id" + }, + { + "$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": { "200": { - "description": "OK", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/code-scanning-autofix" - }, - "examples": { - "default": { - "$ref": "#/components/examples/code-scanning-autofix" + "type": "object", + "required": [ + "total_count", + "workflow_runs" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "workflow_runs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/workflow-run" + } + } } - } - } - } - }, - "202": { - "description": "Accepted", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/code-scanning-autofix" }, "examples": { "default": { - "$ref": "#/components/examples/code-scanning-autofix-pending" + "$ref": "#/components/examples/workflow-run-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "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, - "category": "code-scanning", - "subcategory": "code-scanning" + "category": "actions", + "subcategory": "workflow-runs" } } }, - "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits": { - "post": { - "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.", + "/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": [ - "code-scanning" + "actions" ], - "operationId": "code-scanning/commit-autofix", + "operationId": "actions/get-workflow-usage", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#commit-an-autofix-for-a-code-scanning-alert" + "url": "https://docs.github.com/rest/actions/workflows#get-workflow-usage" }, "parameters": [ { @@ -45622,75 +45335,45 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/alert-number" + "$ref": "#/components/parameters/workflow-id" } ], - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/code-scanning-autofix-commits" - }, - "examples": { - "default": { - "$ref": "#/components/examples/code-scanning-autofix-commits" - } - } - } - } - }, "responses": { - "201": { - "description": "Created", + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/code-scanning-autofix-commits-response" + "$ref": "#/components/schemas/workflow-usage" }, "examples": { "default": { - "$ref": "#/components/examples/code-scanning-autofix-commits-response" + "$ref": "#/components/examples/workflow-usage" } } } } - }, - "400": { - "$ref": "#/components/responses/code_scanning_bad_request" - }, - "403": { - "$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": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "code-scanning", - "subcategory": "code-scanning" + "enabledForGitHubApps": false, + "category": "actions", + "subcategory": "workflows" } } }, - "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances": { + "/repos/{owner}/{repo}/activity": { "get": { - "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.", + "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": [ - "code-scanning" + "repos" ], - "operationId": "code-scanning/list-alert-instances", + "operationId": "repos/list-activities", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#list-instances-of-a-code-scanning-alert" + "url": "https://docs.github.com/rest/repos/repos#list-repository-activities" }, "parameters": [ { @@ -45700,19 +45383,67 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/alert-number" + "$ref": "#/components/parameters/direction" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/pagination-before" }, { - "$ref": "#/components/parameters/git-ref" + "$ref": "#/components/parameters/pagination-after" }, { - "$ref": "#/components/parameters/pr-alias" + "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": { @@ -45723,46 +45454,45 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/code-scanning-alert-instance-list" + "$ref": "#/components/schemas/activity" } }, "examples": { "default": { - "$ref": "#/components/examples/code-scanning-alert-instances" + "$ref": "#/components/examples/activity-items" } } } + }, + "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" + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "code-scanning", - "subcategory": "code-scanning" + "category": "repos", + "subcategory": "repos" } } }, - "/repos/{owner}/{repo}/code-scanning/analyses": { + "/repos/{owner}/{repo}/agents/organization-secrets": { "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", + "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": [ - "code-scanning" + "agents" ], + "operationId": "agents/list-repo-organization-secrets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#list-code-scanning-analyses-for-a-repository" + "url": "https://docs.github.com/rest/agents/secrets#list-repository-organization-secrets" }, "parameters": [ { @@ -45771,54 +45501,11 @@ { "$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/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" - } + "$ref": "#/components/parameters/page" } ], "responses": { @@ -45827,48 +45514,56 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/code-scanning-analysis" + "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/code-scanning-analysis-items" + "$ref": "#/components/examples/actions-secret-paginated" } } } + }, + "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": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "category": "code-scanning", - "subcategory": "code-scanning" + "enabledForGitHubApps": true, + "category": "agents", + "subcategory": "secrets" } } }, - "/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}": { + "/repos/{owner}/{repo}/agents/organization-variables": { "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", + "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": [ - "code-scanning" + "agents" ], + "operationId": "agents/list-repo-organization-variables", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-analysis-for-a-repository" + "url": "https://docs.github.com/rest/agents/variables#list-repository-organization-variables" }, "parameters": [ { @@ -45878,13 +45573,10 @@ "$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" - } + "$ref": "#/components/parameters/variables-per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -45892,58 +45584,57 @@ "description": "Response", "content": { "application/json": { - "schema": { - "$ref": "#/components/schemas/code-scanning-analysis" - }, - "examples": { - "response": { - "$ref": "#/components/examples/code-scanning-analysis-default" - } - } - }, - "application/sarif+json": { "schema": { "type": "object", - "additionalProperties": true + "required": [ + "total_count", + "variables" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "variables": { + "type": "array", + "items": { + "$ref": "#/components/schemas/actions-variable" + } + } + } }, "examples": { - "response": { - "$ref": "#/components/examples/code-scanning-analysis-sarif" + "default": { + "$ref": "#/components/examples/actions-variables-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "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": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "category": "code-scanning", - "subcategory": "code-scanning" + "enabledForGitHubApps": true, + "category": "agents", + "subcategory": "variables" } - }, - "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", + } + }, + "/repos/{owner}/{repo}/agents/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": [ - "code-scanning" + "agents" ], + "operationId": "agents/list-repo-secrets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#delete-a-code-scanning-analysis-from-a-repository" + "url": "https://docs.github.com/rest/agents/secrets#list-repository-secrets" }, "parameters": [ { @@ -45953,23 +45644,10 @@ "$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" - } + "$ref": "#/components/parameters/per-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 - } + "$ref": "#/components/parameters/page" } ], "responses": { @@ -45978,48 +45656,56 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/code-scanning-analysis-deletion" + "type": "object", + "required": [ + "total_count", + "secrets" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "secrets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/actions-secret" + } + } + } }, "examples": { - "default-response": { - "$ref": "#/components/examples/code-scanning-analysis-deletion" + "default": { + "$ref": "#/components/examples/actions-secret-paginated" } } } + }, + "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": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "category": "code-scanning", - "subcategory": "code-scanning" + "enabledForGitHubApps": true, + "category": "agents", + "subcategory": "secrets" } } }, - "/repos/{owner}/{repo}/code-scanning/codeql/databases": { + "/repos/{owner}/{repo}/agents/secrets/public-key": { "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.", + "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": [ - "code-scanning" + "agents" ], - "operationId": "code-scanning/list-codeql-databases", + "operationId": "agents/get-repo-public-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#list-codeql-databases-for-a-repository" + "url": "https://docs.github.com/rest/agents/secrets#get-a-repository-public-key" }, "parameters": [ { @@ -46035,49 +45721,36 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/code-scanning-codeql-database" - } + "$ref": "#/components/schemas/actions-public-key" }, "examples": { "default": { - "$ref": "#/components/examples/code-scanning-codeql-databases" + "$ref": "#/components/examples/actions-public-key" } } } } - }, - "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": "code-scanning", - "subcategory": "code-scanning" + "category": "agents", + "subcategory": "secrets" } } }, - "/repos/{owner}/{repo}/code-scanning/codeql/databases/{language}": { + "/repos/{owner}/{repo}/agents/secrets/{secret_name}": { "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.", + "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": [ - "code-scanning" + "agents" ], - "operationId": "code-scanning/get-codeql-database", + "operationId": "agents/get-repo-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-a-codeql-database-for-a-repository" + "url": "https://docs.github.com/rest/agents/secrets#get-a-repository-secret" }, "parameters": [ { @@ -46087,13 +45760,7 @@ "$ref": "#/components/parameters/repo" }, { - "name": "language", - "in": "path", - "description": "The language of the CodeQL database.", - "schema": { - "type": "string" - }, - "required": true + "$ref": "#/components/parameters/secret-name" } ], "responses": { @@ -46102,47 +45769,34 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/code-scanning-codeql-database" + "$ref": "#/components/schemas/actions-secret" }, "examples": { "default": { - "$ref": "#/components/examples/code-scanning-codeql-database" + "$ref": "#/components/examples/actions-secret" } } } } - }, - "302": { - "$ref": "#/components/responses/found" - }, - "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": "code-scanning", - "subcategory": "code-scanning" + "category": "agents", + "subcategory": "secrets" } }, - "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.", + "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": [ - "code-scanning" + "agents" ], - "operationId": "code-scanning/delete-codeql-database", + "operationId": "agents/create-or-update-repo-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#delete-a-codeql-database" + "url": "https://docs.github.com/rest/agents/secrets#create-or-update-a-repository-secret" }, "parameters": [ { @@ -46152,56 +45806,7 @@ "$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/code_scanning_forbidden_write" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "previews": [], - "category": "code-scanning", - "subcategory": "code-scanning" - } - } - }, - "/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": [ - "code-scanning" - ], - "operationId": "code-scanning/create-variant-analysis", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#create-a-codeql-variant-analysis" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/secret-name" } ], "requestBody": { @@ -46210,91 +45815,27 @@ "application/json": { "schema": { "type": "object", - "additionalProperties": false, "properties": { - "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" - } + "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/agents/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})$" }, - "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" - } + "key_id": { + "type": "string", + "description": "ID of the key you used to encrypt the secret." } }, "required": [ - "language", - "query_pack" - ], - "oneOf": [ - { - "required": [ - "repositories" - ] - }, - { - "required": [ - "repository_lists" - ] - }, - { - "required": [ - "repository_owners" - ] - } + "encrypted_value", + "key_id" ] }, "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.", + "default": { "value": { - "language": "csharp", - "query_pack": "aGVsbG8=", - "repository_lists": [ - "top-100-csharp" - ] + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678" } } } @@ -46303,72 +45844,41 @@ }, "responses": { "201": { - "description": "Variant analysis submitted for processing", + "description": "Response when creating a secret", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/code-scanning-variant-analysis" + "$ref": "#/components/schemas/empty-object" }, "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" - } + "default": { + "value": null } } } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "422": { - "description": "Unable to process variant analysis submission", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/basic-error" - } - } - } - }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "204": { + "description": "Response when updating a secret" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [], - "category": "code-scanning", - "subcategory": "code-scanning" + "category": "agents", + "subcategory": "secrets" } - } - }, - "/repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}": { - "get": { - "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.", + }, + "delete": { + "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": [ - "code-scanning" + "agents" ], - "operationId": "code-scanning/get-variant-analysis", + "operationId": "agents/delete-repo-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-the-summary-of-a-codeql-variant-analysis" + "url": "https://docs.github.com/rest/agents/secrets#delete-a-repository-secret" }, "parameters": [ { @@ -46378,98 +45888,46 @@ "$ref": "#/components/parameters/repo" }, { - "name": "codeql_variant_analysis_id", - "in": "path", - "description": "The unique identifier of the variant analysis.", - "schema": { - "type": "integer" - }, - "required": true + "$ref": "#/components/parameters/secret-name" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/code-scanning-variant-analysis" - }, - "examples": { - "default": { - "$ref": "#/components/examples/code-scanning-variant-analysis" - } - } - } - } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [], - "category": "code-scanning", - "subcategory": "code-scanning" + "category": "agents", + "subcategory": "secrets" } } }, - "/repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}": { + "/repos/{owner}/{repo}/agents/variables": { "get": { - "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.", + "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": [ - "code-scanning" + "agents" ], - "operationId": "code-scanning/get-variant-analysis-repo-task", + "operationId": "agents/list-repo-variables", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-the-analysis-status-of-a-repository-in-a-codeql-variant-analysis" + "url": "https://docs.github.com/rest/agents/variables#list-repository-variables" }, "parameters": [ { "$ref": "#/components/parameters/owner" }, { - "name": "repo", - "in": "path", - "description": "The name of the controller repository.", - "schema": { - "type": "string" - }, - "required": true - }, - { - "name": "codeql_variant_analysis_id", - "in": "path", - "description": "The ID of the variant analysis.", - "schema": { - "type": "integer" - }, - "required": true + "$ref": "#/components/parameters/repo" }, { - "name": "repo_owner", - "in": "path", - "description": "The account owner of the variant analysis repository. The name is not case sensitive.", - "schema": { - "type": "string" - }, - "required": true + "$ref": "#/components/parameters/variables-per-page" }, { - "name": "repo_name", - "in": "path", - "description": "The name of the variant analysis repository.", - "schema": { - "type": "string" - }, - "required": true + "$ref": "#/components/parameters/page" } ], "responses": { @@ -46478,43 +45936,54 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/code-scanning-variant-analysis-repo-task" + "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/code-scanning-variant-analysis-repo-task" + "$ref": "#/components/examples/actions-variables-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [], - "category": "code-scanning", - "subcategory": "code-scanning" + "category": "agents", + "subcategory": "variables" } - } - }, - "/repos/{owner}/{repo}/code-scanning/default-setup": { - "get": { - "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.", + }, + "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": [ - "code-scanning" + "agents" ], - "operationId": "code-scanning/get-default-setup", + "operationId": "agents/create-repo-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-default-setup-configuration" + "url": "https://docs.github.com/rest/agents/variables#create-a-repository-variable" }, "parameters": [ { @@ -46524,49 +45993,74 @@ "$ref": "#/components/parameters/repo" } ], + "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/code-scanning-default-setup" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/code-scanning-default-setup" + "value": null } } } } - }, - "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, - "category": "code-scanning", - "subcategory": "code-scanning" + "category": "agents", + "subcategory": "variables" } - }, - "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.", + } + }, + "/repos/{owner}/{repo}/agents/variables/{name}": { + "get": { + "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": [ - "code-scanning" + "agents" ], - "operationId": "code-scanning/update-default-setup", + "operationId": "agents/get-repo-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#update-a-code-scanning-default-setup-configuration" + "url": "https://docs.github.com/rest/agents/variables#get-a-repository-variable" }, "parameters": [ { @@ -46574,89 +46068,45 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/variable-name" } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/code-scanning-default-setup-update" - }, - "examples": { - "default": { - "$ref": "#/components/examples/code-scanning-default-setup-update" - } - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/empty-object" - }, - "examples": { - "default": { - "value": null - } - } - } - } - }, - "202": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/code-scanning-default-setup-update-response" + "$ref": "#/components/schemas/actions-variable" }, "examples": { "default": { - "$ref": "#/components/examples/code-scanning-default-setup-update-response" + "$ref": "#/components/examples/actions-variable" } } } } - }, - "403": { - "$ref": "#/components/responses/code_scanning_forbidden_write" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "409": { - "$ref": "#/components/responses/code_scanning_conflict" - }, - "422": { - "$ref": "#/components/responses/code_scanning_invalid_state" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "code-scanning", - "subcategory": "code-scanning" + "category": "agents", + "subcategory": "variables" } - } - }, - "/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", + }, + "patch": { + "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": [ - "code-scanning" + "agents" ], + "operationId": "agents/update-repo-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#upload-an-analysis-as-sarif-data" + "url": "https://docs.github.com/rest/agents/variables#update-a-repository-variable" }, "parameters": [ { @@ -46664,6 +46114,9 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/variable-name" } ], "requestBody": { @@ -46673,48 +46126,21 @@ "schema": { "type": "object", "properties": { - "commit_sha": { - "$ref": "#/components/schemas/code-scanning-analysis-commit-sha" - }, - "ref": { - "$ref": "#/components/schemas/code-scanning-ref-full" - }, - "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/", + "name": { "type": "string", - "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" + "description": "The name of the variable." }, - "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" + "value": { + "type": "string", + "description": "The value of the variable." } - }, - "additionalProperties": false, - "required": [ - "commit_sha", - "ref", - "sarif" - ] + } }, "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" + "name": "USERNAME", + "value": "octocat" } } } @@ -46722,56 +46148,27 @@ } }, "responses": { - "202": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/code-scanning-sarifs-receipt" - }, - "examples": { - "default": { - "$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" + "204": { + "description": "Response" } }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "category": "code-scanning", - "subcategory": "code-scanning" + "enabledForGitHubApps": true, + "category": "agents", + "subcategory": "variables" } - } - }, - "/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", + }, + "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": [ - "code-scanning" + "agents" ], + "operationId": "agents/delete-repo-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-information-about-a-sarif-upload" + "url": "https://docs.github.com/rest/agents/variables#delete-a-repository-variable" }, "parameters": [ { @@ -46781,60 +46178,33 @@ "$ref": "#/components/parameters/repo" }, { - "name": "sarif_id", - "description": "The SARIF ID obtained after uploading.", - "in": "path", - "schema": { - "type": "string" - }, - "required": true + "$ref": "#/components/parameters/variable-name" } ], "responses": { - "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" + "204": { + "description": "Response" } }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "category": "code-scanning", - "subcategory": "code-scanning" + "enabledForGitHubApps": true, + "category": "agents", + "subcategory": "variables" } } }, - "/repos/{owner}/{repo}/code-security-configuration": { + "/repos/{owner}/{repo}/assignees": { "get": { - "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.", + "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": [ - "code-security" + "issues" ], - "operationId": "code-security/get-configuration-for-repository", + "operationId": "issues/list-assignees", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/code-security/configurations#get-the-code-security-configuration-associated-with-a-repository" + "url": "https://docs.github.com/rest/issues/assignees#list-assignees" }, "parameters": [ { @@ -46842,6 +46212,12 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -46850,25 +46226,24 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/code-security-configuration-for-repository" + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } }, "examples": { "default": { - "$ref": "#/components/examples/code-security-configuration-for-repository" + "$ref": "#/components/examples/simple-user-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "204": { - "$ref": "#/components/responses/no_content" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, "404": { "$ref": "#/components/responses/not_found" } @@ -46876,22 +46251,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "code-security", - "subcategory": "configurations" + "category": "issues", + "subcategory": "assignees" } } }, - "/repos/{owner}/{repo}/codeowners/errors": { + "/repos/{owner}/{repo}/assignees/{assignee}": { "get": { - "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).\"", + "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": [ - "repos" + "issues" ], - "operationId": "repos/codeowners-errors", + "operationId": "issues/check-user-can-be-assigned", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#list-codeowners-errors" + "url": "https://docs.github.com/rest/issues/assignees#check-if-a-user-can-be-assigned" }, "parameters": [ { @@ -46901,131 +46276,48 @@ "$ref": "#/components/parameters/repo" }, { - "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, + "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": { - "$ref": "#/components/schemas/codeowners-errors" - }, - "examples": { - "default": { - "$ref": "#/components/examples/codeowners-errors" - } + "$ref": "#/components/schemas/basic-error" } } } - }, - "404": { - "description": "Resource not found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [], - "category": "repos", - "subcategory": "repos" + "category": "issues", + "subcategory": "assignees" } } }, - "/repos/{owner}/{repo}/codespaces": { - "get": { - "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": [ - "codespaces" - ], - "operationId": "codespaces/list-in-repository-for-authenticated-user", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/codespaces#list-codespaces-in-a-repository-for-the-authenticated-user" - }, - "parameters": [ - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - } - ], - "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-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": false, - "category": "codespaces", - "subcategory": "codespaces" - } - }, + "/repos/{owner}/{repo}/attestations": { "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.", + "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": [ - "codespaces" + "repos" ], - "operationId": "codespaces/create-with-repo-for-authenticated-user", + "operationId": "repos/create-attestation", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-in-a-repository" + "url": "https://docs.github.com/rest/repos/attestations#create-an-attestation" }, "parameters": [ { @@ -47041,66 +46333,34 @@ "application/json": { "schema": { "type": "object", - "nullable": true, "properties": { - "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" + "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." } - } + }, + "required": [ + "bundle" + ] }, "examples": { "default": { - "value": { - "ref": "main", - "machine": "standardLinux32gb" - } + "$ref": "#/components/examples/attestation" } } } @@ -47108,83 +46368,89 @@ }, "responses": { "201": { - "description": "Response when the codespace was successfully created", + "description": "response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/codespace" - }, - "examples": { - "default": { - "$ref": "#/components/examples/codespace" + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "The ID of the attestation." + } } - } - } - } - }, - "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" + "value": { + "id": 2 + } } } } } }, - "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" + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "codespaces" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "attestations" } } }, - "/repos/{owner}/{repo}/codespaces/devcontainers": { + "/repos/{owner}/{repo}/attestations/{subject_digest}": { "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.", + "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": [ - "codespaces" + "repos" ], - "operationId": "codespaces/list-devcontainers-in-repository-for-authenticated-user", + "operationId": "repos/list-attestations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/codespaces#list-devcontainer-configurations-in-a-repository-for-the-authenticated-user" + "url": "https://docs.github.com/rest/repos/attestations#list-attestations" }, "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, { "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/pagination-before" }, { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/pagination-after" }, { - "$ref": "#/components/parameters/repo" + "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": { @@ -47194,29 +46460,38 @@ "application/json": { "schema": { "type": "object", - "required": [ - "total_count", - "devcontainers" - ], "properties": { - "total_count": { - "type": "integer" - }, - "devcontainers": { + "attestations": { "type": "array", "items": { "type": "object", - "required": [ - "path" - ], "properties": { - "path": { - "type": "string" + "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." }, - "name": { + "repository_id": { + "type": "integer" + }, + "bundle_url": { "type": "string" }, - "display_name": { + "initiator": { "type": "string" } } @@ -47226,47 +46501,59 @@ }, "examples": { "default": { - "$ref": "#/components/examples/codespaces-list-devcontainers-for-repository" + "$ref": "#/components/examples/list-attestations" } } } } - }, - "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, - "category": "codespaces", - "subcategory": "codespaces" - } + "category": "repos", + "subcategory": "attestations" + }, + "x-github-breaking-changes": [ + { + "changeset": "remove_bundle", + "patch": { + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": { + "attestations": { + "items": { + "properties": { + "bundle": null + } + } + } + } + } + } + } + } + } + }, + "version": "2026-03-10" + } + ] } }, - "/repos/{owner}/{repo}/codespaces/machines": { + "/repos/{owner}/{repo}/autolinks": { "get": { - "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.", + "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": [ - "codespaces" + "repos" ], - "operationId": "codespaces/repo-machines-for-authenticated-user", + "operationId": "repos/list-autolinks", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/machines#list-available-machine-types-for-a-repository" + "url": "https://docs.github.com/rest/repos/autolinks#get-all-autolinks-of-a-repository" }, "parameters": [ { @@ -47274,32 +46561,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "name": "location", - "description": "The location to check for available machines. Assigned by IP if not provided.", - "in": "query", - "schema": { - "type": "string", - "example": "WestUs2" - } - }, - { - "name": "client_ip", - "description": "IP for location auto-detection when proxying a request", - "in": "query", - "schema": { - "type": "string" - } - }, - { - "name": "ref", - "description": "The branch or commit to check for prebuild availability and devcontainer restrictions.", - "in": "query", - "schema": { - "type": "string", - "example": "main" - } } ], "responses": { @@ -47308,66 +46569,37 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "machines" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "machines": { - "type": "array", - "items": { - "$ref": "#/components/schemas/codespace-machine" - } - } + "type": "array", + "items": { + "$ref": "#/components/schemas/autolink" } }, "examples": { "default": { - "$ref": "#/components/examples/codespace-machines-list" + "$ref": "#/components/examples/autolink-items" } } } } - }, - "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, - "category": "codespaces", - "subcategory": "machines" + "category": "repos", + "subcategory": "autolinks" } - } - }, - "/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.", + }, + "post": { + "summary": "Create an autolink reference for a repository", + "description": "Users with admin access to the repository can create an autolink.", "tags": [ - "codespaces" + "repos" ], - "operationId": "codespaces/pre-flight-with-repo-for-authenticated-user", + "operationId": "repos/create-autolink", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/codespaces#get-default-attributes-for-a-codespace" + "url": "https://docs.github.com/rest/repos/autolinks#create-an-autolink-reference-for-a-repository" }, "parameters": [ { @@ -47375,172 +46607,93 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "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", - "schema": { - "type": "string", - "example": "main" - } - }, - { - "name": "client_ip", - "description": "An alternative IP for default location auto-detection, such as when proxying a request.", - "in": "query", - "schema": { - "type": "string", - "example": "1.2.3.4" - } } ], - "responses": { - "200": { - "description": "Response when a user is able to create codespaces from the repository.", - "content": { - "application/json": { - "schema": { - "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 - } - } - } + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "key_prefix": { + "type": "string", + "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." } }, - "examples": { - "default": { - "$ref": "#/components/examples/codespaces-default-attributes-for-a-codespace" + "required": [ + "key_prefix", + "url_template" + ] + }, + "examples": { + "default": { + "value": { + "key_prefix": "TICKET-", + "url_template": "https://example.com/TICKET?query=", + "is_alphanumeric": true } } } } - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "codespaces", - "subcategory": "codespaces" - } - } - }, - "/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": [ - "codespaces" - ], - "operationId": "codespaces/check-permissions-for-devcontainer", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/codespaces#check-if-permissions-defined-by-a-devcontainer-have-been-accepted-by-the-authenticated-user" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "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": "Response when the permission check is successful", + "201": { + "description": "response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/codespaces-permissions-check-for-devcontainer" + "$ref": "#/components/schemas/autolink" }, "examples": { "default": { - "$ref": "#/components/examples/codespaces-permissions-check-for-devcontainer" + "$ref": "#/components/examples/autolink" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/autolinks/1", + "schema": { + "type": "string" + } + } } }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "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, - "category": "codespaces", - "subcategory": "codespaces" + "category": "repos", + "subcategory": "autolinks" } } }, - "/repos/{owner}/{repo}/codespaces/secrets": { + "/repos/{owner}/{repo}/autolinks/{autolink_id}": { "get": { - "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.", + "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": [ - "codespaces" + "repos" ], - "operationId": "codespaces/list-repo-secrets", + "operationId": "repos/get-autolink", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/repository-secrets#list-repository-secrets" + "url": "https://docs.github.com/rest/repos/autolinks#get-an-autolink-reference-of-a-repository" }, "parameters": [ { @@ -47550,10 +46703,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/autolink-id" } ], "responses": { @@ -47562,56 +46712,37 @@ "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" - } - } - } + "$ref": "#/components/schemas/autolink" }, "examples": { "default": { - "$ref": "#/components/examples/repo-codespaces-secret-paginated" + "$ref": "#/components/examples/autolink" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "codespaces", - "subcategory": "repository-secrets" + "category": "repos", + "subcategory": "autolinks" } - } - }, - "/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.", + }, + "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.", "tags": [ - "codespaces" + "repos" ], - "operationId": "codespaces/get-repo-public-key", + "operationId": "repos/delete-autolink", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/repository-secrets#get-a-repository-public-key" + "url": "https://docs.github.com/rest/repos/autolinks#delete-an-autolink-reference-from-a-repository" }, "parameters": [ { @@ -47619,44 +46750,38 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/autolink-id" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/codespaces-public-key" - }, - "examples": { - "default": { - "$ref": "#/components/examples/codespaces-public-key" - } - } - } - } + "204": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "repository-secrets" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "autolinks" } } }, - "/repos/{owner}/{repo}/codespaces/secrets/{secret_name}": { + "/repos/{owner}/{repo}/automated-security-fixes": { "get": { - "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.", + "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": [ - "codespaces" + "repos" ], - "operationId": "codespaces/get-repo-secret", + "operationId": "repos/check-automated-security-fixes", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/repository-secrets#get-a-repository-secret" + "url": "https://docs.github.com/rest/repos/repos#check-if-dependabot-security-updates-are-enabled-for-a-repository" }, "parameters": [ { @@ -47664,45 +46789,48 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/secret-name" } ], "responses": { "200": { - "description": "Response", + "description": "Response if Dependabot is enabled", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repo-codespaces-secret" + "$ref": "#/components/schemas/check-automated-security-fixes" }, "examples": { "default": { - "$ref": "#/components/examples/repo-codespaces-secret" + "value": { + "enabled": true, + "paused": false + } } } } } + }, + "404": { + "description": "Not Found if Dependabot is not enabled for the repository" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "codespaces", - "subcategory": "repository-secrets" + "category": "repos", + "subcategory": "repos" } }, "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.", + "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": [ - "codespaces" + "repos" ], - "operationId": "codespaces/create-or-update-repo-secret", + "operationId": "repos/enable-automated-security-fixes", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/repository-secrets#create-or-update-a-repository-secret" + "url": "https://docs.github.com/rest/repos/repos#enable-dependabot-security-updates" }, "parameters": [ { @@ -47710,77 +46838,30 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$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 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})$" - }, - "key_id": { - "type": "string", - "description": "ID of the key you used to encrypt the secret." - } - } - }, - "examples": { - "default": { - "value": { - "encrypted_value": "c2VjcmV0", - "key_id": "012345678912345678" - } - } - } - } - } - }, "responses": { - "201": { - "description": "Response when creating a secret", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/empty-object" - }, - "examples": { - "default": { - "value": null - } - } - } - } - }, "204": { - "description": "Response when updating a secret" + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "codespaces", - "subcategory": "repository-secrets" + "category": "repos", + "subcategory": "repos" } }, "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.", + "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": [ - "codespaces" + "repos" ], - "operationId": "codespaces/delete-repo-secret", + "operationId": "repos/disable-automated-security-fixes", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/repository-secrets#delete-a-repository-secret" + "url": "https://docs.github.com/rest/repos/repos#disable-dependabot-security-updates" }, "parameters": [ { @@ -47788,9 +46869,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/secret-name" } ], "responses": { @@ -47801,22 +46879,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "codespaces", - "subcategory": "repository-secrets" + "category": "repos", + "subcategory": "repos" } } }, - "/repos/{owner}/{repo}/collaborators": { + "/repos/{owner}/{repo}/branches": { "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.\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.", + "summary": "List branches", + "description": "", "tags": [ "repos" ], - "operationId": "repos/list-collaborators", + "operationId": "repos/list-branches", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/collaborators/collaborators#list-repository-collaborators" + "url": "https://docs.github.com/rest/branches/branches#list-branches" }, "parameters": [ { @@ -47826,34 +46904,12 @@ "$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.", + "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": "string", - "enum": [ - "pull", - "triage", - "push", - "maintain", - "admin" - ] + "type": "boolean" } }, { @@ -47871,12 +46927,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/collaborator" + "$ref": "#/components/schemas/short-branch" } }, "examples": { "default": { - "$ref": "#/components/examples/collaborator-items" + "$ref": "#/components/examples/short-branch-with-protection-items" } } } @@ -47894,22 +46950,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "collaborators", - "subcategory": "collaborators" + "category": "branches", + "subcategory": "branches" } } }, - "/repos/{owner}/{repo}/collaborators/{username}": { + "/repos/{owner}/{repo}/branches/{branch}": { "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.\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.", + "summary": "Get a branch", + "description": "", "tags": [ "repos" ], - "operationId": "repos/check-collaborator", + "operationId": "repos/get-branch", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/collaborators/collaborators#check-if-a-user-is-a-repository-collaborator" + "url": "https://docs.github.com/rest/branches/branches#get-a-branch" }, "parameters": [ { @@ -47919,34 +46975,51 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/branch" } ], "responses": { - "204": { - "description": "Response if user is a collaborator" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/branch-with-protection" + }, + "examples": { + "default": { + "$ref": "#/components/examples/branch-get" + } + } + } + } + }, + "301": { + "$ref": "#/components/responses/moved_permanently" }, "404": { - "description": "Not Found if user is not a collaborator" + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "collaborators", - "subcategory": "collaborators" + "category": "branches", + "subcategory": "branches" } - }, - "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.", + } + }, + "/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/add-collaborator", + "operationId": "repos/get-branch-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/collaborators/collaborators#add-a-repository-collaborator" + "url": "https://docs.github.com/rest/branches/branch-protection#get-branch-protection" }, "parameters": [ { @@ -47956,85 +47029,46 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/branch" } ], - "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": { - "201": { - "description": "Response when a new invitation is created", + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repository-invitation" + "$ref": "#/components/schemas/branch-protection" }, "examples": { - "new-invitation-is-created": { - "$ref": "#/components/examples/repository-invitation-response-when-a-new-invitation-is-created" + "default": { + "$ref": "#/components/examples/branch-protection" } } } } }, - "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" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "collaborators", - "subcategory": "collaborators" + "category": "branches", + "subcategory": "branch-protection" } }, - "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)\".", + "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/remove-collaborator", + "operationId": "repos/update-branch-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/collaborators/collaborators#remove-a-repository-collaborator" + "url": "https://docs.github.com/rest/branches/branch-protection#update-branch-protection" }, "parameters": [ { @@ -48044,67 +47078,291 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/branch" } ], - "responses": { - "204": { - "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, - "category": "collaborators", - "subcategory": "collaborators" - } - } - }, - "/repos/{owner}/{repo}/collaborators/{username}/permission": { - "get": { - "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-collaborator-permission-level", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/collaborators/collaborators#get-repository-permissions-for-a-user" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/username" + "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": "if user has admin permissions", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repository-collaborator-permission" + "$ref": "#/components/schemas/protected-branch" }, "examples": { - "response-if-user-has-admin-permissions": { - "$ref": "#/components/examples/repository-collaborator-permission-response-if-user-has-admin-permissions" + "default": { + "$ref": "#/components/examples/branch-protection-update" } } } } }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" + }, "404": { "$ref": "#/components/responses/not_found" } @@ -48112,22 +47370,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "collaborators", - "subcategory": "collaborators" + "category": "branches", + "subcategory": "branch-protection" } - } - }, - "/repos/{owner}/{repo}/comments": { - "get": { - "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`.", + }, + "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://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", "tags": [ "repos" ], - "operationId": "repos/list-commit-comments-for-repo", + "operationId": "repos/delete-branch-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/commits/comments#list-commit-comments-for-a-repository" + "url": "https://docs.github.com/rest/branches/branch-protection#delete-branch-protection" }, "parameters": [ { @@ -48137,56 +47393,36 @@ "$ref": "#/components/parameters/repo" }, { - "$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/commit-comment" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/commit-comment-items" - } - } - } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } + "204": { + "description": "Response" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "commits", - "subcategory": "comments" + "category": "branches", + "subcategory": "branch-protection" } } }, - "/repos/{owner}/{repo}/comments/{comment_id}": { + "/repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins": { "get": { - "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`.", + "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": [ "repos" ], - "operationId": "repos/get-commit-comment", + "operationId": "repos/get-admin-branch-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/commits/comments#get-a-commit-comment" + "url": "https://docs.github.com/rest/branches/branch-protection#get-admin-branch-protection" }, "parameters": [ { @@ -48196,7 +47432,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/comment-id" + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -48205,37 +47441,34 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/commit-comment" + "$ref": "#/components/schemas/protected-branch-admin-enforced" }, "examples": { "default": { - "$ref": "#/components/examples/commit-comment" + "$ref": "#/components/examples/protected-branch-admin-enforced-2" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "commits", - "subcategory": "comments" + "category": "branches", + "subcategory": "branch-protection" } }, - "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`.", + "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://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": [ "repos" ], - "operationId": "repos/update-commit-comment", + "operationId": "repos/set-admin-branch-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/commits/comments#update-a-commit-comment" + "url": "https://docs.github.com/rest/branches/branch-protection#set-admin-branch-protection" }, "parameters": [ { @@ -48245,72 +47478,43 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/comment-id" + "$ref": "#/components/parameters/branch" } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "body": { - "type": "string", - "description": "The contents of the comment" - } - }, - "required": [ - "body" - ] - }, - "examples": { - "default": { - "value": { - "body": "Nice change" - } - } - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/commit-comment" + "$ref": "#/components/schemas/protected-branch-admin-enforced" }, "examples": { "default": { - "$ref": "#/components/examples/commit-comment-2" + "$ref": "#/components/examples/protected-branch-admin-enforced-2" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "commits", - "subcategory": "comments" + "category": "branches", + "subcategory": "branch-protection" } }, "delete": { - "summary": "Delete a commit comment", - "description": "", + "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-commit-comment", + "operationId": "repos/delete-admin-branch-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/commits/comments#delete-a-commit-comment" + "url": "https://docs.github.com/rest/branches/branch-protection#delete-admin-branch-protection" }, "parameters": [ { @@ -48320,7 +47524,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/comment-id" + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -48334,22 +47538,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "commits", - "subcategory": "comments" + "category": "branches", + "subcategory": "branch-protection" } } }, - "/repos/{owner}/{repo}/comments/{comment_id}/reactions": { + "/repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews": { "get": { - "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).", + "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": [ - "reactions" + "repos" ], - "operationId": "reactions/list-for-commit-comment", + "operationId": "repos/get-pull-request-review-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-commit-comment" + "url": "https://docs.github.com/rest/branches/branch-protection#get-pull-request-review-protection" }, "parameters": [ { @@ -48359,32 +47563,7 @@ "$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" + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -48393,45 +47572,34 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/reaction" - } + "$ref": "#/components/schemas/protected-branch-pull-request-review" }, "examples": { "default": { - "$ref": "#/components/examples/reaction-items" + "$ref": "#/components/examples/protected-branch-pull-request-review" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "reactions", - "subcategory": "reactions" + "category": "branches", + "subcategory": "branch-protection" } }, - "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.", + "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://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": [ - "reactions" + "repos" ], - "operationId": "reactions/create-for-commit-comment", + "operationId": "repos/update-pull-request-review-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-commit-comment" + "url": "https://docs.github.com/rest/branches/branch-protection#update-pull-request-review-protection" }, "parameters": [ { @@ -48441,39 +47609,118 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/comment-id" + "$ref": "#/components/parameters/branch" } ], "requestBody": { - "required": true, + "required": false, "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 commit comment.", - "enum": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" - ] + "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/) 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" + } + } + } } - }, - "required": [ - "content" - ] + } }, "examples": { "default": { "value": { - "content": "heart" + "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 } } } @@ -48482,30 +47729,15 @@ }, "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/protected-branch-pull-request-review" }, "examples": { "default": { - "$ref": "#/components/examples/reaction" + "$ref": "#/components/examples/protected-branch-pull-request-review" } } } @@ -48518,22 +47750,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "reactions", - "subcategory": "reactions" + "category": "branches", + "subcategory": "branch-protection" } - } - }, - "/repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}": { + }, "delete": { - "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).", + "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": [ - "reactions" + "repos" ], - "operationId": "reactions/delete-for-commit-comment", + "operationId": "repos/delete-pull-request-review-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reactions/reactions#delete-a-commit-comment-reaction" + "url": "https://docs.github.com/rest/branches/branch-protection#delete-pull-request-review-protection" }, "parameters": [ { @@ -48543,36 +47773,36 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/comment-id" - }, - { - "$ref": "#/components/parameters/reaction-id" + "$ref": "#/components/parameters/branch" } ], "responses": { "204": { "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "reactions", - "subcategory": "reactions" + "category": "branches", + "subcategory": "branch-protection" } } }, - "/repos/{owner}/{repo}/commits": { + "/repos/{owner}/{repo}/branches/{branch}/protection/required_signatures": { "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| `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. |", + "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-commits", + "operationId": "repos/get-commit-signature-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/commits/commits#list-commits" + "url": "https://docs.github.com/rest/branches/branch-protection#get-commit-signature-protection" }, "parameters": [ { @@ -48582,66 +47812,7 @@ "$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" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -48650,56 +47821,37 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/commit" - } + "$ref": "#/components/schemas/protected-branch-admin-enforced" }, "examples": { "default": { - "$ref": "#/components/examples/commit-items" + "$ref": "#/components/examples/protected-branch-admin-enforced" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "500": { - "$ref": "#/components/responses/internal_error" - }, - "400": { - "$ref": "#/components/responses/bad_request" - }, "404": { "$ref": "#/components/responses/not_found" - }, - "409": { - "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "commits", - "subcategory": "commits" + "category": "branches", + "subcategory": "branch-protection" } - } - }, - "/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head": { - "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://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.", + }, + "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": [ "repos" ], - "operationId": "repos/list-branches-for-head-commit", + "operationId": "repos/create-commit-signature-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/commits/commits#list-branches-for-head-commit" + "url": "https://docs.github.com/rest/branches/branch-protection#create-commit-signature-protection" }, "parameters": [ { @@ -48709,7 +47861,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/commit-sha" + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -48718,45 +47870,37 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/branch-short" - } + "$ref": "#/components/schemas/protected-branch-admin-enforced" }, "examples": { "default": { - "$ref": "#/components/examples/branch-short-items" + "$ref": "#/components/examples/protected-branch-admin-enforced" } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "409": { - "$ref": "#/components/responses/conflict" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "commits", - "subcategory": "commits" + "category": "branches", + "subcategory": "branch-protection" } - } - }, - "/repos/{owner}/{repo}/commits/{commit_sha}/comments": { - "get": { - "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`.", + }, + "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/list-comments-for-commit", + "operationId": "repos/delete-commit-signature-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/commits/comments#list-commit-comments" + "url": "https://docs.github.com/rest/branches/branch-protection#delete-commit-signature-protection" }, "parameters": [ { @@ -48766,13 +47910,46 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/commit-sha" + "$ref": "#/components/parameters/branch" + } + ], + "responses": { + "204": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "branches", + "subcategory": "branch-protection" + } + } + }, + "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks": { + "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://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "tags": [ + "repos" + ], + "operationId": "repos/get-status-checks-protection", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/branches/branch-protection#get-status-checks-protection" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -48781,42 +47958,37 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/commit-comment" - } + "$ref": "#/components/schemas/status-check-policy" }, "examples": { "default": { - "$ref": "#/components/examples/commit-comment-items" + "$ref": "#/components/examples/status-check-policy" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "commits", - "subcategory": "comments" + "category": "branches", + "subcategory": "branch-protection" } }, - "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`.", + "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": [ "repos" ], - "operationId": "repos/create-commit-comment", + "operationId": "repos/update-status-check-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/commits/comments#create-a-commit-comment" + "url": "https://docs.github.com/rest/branches/branch-protection#update-status-check-protection" }, "parameters": [ { @@ -48826,44 +47998,57 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/commit-sha" + "$ref": "#/components/parameters/branch" } ], "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { - "body": { - "type": "string", - "description": "The contents of the comment." - }, - "path": { - "type": "string", - "description": "Relative path of the file to comment on." + "strict": { + "type": "boolean", + "description": "Require branches to be up to date before merging." }, - "position": { - "type": "integer", - "description": "Line index in the diff to comment on." + "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" + } }, - "line": { - "type": "integer", - "description": "**Closing down notice**. Use **position** parameter instead. Line number in the file to comment on." + "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": [ - "body" - ] + } }, "examples": { "default": { "value": { - "body": "Great stuff", - "path": "file1.txt", - "position": 4, - "line": 1 + "strict": true, + "contexts": [ + "continuous-integration/travis-ci" + ] } } } @@ -48871,56 +48056,45 @@ } }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/commit-comment" + "$ref": "#/components/schemas/status-check-policy" }, "examples": { "default": { - "$ref": "#/components/examples/commit-comment" + "$ref": "#/components/examples/status-check-policy" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/comments/1", - "schema": { - "type": "string" - } - } } }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "$ref": "#/components/responses/not_found" }, "422": { "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "commits", - "subcategory": "comments" + "category": "branches", + "subcategory": "branch-protection" } - } - }, - "/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, 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.", + }, + "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/list-pull-requests-associated-with-commit", + "operationId": "repos/remove-status-check-protection", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/commits/commits#list-pull-requests-associated-with-a-commit" + "url": "https://docs.github.com/rest/branches/branch-protection#remove-status-check-protection" }, "parameters": [ { @@ -48930,13 +48104,43 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/commit-sha" + "$ref": "#/components/parameters/branch" + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "branches", + "subcategory": "branch-protection" + } + } + }, + "/repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts": { + "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://docs.github.com/github/getting-started-with-github/githubs-products) in the GitHub Help documentation.", + "tags": [ + "repos" + ], + "operationId": "repos/get-all-status-check-contexts", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/branches/branch-protection#get-all-status-check-contexts" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -48947,45 +48151,40 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/pull-request-simple" + "type": "string" } }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-simple-items" + "value": [ + "continuous-integration/travis-ci" + ] } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "409": { - "$ref": "#/components/responses/conflict" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "commits", - "subcategory": "commits" + "category": "branches", + "subcategory": "branch-protection" } - } - }, - "/repos/{owner}/{repo}/commits/{ref}": { - "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]\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. |", + }, + "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": [ "repos" ], - "operationId": "repos/get-commit", + "operationId": "repos/add-status-check-contexts", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/commits/commits#get-a-commit" + "url": "https://docs.github.com/rest/branches/branch-protection#add-status-check-contexts" }, "parameters": [ { @@ -48995,56 +48194,75 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/commit-ref" + "$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 adding status checks to a branch protection rule", + "value": { + "contexts": [ + "continuous-integration/travis-ci", + "continuous-integration/jenkins" + ] + } + } + } + } + } + }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/commit" - }, - "examples": { - "default": { - "$ref": "#/components/examples/commit" - } - } - }, - "application/vnd.github.diff": { - "schema": { - "type": "string" - }, - "examples": { - "default": { - "$ref": "#/components/examples/diff-media-type" - } - } - }, - "application/vnd.github.patch": { - "schema": { - "type": "string" - }, - "examples": { - "default": { - "$ref": "#/components/examples/patch-media-type" + "type": "array", + "items": { + "type": "string" } - } - }, - "application/vnd.github.sha": { - "schema": { - "type": "string" }, "examples": { "default": { - "value": "ac3282a2725be3b1d4979169a7a311c89066af1c" + "value": [ + "continuous-integration/travis-ci", + "continuous-integration/jenkins" + ] } } } @@ -49053,38 +48271,31 @@ "422": { "$ref": "#/components/responses/validation_failed" }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "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, - "category": "commits", - "subcategory": "commits" + "requestBodyParameterName": "contexts", + "category": "branches", + "subcategory": "branch-protection" } - } - }, - "/repos/{owner}/{repo}/commits/{ref}/check-runs": { - "get": { - "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.", + }, + "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": [ - "checks" + "repos" ], - "operationId": "checks/list-for-ref", + "operationId": "repos/set-status-check-contexts", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/checks/runs#list-check-runs-for-a-git-reference" + "url": "https://docs.github.com/rest/branches/branch-protection#set-status-check-contexts" }, "parameters": [ { @@ -49094,186 +48305,103 @@ "$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" - } + "$ref": "#/components/parameters/branch" } ], - "responses": { - "200": { - "description": "Response", - "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" + "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": { - "$ref": "#/components/examples/check-run-paginated" + ] + }, + "examples": { + "default": { + "summary": "Example updating status checks for a branch protection rule", + "value": { + "contexts": [ + "continuous-integration/travis-ci" + ] } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "checks", - "subcategory": "runs" - } - } - }, - "/repos/{owner}/{repo}/commits/{ref}/check-suites": { - "get": { - "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": [ - "checks" - ], - "operationId": "checks/list-suites-for-ref", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/checks/suites#list-check-suites-for-a-git-reference" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$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": { "200": { "description": "Response", "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" - } - } + "type": "array", + "items": { + "type": "string" } }, "examples": { "default": { - "$ref": "#/components/examples/check-suite-paginated" + "value": [ + "continuous-integration/travis-ci" + ] } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "checks", - "subcategory": "suites" + "requestBodyParameterName": "contexts", + "category": "branches", + "subcategory": "branch-protection" } - } - }, - "/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`", + }, + "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": [ "repos" ], - "operationId": "repos/get-combined-status-for-ref", + "operationId": "repos/remove-status-check-contexts", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/commits/statuses#get-the-combined-status-for-a-specific-reference" + "url": "https://docs.github.com/rest/branches/branch-protection#remove-status-check-contexts" }, "parameters": [ { @@ -49283,26 +48411,72 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/commit-ref" - }, - { - "$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", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/combined-commit-status" + "type": "array", + "items": { + "type": "string" + } }, "examples": { "default": { - "$ref": "#/components/examples/combined-commit-status" + "value": [ + "continuous-integration/travis-ci" + ] } } } @@ -49310,27 +48484,31 @@ }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "commits", - "subcategory": "statuses" + "requestBodyParameterName": "contexts", + "category": "branches", + "subcategory": "branch-protection" } } }, - "/repos/{owner}/{repo}/commits/{ref}/statuses": { + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions": { "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": "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": [ "repos" ], - "operationId": "repos/list-commit-statuses-for-ref", + "operationId": "repos/get-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/commits/statuses#list-commit-statuses-for-a-reference" + "url": "https://docs.github.com/rest/branches/branch-protection#get-access-restrictions" }, "parameters": [ { @@ -49340,13 +48518,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/commit-ref" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -49355,47 +48527,37 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/status" - } + "$ref": "#/components/schemas/branch-restriction-policy" }, "examples": { "default": { - "$ref": "#/components/examples/status-items" + "$ref": "#/components/examples/branch-restriction-policy" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "301": { - "$ref": "#/components/responses/moved_permanently" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "commits", - "subcategory": "statuses" + "category": "branches", + "subcategory": "branch-protection" } - } - }, - "/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.", + }, + "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": [ "repos" ], - "operationId": "repos/get-community-profile-metrics", + "operationId": "repos/delete-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/metrics/community#get-community-profile-metrics" + "url": "https://docs.github.com/rest/branches/branch-protection#delete-access-restrictions" }, "parameters": [ { @@ -49403,44 +48565,35 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/community-profile" - }, - "examples": { - "default": { - "$ref": "#/components/examples/community-profile" - } - } - } - } + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "metrics", - "subcategory": "community" + "category": "branches", + "subcategory": "branch-protection" } } }, - "/repos/{owner}/{repo}/compare/{basehead}": { + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps": { "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. |", + "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/compare-commits", + "operationId": "repos/get-apps-with-access-to-protected-branch", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/commits/commits#compare-two-commits" + "url": "https://docs.github.com/rest/branches/branch-protection#get-apps-with-access-to-the-protected-branch" }, "parameters": [ { @@ -49450,20 +48603,7 @@ "$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" - } + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -49472,31 +48612,14 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/commit-comparison" - }, - "examples": { - "default": { - "$ref": "#/components/examples/commit-comparison" - } - } - }, - "application/vnd.github.diff": { - "schema": { - "type": "string" - }, - "examples": { - "default": { - "$ref": "#/components/examples/diff-media-type" + "type": "array", + "items": { + "$ref": "#/components/schemas/integration" } - } - }, - "application/vnd.github.patch": { - "schema": { - "type": "string" }, "examples": { "default": { - "$ref": "#/components/examples/patch-media-type" + "$ref": "#/components/examples/integration-items" } } } @@ -49504,33 +48627,25 @@ }, "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": "commits", - "subcategory": "commits" + "category": "branches", + "subcategory": "branch-protection" } - } - }, - "/repos/{owner}/{repo}/contents/{path}": { - "get": { - "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.", + }, + "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://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/get-content", + "operationId": "repos/add-app-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/contents#get-repository-content" + "url": "https://docs.github.com/rest/branches/branch-protection#add-app-access-restrictions" }, "parameters": [ { @@ -49540,47 +48655,40 @@ "$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.", - "in": "query", - "required": false, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/branch" } ], "requestBody": { - "required": false, + "required": true, "content": { "application/json": { - "examples": { - "response-if-content-is-a-file-github-object": { - "summary": "Content is a file using the object media type" - }, - "response-if-content-is-a-directory-github-object": { - "summary": "Content is a directory using the object media type" - }, - "response-if-content-is-a-file": { - "summary": "Content is a file" - }, - "response-if-content-is-a-directory": { - "summary": "Content is a directory" - }, - "response-if-content-is-a-symlink": { - "summary": "Content is a symlink" + "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" + } + } }, - "response-if-content-is-a-submodule": { - "summary": "Content is a submodule" + "required": [ + "apps" + ], + "example": { + "apps": [ + "my-app" + ] + } + }, + "examples": { + "default": { + "value": { + "apps": [ + "octoapp" + ] + } } } } @@ -49590,101 +48698,43 @@ "200": { "description": "Response", "content": { - "application/vnd.github.object": { - "schema": { - "$ref": "#/components/schemas/content-tree" - }, - "examples": { - "response-if-content-is-a-file-github-object": { - "$ref": "#/components/examples/content-file-response-if-content-is-a-file" - }, - "response-if-content-is-a-directory-github-object": { - "$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" - } + "type": "array", + "items": { + "$ref": "#/components/schemas/integration" } }, "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": { + "$ref": "#/components/examples/integration-items" } } } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "302": { - "$ref": "#/components/responses/found" - }, - "304": { - "$ref": "#/components/responses/not_modified" + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "contents" - }, - "x-github-breaking-changes": [ - { - "changeset": "return_submodule_type_for_submodules_in_directory_lists", - "patch": { - "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.\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." - }, - "version": "2026-03-10" - } - ] + "requestBodyParameterName": "apps", + "category": "branches", + "subcategory": "branch-protection" + } }, "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.", + "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/create-or-update-file-contents", + "operationId": "repos/set-app-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/contents#create-or-update-file-contents" + "url": "https://docs.github.com/rest/branches/branch-protection#set-app-access-restrictions" }, "parameters": [ { @@ -49694,14 +48744,7 @@ "$ref": "#/components/parameters/repo" }, { - "name": "path", - "description": "path parameter", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "x-multi-segment": true + "$ref": "#/components/parameters/branch" } ], "requestBody": { @@ -49711,94 +48754,29 @@ "schema": { "type": "object", "properties": { - "message": { - "type": "string", - "description": "The commit message." - }, - "content": { - "type": "string", - "description": "The new file content, using Base64 encoding." - }, - "sha": { - "type": "string", - "description": "**Required if you are updating a file**. The blob SHA of the file being replaced." - }, - "branch": { - "type": "string", - "description": "The branch name. Default: the repository’s default branch." - }, - "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" - ] + "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": [ - "message", - "content" - ] + "apps" + ], + "example": { + "apps": [ + "my-app" + ] + } }, "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" + "apps": [ + "octoapp" + ] } } } @@ -49811,72 +48789,41 @@ "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" + "type": "array", + "items": { + "$ref": "#/components/schemas/integration" } - } - } - } - }, - "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" + "default": { + "$ref": "#/components/examples/integration-items" } } } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, "422": { "$ref": "#/components/responses/validation_failed" - }, - "409": { - "description": "Conflict", - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "$ref": "#/components/schemas/basic-error" - }, - { - "$ref": "#/components/schemas/repository-rule-violation-error" - } - ] - } - } - } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "contents" + "requestBodyParameterName": "apps", + "category": "branches", + "subcategory": "branch-protection" } }, "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.", + "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-file", + "operationId": "repos/remove-app-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/contents#delete-a-file" + "url": "https://docs.github.com/rest/branches/branch-protection#remove-app-access-restrictions" }, "parameters": [ { @@ -49886,14 +48833,7 @@ "$ref": "#/components/parameters/repo" }, { - "name": "path", - "description": "path parameter", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "x-multi-segment": true + "$ref": "#/components/parameters/branch" } ], "requestBody": { @@ -49903,61 +48843,29 @@ "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" - } + "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": [ - "message", - "sha" - ] + "apps" + ], + "example": { + "apps": [ + "my-app" + ] + } }, "examples": { "default": { "value": { - "message": "my commit message", - "committer": { - "name": "Monalisa Octocat", - "email": "octocat@github.com" - }, - "sha": "329688480d39049927147c162b9d2deaf885005f" + "apps": [ + "my-app" + ] } } } @@ -49970,11 +48878,14 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/file-commit" + "type": "array", + "items": { + "$ref": "#/components/schemas/integration" + } }, "examples": { "default": { - "$ref": "#/components/examples/file-commit" + "$ref": "#/components/examples/integration-items" } } } @@ -49982,36 +48893,28 @@ }, "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": "contents" + "requestBodyParameterName": "apps", + "category": "branches", + "subcategory": "branch-protection" } } }, - "/repos/{owner}/{repo}/contributors": { + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams": { "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 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": "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-contributors", + "operationId": "repos/get-teams-with-access-to-protected-branch", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#list-repository-contributors" + "url": "https://docs.github.com/rest/branches/branch-protection#get-teams-with-access-to-the-protected-branch" }, "parameters": [ { @@ -50021,51 +48924,28 @@ "$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/branch" } ], "responses": { "200": { - "description": "If repository contains content", + "description": "Response", "content": { "application/json": { "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/contributor" + "$ref": "#/components/schemas/team" } }, "examples": { - "response-if-repository-contains-content": { - "$ref": "#/components/examples/contributor-items-response-if-repository-contains-content" + "default": { + "$ref": "#/components/examples/team-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "204": { - "description": "Response if repository is empty" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, "404": { "$ref": "#/components/responses/not_found" } @@ -50073,22 +48953,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "repos" + "category": "branches", + "subcategory": "branch-protection" } - } - }, - "/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.", + }, + "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://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": [ - "dependabot" + "repos" ], - "operationId": "dependabot/list-alerts-for-repo", + "operationId": "repos/add-team-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-a-repository" + "url": "https://docs.github.com/rest/branches/branch-protection#add-team-access-restrictions" }, "parameters": [ { @@ -50098,162 +48976,98 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/dependabot-alert-comma-separated-classifications" - }, - { - "$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-comma-separated-assignees" - }, - { - "$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" + "$ref": "#/components/parameters/branch" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/dependabot-alert" + "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": { - "$ref": "#/components/examples/dependabot-alerts-for-repository" + ] + }, + "examples": { + "default": { + "summary": "Example adding a team in a branch protection rule", + "value": { + "teams": [ + "justice-league" + ] } } } } - }, - "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_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" + "type": "array", + "items": { + "$ref": "#/components/schemas/team" + } }, "examples": { "default": { - "$ref": "#/components/examples/dependabot-alert-open" + "$ref": "#/components/examples/team-items" } } } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "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": "dependabot", - "subcategory": "alerts" + "requestBodyParameterName": "teams", + "category": "branches", + "subcategory": "branch-protection" } }, - "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.", + "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": [ - "dependabot" + "repos" ], - "operationId": "dependabot/update-alert", + "operationId": "repos/set-team-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/dependabot/alerts#update-a-dependabot-alert" + "url": "https://docs.github.com/rest/branches/branch-protection#set-team-access-restrictions" }, "parameters": [ { @@ -50263,68 +49077,51 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/dependabot-alert-number" + "$ref": "#/components/parameters/branch" } ], "requestBody": { - "required": true, + "required": false, "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 + "oneOf": [ + { + "type": "object", + "properties": { + "teams": { + "type": "array", + "description": "The slug values for teams", + "items": { + "type": "string" + } + } + }, + "required": [ + "teams" + ], + "example": { + "teams": [ + "justice-league" + ] + } }, - "assignees": { + { "type": "array", - "description": "Usernames to assign to this Dependabot Alert.\nPass one or more user logins to _replace_ the set of assignees on this alert.\nSend an empty array (`[]`) to clear all assignees from the alert.", + "description": "The slug values for teams", "items": { "type": "string" } } - }, - "anyOf": [ - { - "required": [ - "state" - ] - }, - { - "required": [ - "assignees" - ] - } - ], - "additionalProperties": false + ] }, "examples": { "default": { + "summary": "Example replacing a team in a branch protection rule", "value": { - "state": "dismissed", - "dismissed_reason": "tolerable_risk", - "dismissed_comment": "This alert is accurate but we use a sanitizer." + "teams": [ + "justice-league" + ] } } } @@ -50337,52 +49134,41 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/dependabot-alert" + "type": "array", + "items": { + "$ref": "#/components/schemas/team" + } }, "examples": { "default": { - "$ref": "#/components/examples/dependabot-alert-dismissed" + "$ref": "#/components/examples/team-items" } } } } }, - "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" + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "previews": [], - "category": "dependabot", - "subcategory": "alerts" + "requestBodyParameterName": "teams", + "category": "branches", + "subcategory": "branch-protection" } - } - }, - "/repos/{owner}/{repo}/dependabot/secrets": { - "get": { - "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.", + }, + "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": [ - "dependabot" + "repos" ], - "operationId": "dependabot/list-repo-secrets", + "operationId": "repos/remove-team-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/dependabot/secrets#list-repository-secrets" + "url": "https://docs.github.com/rest/branches/branch-protection#remove-team-access-restrictions" }, "parameters": [ { @@ -50392,113 +49178,99 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/branch" } ], - "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/dependabot-secret" + "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": { - "$ref": "#/components/examples/dependabot-secret-paginated" + ] + }, + "examples": { + "default": { + "summary": "Example removing a team in a branch protection rule", + "value": { + "teams": [ + "octocats" + ] } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "dependabot", - "subcategory": "secrets" - } - } - }, - "/repos/{owner}/{repo}/dependabot/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. 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": [ - "dependabot" - ], - "operationId": "dependabot/get-repo-public-key", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/dependabot/secrets#get-a-repository-public-key" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - } - ], "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/dependabot-public-key" + "type": "array", + "items": { + "$ref": "#/components/schemas/team" + } }, "examples": { "default": { - "$ref": "#/components/examples/dependabot-public-key" + "$ref": "#/components/examples/team-items" } } } } + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "dependabot", - "subcategory": "secrets" + "requestBodyParameterName": "teams", + "category": "branches", + "subcategory": "branch-protection" } } }, - "/repos/{owner}/{repo}/dependabot/secrets/{secret_name}": { + "/repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users": { "get": { - "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.", + "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": [ - "dependabot" + "repos" ], - "operationId": "dependabot/get-repo-secret", + "operationId": "repos/get-users-with-access-to-protected-branch", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/dependabot/secrets#get-a-repository-secret" + "url": "https://docs.github.com/rest/branches/branch-protection#get-users-with-access-to-the-protected-branch" }, "parameters": [ { @@ -50508,7 +49280,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/secret-name" + "$ref": "#/components/parameters/branch" } ], "responses": { @@ -50517,34 +49289,40 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/dependabot-secret" + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } }, "examples": { "default": { - "$ref": "#/components/examples/dependabot-secret" + "$ref": "#/components/examples/simple-user-items" } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "dependabot", - "subcategory": "secrets" + "category": "branches", + "subcategory": "branch-protection" } }, - "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\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "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://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": [ - "dependabot" + "repos" ], - "operationId": "dependabot/create-or-update-repo-secret", + "operationId": "repos/add-user-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/dependabot/secrets#create-or-update-a-repository-secret" + "url": "https://docs.github.com/rest/branches/branch-protection#add-user-access-restrictions" }, "parameters": [ { @@ -50554,7 +49332,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/secret-name" + "$ref": "#/components/parameters/branch" } ], "requestBody": { @@ -50564,22 +49342,30 @@ "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/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": { - "type": "string", - "description": "ID of the key you used to encrypt the secret." + "users": { + "type": "array", + "description": "The username for users", + "items": { + "type": "string" + } } + }, + "required": [ + "users" + ], + "example": { + "users": [ + "mona" + ] } }, "examples": { "default": { + "summary": "Example adding a user in a branch protection rule", "value": { - "encrypted_value": "c2VjcmV0", - "key_id": "012345678912345678" + "users": [ + "octocat" + ] } } } @@ -50587,78 +49373,46 @@ } }, "responses": { - "201": { - "description": "Response when creating a secret", + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/empty-object" + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } }, "examples": { "default": { - "value": null + "$ref": "#/components/examples/simple-user-items" } } } } }, - "204": { - "description": "Response when updating a secret" + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "dependabot", - "subcategory": "secrets" + "requestBodyParameterName": "users", + "category": "branches", + "subcategory": "branch-protection" } }, - "delete": { - "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": [ - "dependabot" - ], - "operationId": "dependabot/delete-repo-secret", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/dependabot/secrets#delete-a-repository-secret" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/secret-name" - } - ], - "responses": { - "204": { - "description": "Response" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "dependabot", - "subcategory": "secrets" - } - } - }, - "/repos/{owner}/{repo}/dependency-graph/compare/{basehead}": { - "get": { - "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.", + "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": [ - "dependency-graph" + "repos" ], - "operationId": "dependency-graph/diff-range", + "operationId": "repos/set-user-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/dependency-graph/dependency-review#get-a-diff-of-the-dependencies-between-commits" + "url": "https://docs.github.com/rest/branches/branch-protection#set-user-access-restrictions" }, "parameters": [ { @@ -50668,119 +49422,87 @@ "$ref": "#/components/parameters/repo" }, { - "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" - } - }, - { - "$ref": "#/components/parameters/manifest-path" + "$ref": "#/components/parameters/branch" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/dependency-graph-diff" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "users": { + "type": "array", + "description": "The username for users", + "items": { + "type": "string" + } + } }, - "examples": { - "default": { - "$ref": "#/components/examples/diff-range-response" + "required": [ + "users" + ], + "example": { + "users": [ + "mona" + ] + } + }, + "examples": { + "default": { + "summary": "Example replacing a user in a branch protection rule", + "value": { + "users": [ + "octocat" + ] } } } - }, - "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": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/dependency-graph-spdx-sbom" + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } }, "examples": { "default": { - "$ref": "#/components/examples/dependency-graph-export-sbom-response" + "$ref": "#/components/examples/simple-user-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "category": "dependency-graph", - "subcategory": "sboms" + "enabledForGitHubApps": true, + "requestBodyParameterName": "users", + "category": "branches", + "subcategory": "branch-protection" } - } - }, - "/repos/{owner}/{repo}/dependency-graph/snapshots": { - "post": { - "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.", + }, + "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": [ - "dependency-graph" + "repos" ], - "operationId": "dependency-graph/create-repository-snapshot", + "operationId": "repos/remove-user-access-restrictions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/dependency-graph/dependency-submission#create-a-snapshot-of-dependencies-for-a-repository" + "url": "https://docs.github.com/rest/branches/branch-protection#remove-user-access-restrictions" }, "parameters": [ { @@ -50788,6 +49510,9 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" } ], "requestBody": { @@ -50795,132 +49520,38 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/snapshot" - }, - "examples": { - "example-of-a-dependency-submission": { - "$ref": "#/components/examples/dependency-graph-create-snapshot-request" - } - } - } - } - }, - "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "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." + "type": "object", + "properties": { + "users": { + "type": "array", + "description": "The username for users", + "items": { + "type": "string" } } }, - "examples": { - "example-of-a-dependency-submission": { - "$ref": "#/components/examples/dependency-graph-create-snapshot-success" + "required": [ + "users" + ], + "example": { + "users": [ + "mona" + ] + } + }, + "examples": { + "default": { + "summary": "Example removing a user in a branch protection rule", + "value": { + "users": [ + "octocat" + ] } } } } } }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "dependency-graph", - "subcategory": "dependency-submission" - } - } - }, - "/repos/{owner}/{repo}/deployments": { - "get": { - "summary": "List deployments", - "description": "Simple filtering of deployments is available via query parameters:", - "tags": [ - "repos" - ], - "operationId": "repos/list-deployments", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/deployments/deployments#list-deployments" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$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" - } - ], "responses": { "200": { "description": "Response", @@ -50929,40 +49560,41 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/deployment" + "$ref": "#/components/schemas/simple-user" } }, "examples": { "default": { - "$ref": "#/components/examples/deployment-items" + "$ref": "#/components/examples/simple-user-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "deployments", - "subcategory": "deployments" + "requestBodyParameterName": "users", + "category": "branches", + "subcategory": "branch-protection" } - }, + } + }, + "/repos/{owner}/{repo}/branches/{branch}/rename": { "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.", + "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": [ "repos" ], - "operationId": "repos/create-deployment", + "operationId": "repos/rename-branch", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deployments/deployments#create-a-deployment" + "url": "https://docs.github.com/rest/branches/branches#rename-a-branch" }, "parameters": [ { @@ -50970,6 +49602,9 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" } ], "requestBody": { @@ -50979,85 +49614,19 @@ "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/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" - } - }, - "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": { + "new_name": { "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." + "description": "The new name of the branch." } }, "required": [ - "ref" + "new_name" ] }, "examples": { - "simple-example": { - "summary": "Simple example", - "value": { - "ref": "topic-branch", - "payload": "{ \"deploy\": \"migrate\" }", - "description": "Deploy request from hubot" - } - }, - "advanced-example": { - "summary": "Advanced example", + "default": { "value": { - "ref": "topic-branch", - "auto_merge": false, - "payload": "{ \"deploy\": \"migrate\" }", - "description": "Deploy request from hubot", - "required_contexts": [ - "ci/janky", - "security/brakeman" - ] + "new_name": "my_renamed_branch" } } } @@ -51070,40 +49639,21 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/deployment" + "$ref": "#/components/schemas/branch-with-protection" }, "examples": { - "simple-example": { - "$ref": "#/components/examples/deployment-simple-example" + "default": { + "$ref": "#/components/examples/branch-with-protection" } } } } }, - "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." - } - } - } - } - } + "403": { + "$ref": "#/components/responses/forbidden" }, - "409": { - "description": "Conflict when there is a merge conflict or the commit's status checks failed" + "404": { + "$ref": "#/components/responses/not_found" }, "422": { "$ref": "#/components/responses/validation_failed" @@ -51112,22 +49662,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "deployments", - "subcategory": "deployments" + "category": "branches", + "subcategory": "branches" } } }, - "/repos/{owner}/{repo}/deployments/{deployment_id}": { - "get": { - "summary": "Get a deployment", - "description": "", + "/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": [ - "repos" + "checks" ], - "operationId": "repos/get-deployment", + "operationId": "checks/create", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deployments/deployments#get-a-deployment" + "url": "https://docs.github.com/rest/checks/runs#create-a-check-run" }, "parameters": [ { @@ -51135,90 +49685,349 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/deployment-id" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/deployment" - }, - "examples": { - "default": { - "$ref": "#/components/examples/deployment" + "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 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": [ + "name", + "head_sha" + ], + "discriminator": { + "propertyName": "status" + }, + "oneOf": [ + { + "properties": { + "status": { + "enum": [ + "completed" + ] + } + }, + "required": [ + "status", + "conclusion" + ], + "additionalProperties": true + }, + { + "properties": { + "status": { + "enum": [ + "queued", + "in_progress" + ] + } + }, + "additionalProperties": true + } + ] + }, + "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" + } + ] } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "deployments", - "subcategory": "deployments" - } - }, - "delete": { - "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": [ - "repos" - ], - "operationId": "repos/delete-deployment", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/deployments/deployments#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" + "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" + }, + "example-of-in-progress-conclusion": { + "$ref": "#/components/examples/check-run-example-of-in-progress-conclusion" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "deployments", - "subcategory": "deployments" + "category": "checks", + "subcategory": "runs" } } }, - "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses": { + "/repos/{owner}/{repo}/check-runs/{check_run_id}": { "get": { - "summary": "List deployment statuses", - "description": "Users with pull access can view deployment statuses for a deployment:", + "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": [ - "repos" + "checks" ], - "operationId": "repos/list-deployment-statuses", + "operationId": "checks/get", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deployments/statuses#list-deployment-statuses" + "url": "https://docs.github.com/rest/checks/runs#get-a-check-run" }, "parameters": [ { @@ -51228,13 +50037,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/deployment-id" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/check-run-id" } ], "responses": { @@ -51243,45 +50046,34 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/deployment-status" - } + "$ref": "#/components/schemas/check-run" }, "examples": { "default": { - "$ref": "#/components/examples/deployment-status-items" + "$ref": "#/components/examples/check-run" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "deployments", - "subcategory": "statuses" + "category": "checks", + "subcategory": "runs" } }, - "post": { - "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.", + "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": [ - "repos" + "checks" ], - "operationId": "repos/create-deployment-status", + "operationId": "checks/update", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deployments/statuses#create-a-deployment-status" + "url": "https://docs.github.com/rest/checks/runs#update-a-check-run" }, "parameters": [ { @@ -51291,7 +50083,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/deployment-id" + "$ref": "#/components/parameters/check-run-id" } ], "requestBody": { @@ -51301,59 +50093,257 @@ "schema": { "type": "object", "properties": { - "state": { + "name": { "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" - ] + "description": "The name of the check. For example, \"code-coverage\"." }, - "target_url": { + "details_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.\n\n> [!NOTE]\n> It's recommended to use the `log_url` parameter, which replaces `target_url`.", - "default": "" + "description": "The URL of the integrator's site that has the full details of the check." }, - "log_url": { + "external_id": { "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": "" + "description": "A reference for the run on the integrator's system." }, - "description": { + "started_at": { "type": "string", - "description": "A short description of the status. The maximum description length is 140 characters.", - "default": "" + "format": "date-time", + "description": "This is a timestamp in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format: `YYYY-MM-DDTHH:MM:SSZ`." }, - "environment": { + "status": { "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." + "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" + ] }, - "environment_url": { + "conclusion": { "type": "string", - "description": "Sets the URL for accessing your environment. Default: `\"\"`", - "default": "" + "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" + ] }, - "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`" + "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" + ] + } } }, - "required": [ - "state" + "anyOf": [ + { + "properties": { + "status": { + "enum": [ + "completed" + ] + } + }, + "required": [ + "conclusion" + ], + "additionalProperties": true + }, + { + "properties": { + "status": { + "enum": [ + "queued", + "in_progress" + ] + } + }, + "additionalProperties": true + } ] }, "examples": { "default": { "value": { - "environment": "production", - "state": "success", - "log_url": "https://example.com/deployment/42/output", - "description": "Deployment finished successfully." + "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" + } + ] + } } } } @@ -51361,52 +50351,41 @@ } }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/deployment-status" + "$ref": "#/components/schemas/check-run" }, "examples": { "default": { - "$ref": "#/components/examples/deployment-status" + "$ref": "#/components/examples/check-run" } } } - }, - "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, - "category": "deployments", - "subcategory": "statuses" + "category": "checks", + "subcategory": "runs" } } }, - "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}": { + "/repos/{owner}/{repo}/check-runs/{check_run_id}/annotations": { "get": { - "summary": "Get a deployment status", - "description": "Users with pull access can view a deployment status for a deployment:", + "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": [ - "repos" + "checks" ], - "operationId": "repos/get-deployment-status", + "operationId": "checks/list-annotations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deployments/statuses#get-a-deployment-status" + "url": "https://docs.github.com/rest/checks/runs#list-check-run-annotations" }, "parameters": [ { @@ -51416,15 +50395,13 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/deployment-id" + "$ref": "#/components/parameters/check-run-id" }, { - "name": "status_id", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -51433,16 +50410,92 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/deployment-status" + "type": "array", + "items": { + "$ref": "#/components/schemas/check-annotation" + } }, "examples": { "default": { - "$ref": "#/components/examples/deployment-status" + "$ref": "#/components/examples/check-annotation-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "checks", + "subcategory": "runs" + } + } + }, + "/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": [ + "checks" + ], + "operationId": "checks/rerequest-run", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/checks/runs#rerequest-a-check-run" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/check-run-id" + } + ], + "responses": { + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/empty-object" + }, + "examples": { + "default": { + "value": null } } } } }, + "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" } @@ -51450,22 +50503,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "deployments", - "subcategory": "statuses" + "category": "checks", + "subcategory": "runs" } } }, - "/repos/{owner}/{repo}/dispatches": { + "/repos/{owner}/{repo}/check-suites": { "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.", + "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": [ - "repos" + "checks" ], - "operationId": "repos/create-dispatch-event", + "operationId": "checks/create-suite", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#create-a-repository-dispatch-event" + "url": "https://docs.github.com/rest/checks/suites#create-a-check-suite" }, "parameters": [ { @@ -51481,32 +50534,20 @@ "application/json": { "schema": { "type": "object", - "required": [ - "event_type" - ], "properties": { - "event_type": { + "head_sha": { "type": "string", - "description": "A custom webhook event name. Must be 100 characters or fewer.", - "minLength": 1, - "maxLength": 100 - }, - "client_payload": { - "type": "object", - "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 + "description": "The sha of the head commit." } - } + }, + "required": [ + "head_sha" + ] }, "examples": { "default": { "value": { - "event_type": "on-demand-test", - "client_payload": { - "unit": false, - "integration": true - } + "head_sha": "d6fde92930d4715a2b49857d24b940956b26d2d3" } } } @@ -51514,35 +50555,56 @@ } }, "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" + "200": { + "description": "Response when the suite already exists", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/check-suite" + }, + "examples": { + "default": { + "$ref": "#/components/examples/check-suite" + } + } + } + } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "201": { + "description": "Response when the suite was created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/check-suite" + }, + "examples": { + "default": { + "$ref": "#/components/examples/check-suite" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "repos" + "category": "checks", + "subcategory": "suites" } } }, - "/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.", + "/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": [ - "repos" + "checks" ], - "operationId": "repos/get-all-environments", + "operationId": "checks/set-suites-preferences", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deployments/environments#list-environments" + "url": "https://docs.github.com/rest/checks/suites#update-repository-preferences-for-check-suites" }, "parameters": [ { @@ -51550,38 +50612,65 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], + "requestBody": { + "required": true, + "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.", + "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" + ] + } + } + } + }, + "examples": { + "default": { + "value": { + "auto_trigger_checks": [ + { + "app_id": 4, + "setting": false + } + ] + } + } + } + } + } + }, "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" - } - } - } + "$ref": "#/components/schemas/check-suite-preference" }, "examples": { "default": { - "$ref": "#/components/examples/environments" + "$ref": "#/components/examples/check-suite-preference" } } } @@ -51591,22 +50680,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "deployments", - "subcategory": "environments" + "category": "checks", + "subcategory": "suites" } } }, - "/repos/{owner}/{repo}/environments/{environment_name}": { + "/repos/{owner}/{repo}/check-suites/{check_suite_id}": { "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.", + "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": [ - "repos" + "checks" ], - "operationId": "repos/get-environment", + "operationId": "checks/get-suite", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deployments/environments#get-an-environment" + "url": "https://docs.github.com/rest/checks/suites#get-a-check-suite" }, "parameters": [ { @@ -51616,7 +50705,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/environment-name" + "$ref": "#/components/parameters/check-suite-id" } ], "responses": { @@ -51625,11 +50714,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/environment" + "$ref": "#/components/schemas/check-suite" }, "examples": { "default": { - "$ref": "#/components/examples/environment" + "$ref": "#/components/examples/check-suite" } } } @@ -51639,20 +50728,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "deployments", - "subcategory": "environments" + "category": "checks", + "subcategory": "suites" } - }, - "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.", + } + }, + "/repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs": { + "get": { + "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": [ - "repos" + "checks" ], - "operationId": "repos/create-or-update-environment", + "operationId": "checks/list-for-suite", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deployments/environments#create-or-update-an-environment" + "url": "https://docs.github.com/rest/checks/runs#list-check-runs-in-a-check-suite" }, "parameters": [ { @@ -51662,95 +50753,68 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/environment-name" - } - ], - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "type": "object", - "nullable": true, - "properties": { - "wait_timer": { - "$ref": "#/components/schemas/wait-timer" - }, - "prevent_self_review": { - "$ref": "#/components/schemas/prevent-self-review" - }, - "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-settings" - } - }, - "additionalProperties": false - }, - "examples": { - "default": { - "value": { - "wait_timer": 30, - "prevent_self_review": false, - "reviewers": [ - { - "type": "User", - "id": 1 - }, - { - "type": "Team", - "id": 1 - } - ], - "deployment_branch_policy": { - "protected_branches": false, - "custom_branch_policies": true - } - } - } - } + "$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" + }, + { + "$ref": "#/components/parameters/page" } - }, + ], "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/environment" + "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/environment" + "$ref": "#/components/examples/check-run-paginated" } } } - } - }, - "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" - } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" } } } @@ -51758,20 +50822,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "deployments", - "subcategory": "environments" + "category": "checks", + "subcategory": "runs" } - }, - "delete": { - "summary": "Delete an environment", - "description": "OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + } + }, + "/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": [ - "repos" + "checks" ], - "operationId": "repos/delete-an-environment", + "operationId": "checks/rerequest-suite", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deployments/environments#delete-an-environment" + "url": "https://docs.github.com/rest/checks/suites#rerequest-a-check-suite" }, "parameters": [ { @@ -51781,33 +50847,45 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/environment-name" + "$ref": "#/components/parameters/check-suite-id" } ], "responses": { - "204": { - "description": "Default response" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/empty-object" + }, + "examples": { + "default": { + "value": null + } + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "deployments", - "subcategory": "environments" + "category": "checks", + "subcategory": "suites" } } }, - "/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies": { + "/repos/{owner}/{repo}/code-quality/findings": { "get": { - "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.", + "summary": "List code quality findings for a repository", + "description": "Lists code quality findings for 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": [ - "repos" + "code-quality" ], - "operationId": "repos/list-deployment-branch-policies", + "operationId": "code-quality/list-findings-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deployments/branch-policies#list-deployment-branch-policies" + "url": "https://docs.github.com/rest/code-quality/code-quality#list-code-quality-findings-for-a-repository" }, "parameters": [ { @@ -51817,13 +50895,29 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/environment-name" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/direction" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/pagination-before" + }, + { + "$ref": "#/components/parameters/pagination-after" + }, + { + "name": "state", + "description": "If specified, only code quality findings with this state will be returned.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "open", + "dismissed" + ] + } } ], "responses": { @@ -51832,51 +50926,48 @@ "content": { "application/json": { "schema": { - "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" - ] + "type": "array", + "items": { + "$ref": "#/components/schemas/code-quality-finding" + } }, "examples": { "default": { - "$ref": "#/components/examples/deployment-branch-policies-list" + "$ref": "#/components/examples/code-quality-finding-items" } } } } + }, + "403": { + "$ref": "#/components/responses/code_quality_forbidden_read" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "deployments", - "subcategory": "branch-policies" + "category": "code-quality", + "subcategory": "code-quality" } - }, - "post": { - "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.", + } + }, + "/repos/{owner}/{repo}/code-quality/findings/{finding_number}": { + "get": { + "summary": "Get a code quality finding", + "description": "Gets a single code quality finding.\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-quality" ], - "operationId": "repos/create-deployment-branch-policy", + "operationId": "code-quality/get-finding", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deployments/branch-policies#create-a-deployment-branch-policy" + "url": "https://docs.github.com/rest/code-quality/code-quality#get-a-code-quality-finding" }, "parameters": [ { @@ -51886,89 +50977,54 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/environment-name" + "$ref": "#/components/parameters/code-quality-finding-number" } ], - "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": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/deployment-branch-policy" + "$ref": "#/components/schemas/code-quality-finding" }, "examples": { - "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" + "default": { + "$ref": "#/components/examples/code-quality-finding" } } } } }, + "403": { + "$ref": "#/components/responses/code_quality_forbidden_read" + }, "404": { - "description": "Not Found or `deployment_branch_policy.custom_branch_policies` property for the environment is set to false" + "$ref": "#/components/responses/not_found" }, - "303": { - "description": "Response if the same branch name pattern already exists" + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "deployments", - "subcategory": "branch-policies" + "category": "code-quality", + "subcategory": "code-quality" } } }, - "/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}": { + "/repos/{owner}/{repo}/code-quality/setup": { "get": { - "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.", + "summary": "Get a code quality setup configuration", + "description": "Gets a code quality 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-quality" ], - "operationId": "repos/get-deployment-branch-policy", + "operationId": "code-quality/get-setup", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deployments/branch-policies#get-a-deployment-branch-policy" + "url": "https://docs.github.com/rest/code-quality/code-quality#get-a-code-quality-setup-configuration" }, "parameters": [ { @@ -51976,12 +51032,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/environment-name" - }, - { - "$ref": "#/components/parameters/branch-policy-id" } ], "responses": { @@ -51990,34 +51040,43 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/deployment-branch-policy" + "$ref": "#/components/schemas/code-quality-setup" }, "examples": { "default": { - "$ref": "#/components/examples/deployment-branch-policy-wildcard" + "$ref": "#/components/examples/code-quality-setup" } } } } + }, + "403": { + "$ref": "#/components/responses/code_quality_forbidden_read" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "deployments", - "subcategory": "branch-policies" + "category": "code-quality", + "subcategory": "code-quality" } }, - "put": { - "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.", + "patch": { + "summary": "Update a code quality setup configuration", + "description": "Updates a code quality 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-quality" ], - "operationId": "repos/update-deployment-branch-policy", + "operationId": "code-quality/update-setup", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deployments/branch-policies#update-a-deployment-branch-policy" + "url": "https://docs.github.com/rest/code-quality/code-quality#update-a-code-quality-setup-configuration" }, "parameters": [ { @@ -52025,12 +51084,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/environment-name" - }, - { - "$ref": "#/components/parameters/branch-policy-id" } ], "requestBody": { @@ -52038,13 +51091,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/deployment-branch-policy-name-pattern" + "$ref": "#/components/schemas/code-quality-setup-update" }, "examples": { "default": { - "value": { - "name": "release/*" - } + "$ref": "#/components/examples/code-quality-setup-update" } } } @@ -52056,34 +51107,66 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/deployment-branch-policy" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/deployment-branch-policy-wildcard" + "value": null + } + } + } + } + }, + "202": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/code-quality-setup-update-response" + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-quality-setup-update-response" } } } } + }, + "403": { + "$ref": "#/components/responses/code_quality_forbidden_write" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/code_quality_conflict" + }, + "422": { + "$ref": "#/components/responses/code_quality_invalid_state" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "deployments", - "subcategory": "branch-policies" + "category": "code-quality", + "subcategory": "code-quality" } - }, - "delete": { - "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.", + } + }, + "/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": [ - "repos" + "code-scanning" ], - "operationId": "repos/delete-deployment-branch-policy", + "operationId": "code-scanning/list-alerts-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deployments/branch-policies#delete-a-deployment-branch-policy" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#list-code-scanning-alerts-for-a-repository" }, "parameters": [ { @@ -52093,262 +51176,350 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/environment-name" + "$ref": "#/components/parameters/tool-name" }, { - "$ref": "#/components/parameters/branch-policy-id" + "$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" + } + }, + { + "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": "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, + "schema": { + "type": "string" + } } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/code-scanning-alert-items" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-scanning-alert-items" + } + } + } + } + }, + "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, - "category": "deployments", - "subcategory": "branch-policies" + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules": { + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}": { "get": { - "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.", + "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": [ - "repos" + "code-scanning" ], - "operationId": "repos/get-all-deployment-protection-rules", + "operationId": "code-scanning/get-alert", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deployments/protection-rules#get-all-deployment-protection-rules-for-an-environment" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-alert" }, "parameters": [ { - "$ref": "#/components/parameters/environment-name" + "$ref": "#/components/parameters/owner" }, { "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/alert-number" } ], "responses": { "200": { - "description": "List of deployment protection rules", + "description": "Response", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "total_count": { - "description": "The number of enabled custom deployment protection rules for this environment", - "type": "integer", - "example": 10 - }, - "custom_deployment_protection_rules": { - "type": "array", - "items": { - "$ref": "#/components/schemas/deployment-protection-rule" - } - } - }, - "example": { - "$ref": "#/components/examples/deployment-protection-rules" - } + "$ref": "#/components/schemas/code-scanning-alert" }, "examples": { "default": { - "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" - } - } - ] - } + "$ref": "#/components/examples/code-scanning-alert" } } } } + }, + "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, - "category": "deployments", - "subcategory": "protection-rules" + "category": "code-scanning", + "subcategory": "code-scanning" } }, - "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.", + "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": [ - "repos" + "code-scanning" ], - "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" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#update-a-code-scanning-alert" }, "parameters": [ { - "$ref": "#/components/parameters/environment-name" + "$ref": "#/components/parameters/owner" }, { "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/alert-number" } ], "requestBody": { + "required": true, "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." + "state": { + "$ref": "#/components/schemas/code-scanning-alert-set-state" + }, + "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": [ + "state" + ] + }, + { + "required": [ + "assignees" + ] + } + ] }, "examples": { "default": { "value": { - "integration_id": 5 + "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 } } } } - }, - "required": true + } }, "responses": { - "201": { - "description": "The enabled custom deployment protection rule", + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/deployment-protection-rule" + "$ref": "#/components/schemas/code-scanning-alert" }, "examples": { "default": { - "$ref": "#/components/examples/deployment-protection-rule" + "$ref": "#/components/examples/code-scanning-alert-dismissed" } } } } + }, + "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, - "category": "deployments", - "subcategory": "protection-rules" + "githubCloudOnly": false, + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps": { + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix": { "get": { - "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.", + "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 on the repository's default branch.\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/list-custom-deployment-rule-integrations", + "operationId": "code-scanning/get-autofix", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deployments/protection-rules#list-custom-deployment-rule-integrations-available-for-an-environment" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-the-status-of-an-autofix-for-a-code-scanning-alert" }, "parameters": [ - { - "$ref": "#/components/parameters/environment-name" - }, - { - "$ref": "#/components/parameters/repo" - }, { "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/alert-number" } ], "responses": { "200": { - "description": "A list of custom deployment rule integrations available for this environment.", + "description": "Response", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "total_count": { - "description": "The total number of custom deployment protection rule integrations available for this environment.", - "type": "integer", - "example": 35 - }, - "available_custom_deployment_protection_rule_integrations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/custom-deployment-rule-app" - } - } - } + "$ref": "#/components/schemas/code-scanning-autofix" }, "examples": { "default": { - "$ref": "#/components/examples/custom-deployment-protection-rule-apps" + "$ref": "#/components/examples/code-scanning-autofix" } } } } + }, + "400": { + "$ref": "#/components/responses/code_scanning_bad_request" + }, + "403": { + "$ref": "#/components/responses/code_scanning_forbidden_read" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "deployments", - "subcategory": "protection-rules" + "category": "code-scanning", + "subcategory": "code-scanning" } - } - }, - "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}": { - "get": { - "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.", + }, + "post": { + "summary": "Create an autofix for a code scanning alert", + "description": "Creates an autofix for a code scanning alert from the repository's default branch.\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": [ - "repos" + "code-scanning" ], - "operationId": "repos/get-custom-deployment-protection-rule", + "operationId": "code-scanning/create-autofix", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deployments/protection-rules#get-a-custom-deployment-protection-rule" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#create-an-autofix-for-a-code-scanning-alert" }, "parameters": [ { @@ -52358,85 +51529,153 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/environment-name" - }, - { - "$ref": "#/components/parameters/protection-rule-id" + "$ref": "#/components/parameters/alert-number" } ], "responses": { "200": { - "description": "Response", + "description": "OK", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/deployment-protection-rule" + "$ref": "#/components/schemas/code-scanning-autofix" }, "examples": { "default": { - "$ref": "#/components/examples/deployment-protection-rule" + "$ref": "#/components/examples/code-scanning-autofix" } } } } + }, + "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" + }, + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "deployments", - "subcategory": "protection-rules" + "category": "code-scanning", + "subcategory": "code-scanning" } - }, - "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.", + } + }, + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits": { + "post": { + "summary": "Commit an autofix for a code scanning alert", + "description": "Commits an autofix for a code scanning alert from the repository's default branch.\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": [ - "repos" + "code-scanning" ], - "operationId": "repos/disable-deployment-protection-rule", + "operationId": "code-scanning/commit-autofix", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deployments/protection-rules#disable-a-custom-protection-rule-for-an-environment" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#commit-an-autofix-for-a-code-scanning-alert" }, "parameters": [ { - "$ref": "#/components/parameters/environment-name" + "$ref": "#/components/parameters/owner" }, { "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/protection-rule-id" + "$ref": "#/components/parameters/alert-number" } ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/code-scanning-autofix-commits" + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-scanning-autofix-commits" + } + } + } + } + }, "responses": { - "204": { - "description": "Response" + "201": { + "description": "Created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/code-scanning-autofix-commits-response" + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-scanning-autofix-commits-response" + } + } + } + } + }, + "400": { + "$ref": "#/components/responses/code_scanning_bad_request" + }, + "403": { + "$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": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "deployments", - "subcategory": "protection-rules" + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/repos/{owner}/{repo}/environments/{environment_name}/secrets": { + "/repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances": { "get": { - "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.", + "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": [ - "actions" + "code-scanning" ], - "operationId": "actions/list-environment-secrets", + "operationId": "code-scanning/list-alert-instances", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/secrets#list-environment-secrets" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#list-instances-of-a-code-scanning-alert" }, "parameters": [ { @@ -52446,13 +51685,19 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/environment-name" + "$ref": "#/components/parameters/alert-number" + }, + { + "$ref": "#/components/parameters/page" }, { "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/git-ref" + }, + { + "$ref": "#/components/parameters/pr-alias" } ], "responses": { @@ -52461,56 +51706,48 @@ "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/code-scanning-alert-instance-list" } }, "examples": { "default": { - "$ref": "#/components/examples/actions-secret-paginated" + "$ref": "#/components/examples/code-scanning-alert-instances" } } } - }, - "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, - "category": "actions", - "subcategory": "secrets" + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key": { + "/repos/{owner}/{repo}/code-scanning/analyses": { "get": { - "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.", + "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": [ - "actions" + "code-scanning" ], - "operationId": "actions/get-environment-public-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/secrets#get-an-environment-public-key" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#list-code-scanning-analyses-for-a-repository" }, "parameters": [ { @@ -52520,7 +51757,53 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/environment-name" + "$ref": "#/components/parameters/tool-name" + }, + { + "$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": { @@ -52529,36 +51812,48 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-public-key" + "type": "array", + "items": { + "$ref": "#/components/schemas/code-scanning-analysis" + } }, "examples": { "default": { - "$ref": "#/components/examples/actions-public-key" + "$ref": "#/components/examples/code-scanning-analysis-items" } } } } + }, + "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, - "category": "actions", - "subcategory": "secrets" + "githubCloudOnly": false, + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}": { + "/repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}": { "get": { - "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.", + "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": [ - "actions" + "code-scanning" ], - "operationId": "actions/get-environment-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/secrets#get-an-environment-secret" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-analysis-for-a-repository" }, "parameters": [ { @@ -52568,10 +51863,13 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/environment-name" - }, - { - "$ref": "#/components/parameters/secret-name" + "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": { @@ -52580,34 +51878,57 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/actions-secret" + "$ref": "#/components/schemas/code-scanning-analysis" }, "examples": { - "default": { - "$ref": "#/components/examples/actions-secret" + "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" } } } } + }, + "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, - "category": "actions", - "subcategory": "secrets" + "githubCloudOnly": false, + "category": "code-scanning", + "subcategory": "code-scanning" } }, - "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.", + "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": [ - "actions" + "code-scanning" ], - "operationId": "actions/create-or-update-environment-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/secrets#create-or-update-an-environment-secret" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#delete-a-code-scanning-analysis-from-a-repository" }, "parameters": [ { @@ -52617,121 +51938,73 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/environment-name" - }, + "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-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 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})$" - }, - "key_id": { - "type": "string", - "description": "ID of the key you used to encrypt the secret." - } - }, - "required": [ - "encrypted_value", - "key_id" - ] - }, - "examples": { - "default": { - "value": { - "encrypted_value": "c2VjcmV0", - "key_id": "012345678912345678" - } - } - } + "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": { - "201": { - "description": "Response when creating a secret", + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/empty-object" + "$ref": "#/components/schemas/code-scanning-analysis-deletion" }, "examples": { - "default": { - "value": null + "default-response": { + "$ref": "#/components/examples/code-scanning-analysis-deletion" } } } } }, - "204": { - "description": "Response when updating a secret" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "secrets" - } - }, - "delete": { - "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": [ - "actions" - ], - "operationId": "actions/delete-environment-secret", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/secrets#delete-an-environment-secret" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" + "400": { + "$ref": "#/components/responses/bad_request" }, - { - "$ref": "#/components/parameters/repo" + "403": { + "$ref": "#/components/responses/code_scanning_forbidden_write" }, - { - "$ref": "#/components/parameters/environment-name" + "404": { + "$ref": "#/components/responses/not_found" }, - { - "$ref": "#/components/parameters/secret-name" - } - ], - "responses": { - "204": { - "description": "Default response" + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "secrets" + "githubCloudOnly": false, + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/repos/{owner}/{repo}/environments/{environment_name}/variables": { + "/repos/{owner}/{repo}/code-scanning/codeql/databases": { "get": { - "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.", + "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": [ - "actions" + "code-scanning" ], - "operationId": "actions/list-environment-variables", + "operationId": "code-scanning/list-codeql-databases", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/variables#list-environment-variables" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#list-codeql-databases-for-a-repository" }, "parameters": [ { @@ -52739,15 +52012,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/environment-name" - }, - { - "$ref": "#/components/parameters/variables-per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -52756,54 +52020,49 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "variables" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "variables": { - "type": "array", - "items": { - "$ref": "#/components/schemas/actions-variable" - } - } + "type": "array", + "items": { + "$ref": "#/components/schemas/code-scanning-codeql-database" } }, "examples": { "default": { - "$ref": "#/components/examples/actions-variables-paginated" + "$ref": "#/components/examples/code-scanning-codeql-databases" } } } - }, - "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, - "category": "actions", - "subcategory": "variables" + "previews": [], + "category": "code-scanning", + "subcategory": "code-scanning" } - }, - "post": { - "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.", + } + }, + "/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": [ - "actions" + "code-scanning" ], - "operationId": "actions/create-environment-variable", + "operationId": "code-scanning/get-codeql-database", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/variables#create-an-environment-variable" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-a-codeql-database-for-a-repository" }, "parameters": [ { @@ -52813,77 +52072,62 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/environment-name" + "name": "language", + "in": "path", + "description": "The language of the CodeQL database.", + "schema": { + "type": "string" + }, + "required": true } ], - "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": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/empty-object" + "$ref": "#/components/schemas/code-scanning-codeql-database" }, "examples": { "default": { - "value": null + "$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" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "variables" + "previews": [], + "category": "code-scanning", + "subcategory": "code-scanning" } - } - }, - "/repos/{owner}/{repo}/environments/{environment_name}/variables/{name}": { - "get": { - "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.", + }, + "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": [ - "actions" + "code-scanning" ], - "operationId": "actions/get-environment-variable", + "operationId": "code-scanning/delete-codeql-database", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/variables#get-an-environment-variable" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#delete-a-codeql-database" }, "parameters": [ { @@ -52893,46 +52137,49 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/environment-name" - }, - { - "$ref": "#/components/parameters/variable-name" + "name": "language", + "in": "path", + "description": "The language of the CodeQL database.", + "schema": { + "type": "string" + }, + "required": true } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/actions-variable" - }, - "examples": { - "default": { - "$ref": "#/components/examples/actions-variable" - } - } - } - } + "204": { + "description": "Response" + }, + "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, - "category": "actions", - "subcategory": "variables" + "previews": [], + "category": "code-scanning", + "subcategory": "code-scanning" } - }, - "patch": { - "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.", + } + }, + "/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": [ - "actions" + "code-scanning" ], - "operationId": "actions/update-environment-variable", + "operationId": "code-scanning/create-variant-analysis", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/variables#update-an-environment-variable" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#create-a-codeql-variant-analysis" }, "parameters": [ { @@ -52940,12 +52187,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/variable-name" - }, - { - "$ref": "#/components/parameters/environment-name" } ], "requestBody": { @@ -52954,22 +52195,91 @@ "application/json": { "schema": { "type": "object", + "additionalProperties": false, "properties": { - "name": { - "type": "string", - "description": "The name of the variable." + "language": { + "$ref": "#/components/schemas/code-scanning-variant-analysis-language" }, - "value": { - "type": "string", - "description": "The value of the variable." + "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" + ] + } + ] }, "examples": { - "default": { + "repositories_parameter": { + "summary": "Using the \"repositories\" field. \"query_pack\" is abridged for brevity.", "value": { - "name": "USERNAME", - "value": "octocat" + "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" + ] } } } @@ -52977,27 +52287,73 @@ } }, "responses": { - "204": { - "description": "Response" + "201": { + "description": "Variant analysis submitted for processing", + "content": { + "application/json": { + "schema": { + "$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" + } + } + } + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "description": "Unable to process variant analysis submission", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "variables" + "previews": [], + "category": "code-scanning", + "subcategory": "code-scanning" } - }, - "delete": { - "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.", + } + }, + "/repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}": { + "get": { + "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": [ - "actions" + "code-scanning" ], - "operationId": "actions/delete-environment-variable", + "operationId": "code-scanning/get-variant-analysis", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/actions/variables#delete-an-environment-variable" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-the-summary-of-a-codeql-variant-analysis" }, "parameters": [ { @@ -53007,49 +52363,98 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/variable-name" - }, - { - "$ref": "#/components/parameters/environment-name" + "name": "codeql_variant_analysis_id", + "in": "path", + "description": "The unique identifier of the variant analysis.", + "schema": { + "type": "integer" + }, + "required": true } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/code-scanning-variant-analysis" + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-scanning-variant-analysis" + } + } + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "actions", - "subcategory": "variables" + "previews": [], + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/repos/{owner}/{repo}/events": { + "/repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}": { "get": { - "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.", + "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": [ - "activity" + "code-scanning" ], - "operationId": "activity/list-repo-events", + "operationId": "code-scanning/get-variant-analysis-repo-task", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/activity/events#list-repository-events" + "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 }, { - "$ref": "#/components/parameters/per-page" + "name": "codeql_variant_analysis_id", + "in": "path", + "description": "The ID of the variant analysis.", + "schema": { + "type": "integer" + }, + "required": true }, { - "$ref": "#/components/parameters/page" + "name": "repo_owner", + "in": "path", + "description": "The account owner of the variant analysis repository. The name is not case sensitive.", + "schema": { + "type": "string" + }, + "required": true + }, + { + "name": "repo_name", + "in": "path", + "description": "The name of the variant analysis repository.", + "schema": { + "type": "string" + }, + "required": true } ], "responses": { @@ -53058,39 +52463,43 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/event" - } + "$ref": "#/components/schemas/code-scanning-variant-analysis-repo-task" }, "examples": { - "200-response": { - "$ref": "#/components/examples/repo-events-items" + "default": { + "$ref": "#/components/examples/code-scanning-variant-analysis-repo-task" } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "activity", - "subcategory": "events" + "previews": [], + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/repos/{owner}/{repo}/forks": { + "/repos/{owner}/{repo}/code-scanning/default-setup": { "get": { - "summary": "List forks", - "description": "", + "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-forks", + "operationId": "code-scanning/get-default-setup", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/forks#list-forks" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-a-code-scanning-default-setup-configuration" }, "parameters": [ { @@ -53098,28 +52507,6 @@ }, { "$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": { @@ -53128,45 +52515,43 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/minimal-repository" - } + "$ref": "#/components/schemas/code-scanning-default-setup" }, "examples": { "default": { - "$ref": "#/components/examples/minimal-repository-items-2" + "$ref": "#/components/examples/code-scanning-default-setup" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "400": { - "$ref": "#/components/responses/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, - "category": "repos", - "subcategory": "forks" + "category": "code-scanning", + "subcategory": "code-scanning" } }, - "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.", + "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-fork", + "operationId": "code-scanning/update-default-setup", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/forks#create-a-fork" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#update-a-code-scanning-default-setup-configuration" }, "parameters": [ { @@ -53177,87 +52562,86 @@ } ], "requestBody": { - "required": false, + "required": true, "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." - } - } + "$ref": "#/components/schemas/code-scanning-default-setup-update" }, "examples": { "default": { - "value": { - "organization": "octocat", - "name": "Hello-World", - "default_branch_only": true - } + "$ref": "#/components/examples/code-scanning-default-setup-update" } } } } }, "responses": { - "202": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/full-repository" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/full-repository" + "value": null } } } } }, - "400": { - "$ref": "#/components/responses/bad_request" - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "202": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/code-scanning-default-setup-update-response" + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-scanning-default-setup-update-response" + } + } + } + } }, "403": { - "$ref": "#/components/responses/forbidden" + "$ref": "#/components/responses/code_scanning_forbidden_write" }, "404": { "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/code_scanning_conflict" + }, + "422": { + "$ref": "#/components/responses/code_scanning_invalid_state" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "forks" + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/repos/{owner}/{repo}/git/blobs": { + "/repos/{owner}/{repo}/code-scanning/sarifs": { "post": { - "summary": "Create a blob", - "description": "", + "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": [ - "git" + "code-scanning" ], - "operationId": "git/create-blob", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/git/blobs#create-a-blob" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#upload-an-analysis-as-sarif-data" }, "parameters": [ { @@ -53274,25 +52658,48 @@ "schema": { "type": "object", "properties": { - "content": { - "type": "string", - "description": "The new blob's content." + "commit_sha": { + "$ref": "#/components/schemas/code-scanning-analysis-commit-sha" }, - "encoding": { + "ref": { + "$ref": "#/components/schemas/code-scanning-ref-full" + }, + "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", - "description": "The encoding used for `content`. Currently, `\"utf-8\"` and `\"base64\"` are supported.", - "default": "utf-8" + "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": [ - "content" + "commit_sha", + "ref", + "sarif" ] }, "examples": { "default": { "value": { - "content": "Content of the blob", - "encoding": "utf-8" + "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" } } } @@ -53300,75 +52707,56 @@ } }, "responses": { - "201": { + "202": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/short-blob" + "$ref": "#/components/schemas/code-scanning-sarifs-receipt" }, "examples": { "default": { - "$ref": "#/components/examples/short-blob" + "$ref": "#/components/examples/code-scanning-sarif-upload" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15", - "schema": { - "type": "string" - } - } } }, + "400": { + "description": "Bad Request if the sarif field is invalid" + }, + "403": { + "$ref": "#/components/responses/code_scanning_forbidden_write" + }, "404": { "$ref": "#/components/responses/not_found" }, - "409": { - "$ref": "#/components/responses/conflict" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "413": { + "description": "Payload Too Large if the sarif field is too large" }, - "422": { - "description": "Validation failed", - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "$ref": "#/components/schemas/validation-error" - }, - { - "$ref": "#/components/schemas/repository-rule-violation-error" - } - ] - } - } - } + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "git", - "subcategory": "blobs" + "githubCloudOnly": false, + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/repos/{owner}/{repo}/git/blobs/{file_sha}": { + "/repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}": { "get": { - "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.", + "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": [ - "git" + "code-scanning" ], - "operationId": "git/get-blob", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/git/blobs#get-a-blob" + "url": "https://docs.github.com/rest/code-scanning/code-scanning#get-information-about-a-sarif-upload" }, "parameters": [ { @@ -53378,12 +52766,13 @@ "$ref": "#/components/parameters/repo" }, { - "name": "file_sha", + "name": "sarif_id", + "description": "The SARIF ID obtained after uploading.", "in": "path", - "required": true, "schema": { "type": "string" - } + }, + "required": true } ], "responses": { @@ -53392,48 +52781,45 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/blob" + "$ref": "#/components/schemas/code-scanning-sarifs-status" }, "examples": { "default": { - "$ref": "#/components/examples/blob" + "$ref": "#/components/examples/code-scanning-sarif-upload-status" } } } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, "403": { - "$ref": "#/components/responses/forbidden" + "$ref": "#/components/responses/code_scanning_forbidden_read" }, - "409": { - "$ref": "#/components/responses/conflict" + "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, - "category": "git", - "subcategory": "blobs" + "githubCloudOnly": false, + "category": "code-scanning", + "subcategory": "code-scanning" } } }, - "/repos/{owner}/{repo}/git/commits": { - "post": { - "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. |", + "/repos/{owner}/{repo}/code-security-configuration": { + "get": { + "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": [ - "git" + "code-security" ], - "operationId": "git/create-commit", + "operationId": "code-security/get-configuration-for-repository", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/git/commits#create-a-commit" + "url": "https://docs.github.com/rest/code-security/configurations#get-the-code-security-configuration-associated-with-a-repository" }, "parameters": [ { @@ -53443,153 +52829,54 @@ "$ref": "#/components/parameters/repo" } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "message": { - "type": "string", - "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": [ - "message", - "tree" - ] - }, - "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" - } - } - } - } - } - }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/git-commit" + "$ref": "#/components/schemas/code-security-configuration-for-repository" }, "examples": { "default": { - "$ref": "#/components/examples/git-commit" + "$ref": "#/components/examples/code-security-configuration-for-repository" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/git/commits/7638417db6d59f3c431d3e1f261cc637155684cd", - "schema": { - "type": "string" - } - } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "204": { + "$ref": "#/components/responses/no_content" + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" - }, - "409": { - "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "git", - "subcategory": "commits" + "category": "code-security", + "subcategory": "configurations" } } }, - "/repos/{owner}/{repo}/git/commits/{commit_sha}": { + "/repos/{owner}/{repo}/codeowners/errors": { "get": { - "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. |", + "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": [ - "git" + "repos" ], - "operationId": "git/get-commit", + "operationId": "repos/codeowners-errors", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/git/commits#get-a-commit-object" + "url": "https://docs.github.com/rest/repos/repos#list-codeowners-errors" }, "parameters": [ { @@ -53599,7 +52886,13 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/commit-sha" + "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" + } } ], "responses": { @@ -53608,111 +52901,53 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/git-commit" + "$ref": "#/components/schemas/codeowners-errors" }, "examples": { "default": { - "$ref": "#/components/examples/git-commit-2" + "$ref": "#/components/examples/codeowners-errors" } } } } }, "404": { - "$ref": "#/components/responses/not_found" - }, - "409": { - "$ref": "#/components/responses/conflict" + "description": "Resource not found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "git", - "subcategory": "commits" + "previews": [], + "category": "repos", + "subcategory": "repos" } } }, - "/repos/{owner}/{repo}/git/matching-refs/{ref}": { + "/repos/{owner}/{repo}/codespaces": { "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]\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`.", + "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": [ - "git" + "codespaces" ], - "operationId": "git/list-matching-refs", + "operationId": "codespaces/list-in-repository-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/git/refs#list-matching-references" + "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/repo" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/git-ref-only" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/git-ref" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/git-ref-items" - } - } - } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } + "$ref": "#/components/parameters/page" }, - "409": { - "$ref": "#/components/responses/conflict" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "git", - "subcategory": "refs" - } - } - }, - "/repos/{owner}/{repo}/git/ref/{ref}": { - "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]\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": [ - "git" - ], - "operationId": "git/get-ref", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/git/refs#get-a-reference" - }, - "parameters": [ { "$ref": "#/components/parameters/owner" }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/git-ref-only" } ], "responses": { @@ -53721,42 +52956,61 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/git-ref" + "type": "object", + "required": [ + "total_count", + "codespaces" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "codespaces": { + "type": "array", + "items": { + "$ref": "#/components/schemas/codespace" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/git-ref" + "$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" - }, - "409": { - "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "git", - "subcategory": "refs" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "codespaces" } - } - }, - "/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.", + "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": [ - "git" + "codespaces" ], - "operationId": "git/create-ref", + "operationId": "codespaces/create-with-repo-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/git/refs#create-a-reference" + "url": "https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-in-a-repository" }, "parameters": [ { @@ -53772,26 +53026,65 @@ "application/json": { "schema": { "type": "object", + "nullable": true, "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." + "description": "Git ref (typically a branch name) for this codespace", + "type": "string" }, - "sha": { + "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", - "description": "The SHA1 value for this reference." + "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" } - }, - "required": [ - "ref", - "sha" - ] + } }, "examples": { "default": { "value": { - "ref": "refs/heads/featureA", - "sha": "aa218f56b14c9653891f9e74264a383fa43fefbd" + "ref": "main", + "machine": "standardLinux32gb" } } } @@ -53800,182 +53093,78 @@ }, "responses": { "201": { - "description": "Response", + "description": "Response when the codespace was successfully created", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/git-ref" + "$ref": "#/components/schemas/codespace" }, "examples": { "default": { - "$ref": "#/components/examples/git-ref" + "$ref": "#/components/examples/codespace" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/git/refs/heads/featureA", - "schema": { - "type": "string" - } - } } }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "409": { - "$ref": "#/components/responses/conflict" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "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": [ - "git" - ], - "operationId": "git/update-ref", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/git/refs#update-a-reference" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/git-ref-only" - } - ], - "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" - ] - }, - "examples": { - "default": { - "value": { - "sha": "aa218f56b14c9653891f9e74264a383fa43fefbd", - "force": true - } - } - } - } - } - }, - "responses": { - "200": { - "description": "Response", + "202": { + "description": "Response when the codespace creation partially failed but is being retried in the background", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/git-ref" + "$ref": "#/components/schemas/codespace" }, "examples": { "default": { - "$ref": "#/components/examples/git-ref" + "$ref": "#/components/examples/codespace" } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "409": { - "$ref": "#/components/responses/conflict" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "git", - "subcategory": "refs" - } - }, - "delete": { - "summary": "Delete a reference", - "description": "Deletes the provided reference.", - "tags": [ - "git" - ], - "operationId": "git/delete-ref", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/git/refs#delete-a-reference" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" + "400": { + "$ref": "#/components/responses/bad_request" }, - { - "$ref": "#/components/parameters/repo" + "401": { + "$ref": "#/components/responses/requires_authentication" }, - { - "$ref": "#/components/parameters/git-ref-only" - } - ], - "responses": { - "204": { - "description": "Response" + "403": { + "$ref": "#/components/responses/forbidden" }, - "422": { - "description": "Validation failed, an attempt was made to delete the default branch, or the endpoint has been spammed." + "404": { + "$ref": "#/components/responses/not_found" }, - "409": { - "$ref": "#/components/responses/conflict" + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "git", - "subcategory": "refs" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "codespaces" } } }, - "/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. |", + "/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": [ - "git" + "codespaces" ], - "operationId": "git/create-tag", + "operationId": "codespaces/list-devcontainers-in-repository-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/git/tags#create-a-tag-object" + "url": "https://docs.github.com/rest/codespaces/codespaces#list-devcontainer-configurations-in-a-repository-for-the-authenticated-user" }, "parameters": [ + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + }, { "$ref": "#/components/parameters/owner" }, @@ -53983,133 +53172,86 @@ "$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": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/git-tag" + "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/git-tag" + "$ref": "#/components/examples/codespaces-list-devcontainers-for-repository" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac", - "schema": { - "type": "string" - } - } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "500": { + "$ref": "#/components/responses/internal_error" }, - "409": { - "$ref": "#/components/responses/conflict" + "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, - "category": "git", - "subcategory": "tags" + "category": "codespaces", + "subcategory": "codespaces" } } }, - "/repos/{owner}/{repo}/git/tags/{tag_sha}": { + "/repos/{owner}/{repo}/codespaces/machines": { "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| `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. |", + "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": [ - "git" + "codespaces" ], - "operationId": "git/get-tag", + "operationId": "codespaces/repo-machines-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/git/tags#get-a-tag" + "url": "https://docs.github.com/rest/codespaces/machines#list-available-machine-types-for-a-repository" }, "parameters": [ { @@ -54119,12 +53261,30 @@ "$ref": "#/components/parameters/repo" }, { - "name": "tag_sha", - "in": "path", - "required": true, + "name": "location", + "description": "The location to check for available machines. Assigned by IP if not provided.", + "in": "query", + "schema": { + "type": "string", + "example": "WestUs2" + } + }, + { + "name": "client_ip", + "description": "IP for location auto-detection when proxying a request", + "in": "query", "schema": { "type": "string" } + }, + { + "name": "ref", + "description": "The branch or commit to check for prebuild availability and devcontainer restrictions.", + "in": "query", + "schema": { + "type": "string", + "example": "main" + } } ], "responses": { @@ -54133,42 +53293,66 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/git-tag" + "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/git-tag" + "$ref": "#/components/examples/codespace-machines-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" - }, - "409": { - "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "git", - "subcategory": "tags" + "category": "codespaces", + "subcategory": "machines" } } }, - "/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.", + "/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": [ - "git" + "codespaces" ], - "operationId": "git/create-tree", + "operationId": "codespaces/pre-flight-with-repo-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/git/trees#create-a-tree" + "url": "https://docs.github.com/rest/codespaces/codespaces#get-default-attributes-for-a-codespace" }, "parameters": [ { @@ -54176,140 +53360,92 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "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", + "schema": { + "type": "string", + "example": "main" + } + }, + { + "name": "client_ip", + "description": "An alternative IP for default location auto-detection, such as when proxying a request.", + "in": "query", + "schema": { + "type": "string", + "example": "1.2.3.4" + } } ], - "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": { + "responses": { + "200": { + "description": "Response when a user is able to create codespaces from the repository.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "billable_owner": { + "$ref": "#/components/schemas/simple-user" + }, + "defaults": { "type": "object", + "required": [ + "location", + "devcontainer_path" + ], "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" - ] + "location": { + "type": "string" }, - "sha": { + "devcontainer_path": { "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." - } - }, - "required": [ - "tree" - ] - }, - "examples": { - "default": { - "value": { - "base_tree": "9fb037999f264ba9a7fc6274d15fa3ae2ab98312", - "tree": [ - { - "path": "file.rb", - "mode": "100644", - "type": "blob", - "sha": "44b4fc6d56897b048c772eb4087f854f46256132" - } - ] } - } - } - } - } - }, - "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/git-tree" }, "examples": { "default": { - "$ref": "#/components/examples/git-tree" + "$ref": "#/components/examples/codespaces-default-attributes-for-a-codespace" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/trees/cd8274d15fa3ae2ab983129fb037999f264ba9a7", - "schema": { - "type": "string" - } - } } }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "404": { - "$ref": "#/components/responses/not_found" + "401": { + "$ref": "#/components/responses/requires_authentication" }, "403": { "$ref": "#/components/responses/forbidden" }, - "409": { - "$ref": "#/components/responses/conflict" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "git", - "subcategory": "trees" + "category": "codespaces", + "subcategory": "codespaces" } } }, - "/repos/{owner}/{repo}/git/trees/{tree_sha}": { + "/repos/{owner}/{repo}/codespaces/permissions_check": { "get": { - "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.", + "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": [ - "git" + "codespaces" ], - "operationId": "git/get-tree", + "operationId": "codespaces/check-permissions-for-devcontainer", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/git/trees#get-a-tree" + "url": "https://docs.github.com/rest/codespaces/codespaces#check-if-permissions-defined-by-a-devcontainer-have-been-accepted-by-the-authenticated-user" }, "parameters": [ { @@ -54319,73 +53455,77 @@ "$ref": "#/components/parameters/repo" }, { - "name": "tree_sha", - "description": "The SHA1 value or ref (branch or tag) name of the tree.", - "in": "path", + "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" - }, - "x-multi-segment": true + "type": "string", + "example": "master" + } }, { - "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.", + "name": "devcontainer_path", + "description": "Path to the devcontainer.json configuration to use for the permission check.", "in": "query", - "required": false, + "required": true, "schema": { - "type": "string" + "type": "string", + "example": ".devcontainer/example/devcontainer.json" } } ], "responses": { "200": { - "description": "Response", + "description": "Response when the permission check is successful", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/git-tree" + "$ref": "#/components/schemas/codespaces-permissions-check-for-devcontainer" }, "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/codespaces-permissions-check-for-devcontainer" } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" }, - "409": { - "$ref": "#/components/responses/conflict" + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "git", - "subcategory": "trees" + "category": "codespaces", + "subcategory": "codespaces" } } }, - "/repos/{owner}/{repo}/hooks": { + "/repos/{owner}/{repo}/codespaces/secrets": { "get": { - "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.", + "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": [ - "repos" + "codespaces" ], - "operationId": "repos/list-webhooks", + "operationId": "codespaces/list-repo-secrets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/webhooks#list-repository-webhooks" + "url": "https://docs.github.com/rest/codespaces/repository-secrets#list-repository-secrets" }, "parameters": [ { @@ -54407,14 +53547,26 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/hook" + "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/hook-items" + "$ref": "#/components/examples/repo-codespaces-secret-paginated" } } } @@ -54424,28 +53576,27 @@ "$ref": "#/components/headers/link" } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "webhooks" + "category": "codespaces", + "subcategory": "repository-secrets" } - }, - "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.", + } + }, + "/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": [ - "repos" + "codespaces" ], - "operationId": "repos/create-webhook", + "operationId": "codespaces/get-repo-public-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/webhooks#create-a-repository-webhook" + "url": "https://docs.github.com/rest/codespaces/repository-secrets#get-a-repository-public-key" }, "parameters": [ { @@ -54455,127 +53606,42 @@ "$ref": "#/components/parameters/repo" } ], - "requestBody": { - "required": false, - "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.", - "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": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/hook" + "$ref": "#/components/schemas/codespaces-public-key" }, "examples": { "default": { - "$ref": "#/components/examples/hook" + "$ref": "#/components/examples/codespaces-public-key" } } } - }, - "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, - "category": "repos", - "subcategory": "webhooks" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "repository-secrets" } } }, - "/repos/{owner}/{repo}/hooks/{hook_id}": { + "/repos/{owner}/{repo}/codespaces/secrets/{secret_name}": { "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).\"", + "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": [ - "repos" + "codespaces" ], - "operationId": "repos/get-webhook", + "operationId": "codespaces/get-repo-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/webhooks#get-a-repository-webhook" + "url": "https://docs.github.com/rest/codespaces/repository-secrets#get-a-repository-secret" }, "parameters": [ { @@ -54585,7 +53651,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/hook-id" + "$ref": "#/components/parameters/secret-name" } ], "responses": { @@ -54594,37 +53660,34 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/hook" + "$ref": "#/components/schemas/repo-codespaces-secret" }, "examples": { "default": { - "$ref": "#/components/examples/hook" + "$ref": "#/components/examples/repo-codespaces-secret" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "webhooks" + "category": "codespaces", + "subcategory": "repository-secrets" } }, - "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/webhooks/repo-config#update-a-webhook-configuration-for-a-repository).\"", + "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": [ - "repos" + "codespaces" ], - "operationId": "repos/update-webhook", + "operationId": "codespaces/create-or-update-repo-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/webhooks#update-a-repository-webhook" + "url": "https://docs.github.com/rest/codespaces/repository-secrets#create-or-update-a-repository-secret" }, "parameters": [ { @@ -54634,7 +53697,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/hook-id" + "$ref": "#/components/parameters/secret-name" } ], "requestBody": { @@ -54644,47 +53707,22 @@ "schema": { "type": "object", "properties": { - "config": { - "$ref": "#/components/schemas/webhook-config" - }, - "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" - } - }, - "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" - } + "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})$" }, - "active": { - "type": "boolean", - "description": "Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications.", - "default": true + "key_id": { + "type": "string", + "description": "ID of the key you used to encrypt the secret." } } }, "examples": { "default": { "value": { - "active": true, - "add_events": [ - "pull_request" - ] + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678" } } } @@ -54692,45 +53730,42 @@ } }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "Response when creating a secret", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/hook" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/hook" + "value": null } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "404": { - "$ref": "#/components/responses/not_found" + "204": { + "description": "Response when updating a secret" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "webhooks" + "category": "codespaces", + "subcategory": "repository-secrets" } }, "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.", + "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": [ - "repos" + "codespaces" ], - "operationId": "repos/delete-webhook", + "operationId": "codespaces/delete-repo-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/webhooks#delete-a-repository-webhook" + "url": "https://docs.github.com/rest/codespaces/repository-secrets#delete-a-repository-secret" }, "parameters": [ { @@ -54740,36 +53775,33 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/hook-id" + "$ref": "#/components/parameters/secret-name" } ], "responses": { "204": { "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "webhooks" + "category": "codespaces", + "subcategory": "repository-secrets" } } }, - "/repos/{owner}/{repo}/hooks/{hook_id}/config": { + "/repos/{owner}/{repo}/collaborators": { "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/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.", + "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": [ "repos" ], - "operationId": "repos/get-webhook-config-for-repo", + "operationId": "repos/list-collaborators", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/webhooks#get-a-webhook-configuration-for-a-repository" + "url": "https://docs.github.com/rest/collaborators/collaborators#list-repository-collaborators" }, "parameters": [ { @@ -54779,7 +53811,41 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/hook-id" + "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" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -54788,34 +53854,84 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-config" + "type": "array", + "items": { + "$ref": "#/components/schemas/collaborator" + } }, "examples": { "default": { - "$ref": "#/components/examples/webhook-config" + "$ref": "#/components/examples/collaborator-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "webhooks" + "category": "collaborators", + "subcategory": "collaborators" + } + } + }, + "/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.\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/check-collaborator", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/collaborators/collaborators#check-if-a-user-is-a-repository-collaborator" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "Response if user is a collaborator" + }, + "404": { + "description": "Not Found if user is not a collaborator" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "collaborators", + "subcategory": "collaborators" } }, - "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/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.", + "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/update-webhook-config-for-repo", + "operationId": "repos/add-collaborator", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/webhooks#update-a-webhook-configuration-for-a-repository" + "url": "https://docs.github.com/rest/collaborators/collaborators#add-a-repository-collaborator" }, "parameters": [ { @@ -54825,7 +53941,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/hook-id" + "$ref": "#/components/parameters/username" } ], "requestBody": { @@ -54834,28 +53950,19 @@ "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" + "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": { - "default": { - "summary": "Example of updating content type and URL", + "new-invitation-is-created": { + "summary": "Add a collaborator with triage permissions", "value": { - "content_type": "json", - "url": "https://example.com/webhook" + "permission": "triage" } } } @@ -54863,41 +53970,56 @@ } }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "Response when a new invitation is created", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-config" + "$ref": "#/components/schemas/repository-invitation" }, "examples": { - "default": { - "$ref": "#/components/examples/webhook-config" + "new-invitation-is-created": { + "$ref": "#/components/examples/repository-invitation-response-when-a-new-invitation-is-created" } } } } + }, + "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": "repos", - "subcategory": "webhooks" + "category": "collaborators", + "subcategory": "collaborators" } - } - }, - "/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": "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/list-webhook-deliveries", + "operationId": "repos/remove-collaborator", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/webhooks#list-deliveries-for-a-repository-webhook" + "url": "https://docs.github.com/rest/collaborators/collaborators#remove-a-repository-collaborator" }, "parameters": [ { @@ -54907,63 +54029,39 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/hook-id" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/cursor" - }, - { - "$ref": "#/components/parameters/webhook-delivery-status" + "$ref": "#/components/parameters/username" } ], "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": "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, - "category": "repos", - "subcategory": "webhooks" + "category": "collaborators", + "subcategory": "collaborators" } } }, - "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}": { + "/repos/{owner}/{repo}/collaborators/{username}/permission": { "get": { - "summary": "Get a delivery for a repository webhook", - "description": "Returns a delivery for a webhook configured in a repository.", + "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-webhook-delivery", + "operationId": "repos/get-collaborator-permission-level", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/webhooks#get-a-delivery-for-a-repository-webhook" + "url": "https://docs.github.com/rest/collaborators/collaborators#get-repository-permissions-for-a-user" }, "parameters": [ { @@ -54973,54 +54071,48 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/hook-id" - }, - { - "$ref": "#/components/parameters/delivery-id" + "$ref": "#/components/parameters/username" } ], "responses": { "200": { - "description": "Response", + "description": "if user has admin permissions", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/hook-delivery" + "$ref": "#/components/schemas/repository-collaborator-permission" }, "examples": { - "default": { - "$ref": "#/components/examples/hook-delivery" + "response-if-user-has-admin-permissions": { + "$ref": "#/components/examples/repository-collaborator-permission-response-if-user-has-admin-permissions" } } } } }, - "400": { - "$ref": "#/components/responses/bad_request" - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "webhooks" + "category": "collaborators", + "subcategory": "collaborators" } } }, - "/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.", + "/repos/{owner}/{repo}/comments": { + "get": { + "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/redeliver-webhook-delivery", + "operationId": "repos/list-commit-comments-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/webhooks#redeliver-a-delivery-for-a-repository-webhook" + "url": "https://docs.github.com/rest/commits/comments#list-commit-comments-for-a-repository" }, "parameters": [ { @@ -55030,42 +54122,56 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/hook-id" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/delivery-id" + "$ref": "#/components/parameters/page" } ], "responses": { - "202": { - "$ref": "#/components/responses/accepted" - }, - "400": { - "$ref": "#/components/responses/bad_request" - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "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" + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "webhooks" + "category": "commits", + "subcategory": "comments" } } }, - "/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.", + "/repos/{owner}/{repo}/comments/{comment_id}": { + "get": { + "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/ping-webhook", + "operationId": "repos/get-commit-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/webhooks#ping-a-repository-webhook" + "url": "https://docs.github.com/rest/commits/comments#get-a-commit-comment" }, "parameters": [ { @@ -55075,12 +54181,24 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/hook-id" + "$ref": "#/components/parameters/comment-id" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/commit-comment" + }, + "examples": { + "default": { + "$ref": "#/components/examples/commit-comment" + } + } + } + } }, "404": { "$ref": "#/components/responses/not_found" @@ -55089,22 +54207,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "webhooks" + "category": "commits", + "subcategory": "comments" } - } - }, - "/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`", + }, + "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/test-push-webhook", + "operationId": "repos/update-commit-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/webhooks#test-the-push-repository-webhook" + "url": "https://docs.github.com/rest/commits/comments#update-a-commit-comment" }, "parameters": [ { @@ -55114,85 +54230,72 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/hook-id" + "$ref": "#/components/parameters/comment-id" } ], - "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The contents of the comment" + } + }, + "required": [ + "body" + ] + }, + "examples": { + "default": { + "value": { + "body": "Nice change" + } + } + } + } } }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "webhooks" - } - } - }, - "/repos/{owner}/{repo}/immutable-releases": { - "get": { - "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": [ - "repos" - ], - "operationId": "repos/check-immutable-releases", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#check-if-immutable-releases-are-enabled-for-a-repository" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - } - ], "responses": { "200": { - "description": "Response if immutable releases are enabled", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/check-immutable-releases" + "$ref": "#/components/schemas/commit-comment" }, "examples": { "default": { - "value": { - "enabled": true, - "enforced_by_owner": false - } + "$ref": "#/components/examples/commit-comment-2" } } } } }, "404": { - "description": "Not Found if immutable releases are not enabled for the repository" + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "repos" + "category": "commits", + "subcategory": "comments" } }, - "put": { - "summary": "Enable immutable releases", - "description": "Enables immutable releases for a repository. The authenticated user must have admin access to the repository.", + "delete": { + "summary": "Delete a commit comment", + "description": "", "tags": [ "repos" ], - "operationId": "repos/enable-immutable-releases", + "operationId": "repos/delete-commit-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#enable-immutable-releases" + "url": "https://docs.github.com/rest/commits/comments#delete-a-commit-comment" }, "parameters": [ { @@ -55200,69 +54303,38 @@ }, { "$ref": "#/components/parameters/repo" - } - ], - "responses": { - "204": { - "$ref": "#/components/responses/no_content" - }, - "409": { - "$ref": "#/components/responses/conflict" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "repos" - } - }, - "delete": { - "summary": "Disable immutable releases", - "description": "Disables immutable releases for a repository. The authenticated user must have admin access to the repository.", - "tags": [ - "repos" - ], - "operationId": "repos/disable-immutable-releases", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#disable-immutable-releases" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/repo" + "$ref": "#/components/parameters/comment-id" } ], "responses": { "204": { - "$ref": "#/components/responses/no_content" + "description": "Response" }, - "409": { - "$ref": "#/components/responses/conflict" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "repos" + "category": "commits", + "subcategory": "comments" } } }, - "/repos/{owner}/{repo}/import": { + "/repos/{owner}/{repo}/comments/{comment_id}/reactions": { "get": { - "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.", + "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": [ - "migrations" + "reactions" ], - "operationId": "migrations/get-import-status", + "operationId": "reactions/list-for-commit-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/migrations/source-imports#get-an-import-status" + "url": "https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-commit-comment" }, "parameters": [ { @@ -55270,6 +54342,34 @@ }, { "$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": { @@ -55278,43 +54378,45 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/import" + "type": "array", + "items": { + "$ref": "#/components/schemas/reaction" + } }, "examples": { "default": { - "$ref": "#/components/examples/import" + "$ref": "#/components/examples/reaction-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, "404": { "$ref": "#/components/responses/not_found" - }, - "503": { - "$ref": "#/components/responses/porter_maintenance" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "migrations", - "subcategory": "source-imports", - "deprecationDate": "2023-10-12", - "removalDate": "2024-04-12" - }, - "deprecated": true + "category": "reactions", + "subcategory": "reactions" + } }, - "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).", + "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": [ - "migrations" + "reactions" ], - "operationId": "migrations/start-import", + "operationId": "reactions/create-for-commit-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/migrations/source-imports#start-an-import" + "url": "https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-commit-comment" }, "parameters": [ { @@ -55322,6 +54424,9 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/comment-id" } ], "requestBody": { @@ -55331,44 +54436,29 @@ "schema": { "type": "object", "properties": { - "vcs_url": { - "type": "string", - "description": "The URL of the originating repository." - }, - "vcs": { + "content": { "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.", + "description": "The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the commit comment.", "enum": [ - "subversion", - "git", - "mercurial", - "tfvc" + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" ] - }, - "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" + "content" ] }, "examples": { "default": { "value": { - "vcs": "subversion", - "vcs_url": "http://svn.mycompany.com/svn/myproject", - "vcs_username": "octocat", - "vcs_password": "secret" + "content": "heart" } } } @@ -55376,171 +54466,59 @@ } }, "responses": { - "201": { - "description": "Response", + "200": { + "description": "Reaction exists", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/import" + "$ref": "#/components/schemas/reaction" }, "examples": { "default": { - "$ref": "#/components/examples/import-2" + "$ref": "#/components/examples/reaction" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/spraints/socm/import", - "schema": { - "type": "string" - } - } } }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "503": { - "$ref": "#/components/responses/porter_maintenance" - } - }, - "x-github": { - "githubCloudOnly": false, - "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": [ - "migrations" - ], - "operationId": "migrations/update-import", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/migrations/source-imports#update-an-import" - }, - "parameters": [ - { - "$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": { - "200": { - "description": "Response", + "201": { + "description": "Reaction created", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/import" + "$ref": "#/components/schemas/reaction" }, "examples": { - "example-1": { - "$ref": "#/components/examples/import-example-1" - }, - "example-2": { - "$ref": "#/components/examples/import-example-2" - }, - "example-3": { - "$ref": "#/components/examples/import-response" + "default": { + "$ref": "#/components/examples/reaction" } } } } }, - "503": { - "$ref": "#/components/responses/porter_maintenance" + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "migrations", - "subcategory": "source-imports", - "deprecationDate": "2023-10-12", - "removalDate": "2024-04-12" - }, - "deprecated": true - }, + "category": "reactions", + "subcategory": "reactions" + } + } + }, + "/repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}": { "delete": { - "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).", + "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": [ - "migrations" + "reactions" ], - "operationId": "migrations/cancel-import", + "operationId": "reactions/delete-for-commit-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/migrations/source-imports#cancel-an-import" + "url": "https://docs.github.com/rest/reactions/reactions#delete-a-commit-comment-reaction" }, "parameters": [ { @@ -55548,38 +54526,38 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/comment-id" + }, + { + "$ref": "#/components/parameters/reaction-id" } ], "responses": { "204": { "description": "Response" - }, - "503": { - "$ref": "#/components/responses/porter_maintenance" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "migrations", - "subcategory": "source-imports", - "deprecationDate": "2023-10-12", - "removalDate": "2024-04-12" - }, - "deprecated": true + "category": "reactions", + "subcategory": "reactions" + } } }, - "/repos/{owner}/{repo}/import/authors": { + "/repos/{owner}/{repo}/commits": { "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/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).", + "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": [ - "migrations" + "repos" ], - "operationId": "migrations/get-commit-authors", + "operationId": "repos/list-commits", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/migrations/source-imports#get-commit-authors" + "url": "https://docs.github.com/rest/commits/commits#list-commits" }, "parameters": [ { @@ -55589,7 +54567,66 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/since-user" + "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" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -55600,46 +54637,54 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/porter-author" + "$ref": "#/components/schemas/commit" } }, "examples": { "default": { - "$ref": "#/components/examples/porter-author-items" + "$ref": "#/components/examples/commit-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, "404": { "$ref": "#/components/responses/not_found" }, - "503": { - "$ref": "#/components/responses/porter_maintenance" + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "migrations", - "subcategory": "source-imports", - "deprecationDate": "2023-10-12", - "removalDate": "2024-04-12" - }, - "deprecated": true + "category": "commits", + "subcategory": "commits" + } } }, - "/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).", + "/repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head": { + "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://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": [ - "migrations" + "repos" ], - "operationId": "migrations/map-commit-author", + "operationId": "repos/list-branches-for-head-commit", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/migrations/source-imports#map-a-commit-author" + "url": "https://docs.github.com/rest/commits/commits#list-branches-for-head-commit" }, "parameters": [ { @@ -55649,54 +54694,23 @@ "$ref": "#/components/parameters/repo" }, { - "name": "author_id", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/commit-sha" } ], - "requestBody": { - "required": false, - "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 - }, - "examples": { - "default": { - "value": { - "email": "hubot@github.com", - "name": "Hubot the Robot" - } - } - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/porter-author" + "type": "array", + "items": { + "$ref": "#/components/schemas/branch-short" + } }, "examples": { "default": { - "$ref": "#/components/examples/porter-author" + "$ref": "#/components/examples/branch-short-items" } } } @@ -55705,35 +54719,29 @@ "422": { "$ref": "#/components/responses/validation_failed" }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "503": { - "$ref": "#/components/responses/porter_maintenance" + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "migrations", - "subcategory": "source-imports", - "deprecationDate": "2023-10-12", - "removalDate": "2024-04-12" - }, - "deprecated": true + "category": "commits", + "subcategory": "commits" + } } }, - "/repos/{owner}/{repo}/import/large_files": { + "/repos/{owner}/{repo}/commits/{commit_sha}/comments": { "get": { - "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).", + "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": [ - "migrations" + "repos" ], - "operationId": "migrations/get-large-files", + "operationId": "repos/list-comments-for-commit", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/migrations/source-imports#get-large-files" + "url": "https://docs.github.com/rest/commits/comments#list-commit-comments" }, "parameters": [ { @@ -55741,6 +54749,15 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/commit-sha" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -55751,43 +54768,40 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/porter-large-file" + "$ref": "#/components/schemas/commit-comment" } }, "examples": { "default": { - "$ref": "#/components/examples/porter-large-file-items" + "$ref": "#/components/examples/commit-comment-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "503": { - "$ref": "#/components/responses/porter_maintenance" } }, "x-github": { "githubCloudOnly": false, "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).", + "category": "commits", + "subcategory": "comments" + } + }, + "post": { + "summary": "Create a commit comment", + "description": "Create a comment for a commit using its `:commit_sha`.\n\nAccess to commit comments can be controlled by organization owners. For more information, see \"[Managing commit comments for your organization](https://docs.github.com/organizations/managing-organization-settings/managing-commit-comments-for-your-organization)\".\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": [ - "migrations" + "repos" ], - "operationId": "migrations/set-lfs-preference", + "operationId": "repos/create-commit-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference" + "url": "https://docs.github.com/rest/commits/comments#create-a-commit-comment" }, "parameters": [ { @@ -55795,6 +54809,9 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/commit-sha" } ], "requestBody": { @@ -55804,23 +54821,34 @@ "schema": { "type": "object", "properties": { - "use_lfs": { + "body": { "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" - ] + "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": [ - "use_lfs" + "body" ] }, "examples": { "default": { "value": { - "use_lfs": "opt_in" + "body": "Great stuff", + "path": "file1.txt", + "position": 4, + "line": 1 } } } @@ -55828,50 +54856,56 @@ } }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/import" + "$ref": "#/components/schemas/commit-comment" }, "examples": { "default": { - "$ref": "#/components/examples/import" + "$ref": "#/components/examples/commit-comment" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/comments/1", + "schema": { + "type": "string" + } + } } }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "422": { "$ref": "#/components/responses/validation_failed" - }, - "503": { - "$ref": "#/components/responses/porter_maintenance" } }, "x-github": { + "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "migrations", - "subcategory": "source-imports", - "deprecationDate": "2023-10-12", - "removalDate": "2024-04-12" - }, - "deprecated": true + "category": "commits", + "subcategory": "comments" + } } }, - "/repos/{owner}/{repo}/installation": { + "/repos/{owner}/{repo}/commits/{commit_sha}/pulls": { "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 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": [ - "apps" + "repos" ], - "operationId": "apps/get-repo-installation", + "operationId": "repos/list-pull-requests-associated-with-commit", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/apps/apps#get-a-repository-installation-for-the-authenticated-app" + "url": "https://docs.github.com/rest/commits/commits#list-pull-requests-associated-with-a-commit" }, "parameters": [ { @@ -55879,6 +54913,15 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/commit-sha" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -55887,42 +54930,47 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/installation" + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-simple" + } }, "examples": { "default": { - "$ref": "#/components/examples/installation" + "$ref": "#/components/examples/pull-request-simple-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "301": { - "$ref": "#/components/responses/moved_permanently" - }, - "404": { - "$ref": "#/components/responses/not_found" + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "apps", - "subcategory": "apps" + "enabledForGitHubApps": true, + "category": "commits", + "subcategory": "commits" } } }, - "/repos/{owner}/{repo}/interaction-limits": { + "/repos/{owner}/{repo}/commits/{ref}": { "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": "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": [ - "interactions" + "repos" ], - "operationId": "interactions/get-restrictions-for-repo", + "operationId": "repos/get-commit", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/interactions/repos#get-interaction-restrictions-for-a-repository" + "url": "https://docs.github.com/rest/commits/commits#get-a-commit" }, "parameters": [ { @@ -55930,6 +54978,15 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/commit-ref" } ], "responses": { @@ -55938,144 +54995,81 @@ "content": { "application/json": { "schema": { - "anyOf": [ - { - "$ref": "#/components/schemas/interaction-limit-response" - }, - { - "type": "object", - "properties": {}, - "additionalProperties": false - } - ] + "$ref": "#/components/schemas/commit" }, "examples": { "default": { - "$ref": "#/components/examples/interaction-limit-2" + "$ref": "#/components/examples/commit" } } - } - } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "interactions", - "subcategory": "repos" - } - }, - "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.", - "tags": [ - "interactions" - ], - "operationId": "interactions/set-restrictions-for-repo", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/interactions/repos#set-interaction-restrictions-for-a-repository" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$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" + "application/vnd.github.diff": { + "schema": { + "type": "string" + }, + "examples": { + "default": { + "$ref": "#/components/examples/diff-media-type" } } - } - } - } - }, - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { + }, + "application/vnd.github.patch": { "schema": { - "$ref": "#/components/schemas/interaction-limit-response" + "type": "string" }, "examples": { "default": { - "$ref": "#/components/examples/interaction-limit-2" + "$ref": "#/components/examples/patch-media-type" + } + } + }, + "application/vnd.github.sha": { + "schema": { + "type": "string" + }, + "examples": { + "default": { + "value": "ac3282a2725be3b1d4979169a7a311c89066af1c" } } } } }, - "409": { - "description": "Response" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "interactions", - "subcategory": "repos" - } - }, - "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.", - "tags": [ - "interactions" - ], - "operationId": "interactions/remove-restrictions-for-repo", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/interactions/repos#remove-interaction-restrictions-for-a-repository" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" + "422": { + "$ref": "#/components/responses/validation_failed" }, - { - "$ref": "#/components/parameters/repo" - } - ], - "responses": { - "204": { - "description": "Response" + "404": { + "$ref": "#/components/responses/not_found" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" }, "409": { - "description": "Response" + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "interactions", - "subcategory": "repos" + "category": "commits", + "subcategory": "commits" } } }, - "/repos/{owner}/{repo}/invitations": { + "/repos/{owner}/{repo}/commits/{ref}/check-runs": { "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 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/list-invitations", + "operationId": "checks/list-for-ref", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/collaborators/invitations#list-repository-invitations" + "url": "https://docs.github.com/rest/checks/runs#list-check-runs-for-a-git-reference" }, "parameters": [ { @@ -56084,11 +55078,42 @@ { "$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": { @@ -56097,14 +55122,26 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/repository-invitation" + "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/repository-invitation-items" + "$ref": "#/components/examples/check-run-paginated" } } } @@ -56119,22 +55156,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "collaborators", - "subcategory": "invitations" + "category": "checks", + "subcategory": "runs" } } }, - "/repos/{owner}/{repo}/invitations/{invitation_id}": { - "patch": { - "summary": "Update a repository invitation", - "description": "", + "/repos/{owner}/{repo}/commits/{ref}/check-suites": { + "get": { + "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/update-invitation", + "operationId": "checks/list-suites-for-ref", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/collaborators/invitations#update-a-repository-invitation" + "url": "https://docs.github.com/rest/checks/suites#list-check-suites-for-a-git-reference" }, "parameters": [ { @@ -56144,74 +55181,84 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/invitation-id" + "$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" } ], - "requestBody": { - "required": false, - "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" - ] - } - } - }, - "examples": { - "default": { - "summary": "Example request body", - "value": { - "permissions": "write" - } - } - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repository-invitation" + "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/repository-invitation" + "$ref": "#/components/examples/check-suite-paginated" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "collaborators", - "subcategory": "invitations" + "category": "checks", + "subcategory": "suites" } - }, - "delete": { - "summary": "Delete a repository invitation", - "description": "", + } + }, + "/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/delete-invitation", + "operationId": "repos/get-combined-status-for-ref", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/collaborators/invitations#delete-a-repository-invitation" + "url": "https://docs.github.com/rest/commits/statuses#get-the-combined-status-for-a-specific-reference" }, "parameters": [ { @@ -56221,33 +55268,54 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/invitation-id" + "$ref": "#/components/parameters/commit-ref" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/combined-commit-status" + }, + "examples": { + "default": { + "$ref": "#/components/examples/combined-commit-status" + } + } + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "collaborators", - "subcategory": "invitations" + "category": "commits", + "subcategory": "statuses" } } }, - "/repos/{owner}/{repo}/issues": { + "/repos/{owner}/{repo}/commits/{ref}/statuses": { "get": { - "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`.", + "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": [ - "issues" + "repos" ], - "operationId": "issues/list-for-repo", + "operationId": "repos/list-commit-statuses-for-ref", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/issues#list-repository-issues" + "url": "https://docs.github.com/rest/commits/statuses#list-commit-statuses-for-a-reference" }, "parameters": [ { @@ -56257,88 +55325,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.", - "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": "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.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "created", - "updated", - "comments" - ], - "default": "created" - } - }, - { - "$ref": "#/components/parameters/direction" - }, - { - "$ref": "#/components/parameters/since" + "$ref": "#/components/parameters/commit-ref" }, { "$ref": "#/components/parameters/per-page" @@ -56355,12 +55342,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/issue" + "$ref": "#/components/schemas/status" } }, "examples": { "default": { - "$ref": "#/components/examples/issue-items" + "$ref": "#/components/examples/status-items" } } } @@ -56373,31 +55360,27 @@ }, "301": { "$ref": "#/components/responses/moved_permanently" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "issues" + "category": "commits", + "subcategory": "statuses" } - }, - "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`.", + } + }, + "/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": [ - "issues" + "repos" ], - "operationId": "issues/create", + "operationId": "repos/get-community-profile-metrics", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/issues#create-an-issue" + "url": "https://docs.github.com/rest/metrics/community#get-community-profile-metrics" }, "parameters": [ { @@ -56407,193 +55390,42 @@ "$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": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue" + "$ref": "#/components/schemas/community-profile" }, "examples": { "default": { - "$ref": "#/components/examples/issue" + "$ref": "#/components/examples/community-profile" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347", - "schema": { - "type": "string" - } - } } - }, - "400": { - "$ref": "#/components/responses/bad_request" - }, - "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, - "category": "issues", - "subcategory": "issues" - }, - "x-github-breaking-changes": [ - { - "changeset": "remove_singular_assignee_from_issues_and_pull_requests", - "patch": { - "requestBody": { - "content": { - "application/json": { - "schema": { - "properties": { - "assignee": null - } - } - } - } - } - }, - "version": "2026-03-10" - } - ] + "category": "metrics", + "subcategory": "community" + } } }, - "/repos/{owner}/{repo}/issues/comments": { + "/repos/{owner}/{repo}/compare/{basehead}": { "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`.", + "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": [ - "issues" + "repos" ], - "operationId": "issues/list-comments-for-repo", + "operationId": "repos/compare-commits", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/comments#list-issue-comments-for-a-repository" + "url": "https://docs.github.com/rest/commits/commits#compare-two-commits" }, "parameters": [ { @@ -56603,29 +55435,20 @@ "$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/page" }, { "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/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": { @@ -56634,50 +55457,65 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/issue-comment" + "$ref": "#/components/schemas/commit-comparison" + }, + "examples": { + "default": { + "$ref": "#/components/examples/commit-comparison" } + } + }, + "application/vnd.github.diff": { + "schema": { + "type": "string" }, "examples": { "default": { - "$ref": "#/components/examples/issue-comment-items" + "$ref": "#/components/examples/diff-media-type" + } + } + }, + "application/vnd.github.patch": { + "schema": { + "type": "string" + }, + "examples": { + "default": { + "$ref": "#/components/examples/patch-media-type" } } - } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" } } }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, "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": "issues", - "subcategory": "comments" + "category": "commits", + "subcategory": "commits" } } }, - "/repos/{owner}/{repo}/issues/comments/{comment_id}": { + "/repos/{owner}/{repo}/contents/{path}": { "get": { - "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`.", + "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": [ - "issues" + "repos" ], - "operationId": "issues/get-comment", + "operationId": "repos/get-content", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/comments#get-an-issue-comment" + "url": "https://docs.github.com/rest/repos/contents#get-repository-content" }, "parameters": [ { @@ -56687,20 +55525,107 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/comment-id" + "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" + } } ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "examples": { + "response-if-content-is-a-file-github-object": { + "summary": "Content is a file using the object media type" + }, + "response-if-content-is-a-directory-github-object": { + "summary": "Content is a directory using the object media type" + }, + "response-if-content-is-a-file": { + "summary": "Content is a file" + }, + "response-if-content-is-a-directory": { + "summary": "Content is a directory" + }, + "response-if-content-is-a-symlink": { + "summary": "Content is a symlink" + }, + "response-if-content-is-a-submodule": { + "summary": "Content is a submodule" + } + } + } + } + }, "responses": { "200": { "description": "Response", "content": { + "application/vnd.github.object": { + "schema": { + "$ref": "#/components/schemas/content-tree" + }, + "examples": { + "response-if-content-is-a-file-github-object": { + "$ref": "#/components/examples/content-file-response-if-content-is-a-file" + }, + "response-if-content-is-a-directory-github-object": { + "$ref": "#/components/examples/content-file-response-if-content-is-a-directory-object" + } + } + }, "application/json": { "schema": { - "$ref": "#/components/schemas/issue-comment" + "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": { - "default": { - "$ref": "#/components/examples/issue-comment" + "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" } } } @@ -56708,25 +55633,43 @@ }, "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, - "category": "issues", - "subcategory": "comments" - } + "category": "repos", + "subcategory": "contents" + }, + "x-github-breaking-changes": [ + { + "changeset": "return_submodule_type_for_submodules_in_directory_lists", + "patch": { + "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.\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." + }, + "version": "2026-03-10" + } + ] }, - "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`.", + "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": [ - "issues" + "repos" ], - "operationId": "issues/update-comment", + "operationId": "repos/create-or-update-file-contents", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/comments#update-an-issue-comment" + "url": "https://docs.github.com/rest/repos/contents#create-or-update-file-contents" }, "parameters": [ { @@ -56736,7 +55679,14 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/comment-id" + "name": "path", + "description": "path parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "x-multi-segment": true } ], "requestBody": { @@ -56746,19 +55696,94 @@ "schema": { "type": "object", "properties": { - "body": { + "message": { "type": "string", - "description": "The contents of the comment." + "description": "The commit message." + }, + "content": { + "type": "string", + "description": "The new file content, using Base64 encoding." + }, + "sha": { + "type": "string", + "description": "**Required if you are updating a file**. The blob SHA of the file being replaced." + }, + "branch": { + "type": "string", + "description": "The branch name. Default: the repository’s default branch." + }, + "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": [ - "body" + "message", + "content" ] }, "examples": { - "default": { + "example-for-creating-a-file": { + "summary": "Example for creating a file", "value": { - "body": "Me too" + "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" } } } @@ -56771,37 +55796,72 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue-comment" + "$ref": "#/components/schemas/file-commit" }, "examples": { - "default": { - "$ref": "#/components/examples/issue-comment" + "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/file-commit" + }, + "examples": { + "example-for-creating-a-file": { + "$ref": "#/components/examples/file-commit-example-for-creating-a-file" } } } } }, + "404": { + "$ref": "#/components/responses/not_found" + }, "422": { "$ref": "#/components/responses/validation_failed" + }, + "409": { + "description": "Conflict", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/basic-error" + }, + { + "$ref": "#/components/schemas/repository-rule-violation-error" + } + ] + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "comments" + "category": "repos", + "subcategory": "contents" } }, "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.", + "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": [ - "issues" + "repos" ], - "operationId": "issues/delete-comment", + "operationId": "repos/delete-file", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/comments#delete-an-issue-comment" + "url": "https://docs.github.com/rest/repos/contents#delete-a-file" }, "parameters": [ { @@ -56811,33 +55871,132 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/comment-id" + "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": { - "204": { - "description": "Response" + "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": "issues", - "subcategory": "comments" + "category": "repos", + "subcategory": "contents" } } }, - "/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`.", + "/repos/{owner}/{repo}/contributors": { + "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 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": [ - "issues" + "repos" ], - "operationId": "issues/pin-comment", + "operationId": "repos/list-contributors", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/comments#pin-an-issue-comment" + "url": "https://docs.github.com/rest/repos/repos#list-repository-contributors" }, "parameters": [ { @@ -56847,58 +56006,74 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/comment-id" + "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": { - "$ref": "#/components/schemas/issue-comment" + "type": "array", + "items": { + "$ref": "#/components/schemas/contributor" + } }, "examples": { - "default": { - "$ref": "#/components/examples/issue-comment-pinned" + "response-if-repository-contains-content": { + "$ref": "#/components/examples/contributor-items-response-if-repository-contains-content" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "204": { + "description": "Response if repository is empty" }, "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": true, - "category": "issues", - "subcategory": "comments" + "category": "repos", + "subcategory": "repos" } - }, - "delete": { - "summary": "Unpin an issue comment", - "description": "You can use the REST API to unpin comments on issues.", + } + }, + "/repos/{owner}/{repo}/copilot/cloud-agent/configuration": { + "get": { + "summary": "Get Copilot cloud agent configuration for a repository", + "description": "> [!NOTE]\n> This endpoint is in public preview and is subject to change.\n\nGets the Copilot cloud agent configuration for a repository, including MCP server\nconfiguration, enabled review tools, Actions workflow approval settings, and firewall\nconfiguration.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "issues" + "copilot" ], - "operationId": "issues/unpin-comment", + "operationId": "copilot/get-copilot-cloud-agent-configuration", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/comments#unpin-an-issue-comment" + "url": "https://docs.github.com/rest/copilot/copilot-cloud-agent-management#get-copilot-cloud-agent-configuration-for-a-repository" }, "parameters": [ { @@ -56906,14 +56081,155 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/comment-id" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "mcp_configuration": { + "description": "The user-supplied MCP server configuration for the repository, as a free-form JSON object. This will be set to `null` if no configuration has been set.\n\nThe shape of a valid MCP configuration may evolve over time, so this property is intentionally not strictly typed. Clients should not assume a fixed schema.", + "nullable": true, + "type": "object", + "additionalProperties": true + }, + "enabled_tools": { + "type": "object", + "description": "The enabled review tools for Copilot cloud agent.", + "properties": { + "codeql": { + "type": "boolean", + "description": "Whether the CodeQL tool is enabled for the Copilot cloud agent." + }, + "copilot_code_review": { + "type": "boolean", + "description": "Whether the Copilot code review tool is enabled for the Copilot cloud agent." + }, + "secret_scanning": { + "type": "boolean", + "description": "Whether the secret scanning tool is enabled for the Copilot cloud agent." + }, + "dependency_vulnerability_checks": { + "type": "boolean", + "description": "Whether the dependency vulnerability checks tool is enabled for the Copilot cloud agent." + } + }, + "required": [ + "codeql", + "copilot_code_review", + "secret_scanning", + "dependency_vulnerability_checks" + ] + }, + "require_actions_workflow_approval": { + "type": "boolean", + "description": "Whether Actions workflow approval is required for Copilot cloud agent pull requests." + }, + "is_firewall_enabled": { + "type": "boolean", + "description": "Whether the firewall is enabled." + }, + "is_firewall_recommended_allowlist_enabled": { + "type": "boolean", + "description": "Whether the firewall recommended allowlist is enabled." + }, + "custom_allowlist": { + "type": "array", + "description": "A list of custom allowlist entries, as hosts or URLs, that the firewall will allow the Copilot cloud agent to access.", + "items": { + "type": "string", + "description": "A custom allowlist entry, as a host or URL, that the firewall will allow the Copilot cloud agent to access." + } + }, + "is_automations_enabled": { + "type": "boolean", + "description": "Whether automations are enabled in this repository. When true, users can create automations that automatically run agents on a schedule or in response to events like new issues or updated pull requests." + }, + "require_write_access_for_automation_triggers": { + "type": "boolean", + "description": "Whether write access is required for automation triggers. When true, automations will only run if the user triggering the event has write access to the repository. When false, users can create automations that listen for events triggered by users without write access." + } + }, + "required": [ + "mcp_configuration", + "enabled_tools", + "require_actions_workflow_approval", + "is_firewall_enabled", + "is_firewall_recommended_allowlist_enabled", + "custom_allowlist", + "is_automations_enabled", + "require_write_access_for_automation_triggers" + ] + }, + "examples": { + "default": { + "summary": "Default configuration", + "value": { + "mcp_configuration": null, + "enabled_tools": { + "codeql": true, + "copilot_code_review": true, + "secret_scanning": true, + "dependency_vulnerability_checks": true + }, + "require_actions_workflow_approval": true, + "is_firewall_enabled": true, + "is_firewall_recommended_allowlist_enabled": true, + "custom_allowlist": [], + "is_automations_enabled": true, + "require_write_access_for_automation_triggers": true + } + }, + "configured": { + "summary": "Configuration with an MCP server and a custom firewall allowlist", + "value": { + "mcp_configuration": { + "mcpServers": { + "sentry": { + "type": "local", + "command": "npx", + "args": [ + "@sentry/mcp-server@latest", + "--host=$SENTRY_HOST" + ], + "env": { + "SENTRY_HOST": "https://octo-org.sentry.io", + "SENTRY_ACCESS_TOKEN": "$COPILOT_MCP_SENTRY_ACCESS_TOKEN" + }, + "tools": [ + "search_issues", + "get_issue_details" + ] + } + } + }, + "enabled_tools": { + "codeql": true, + "copilot_code_review": true, + "secret_scanning": true, + "dependency_vulnerability_checks": true + }, + "require_actions_workflow_approval": false, + "is_firewall_enabled": true, + "is_firewall_recommended_allowlist_enabled": true, + "custom_allowlist": [ + "sentry.io", + "https://api.example.com" + ], + "is_automations_enabled": true, + "require_write_access_for_automation_triggers": false + } + } + } + } + } + }, + "500": { + "$ref": "#/components/responses/internal_error" }, "401": { "$ref": "#/components/responses/requires_authentication" @@ -56923,33 +56239,27 @@ }, "404": { "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "comments" + "category": "copilot", + "subcategory": "copilot-cloud-agent-management" } } }, - "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": { + "/repos/{owner}/{repo}/dependabot/alerts": { "get": { - "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).", + "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": [ - "reactions" + "dependabot" ], - "operationId": "reactions/list-for-issue-comment", + "operationId": "dependabot/list-alerts-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reactions/reactions#list-reactions-for-an-issue-comment" + "url": "https://docs.github.com/rest/dependabot/alerts#list-dependabot-alerts-for-a-repository" }, "parameters": [ { @@ -56959,32 +56269,52 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/comment-id" + "$ref": "#/components/parameters/dependabot-alert-comma-separated-classifications" }, { - "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/dependabot-alert-comma-separated-states" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/dependabot-alert-comma-separated-severities" }, { - "$ref": "#/components/parameters/page" + "$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-comma-separated-assignees" + }, + { + "$ref": "#/components/parameters/dependabot-alert-scope" + }, + { + "$ref": "#/components/parameters/dependabot-alert-relationship" + }, + { + "$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": { @@ -56995,22 +56325,87 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/reaction" + "$ref": "#/components/schemas/dependabot-alert" } }, "examples": { "default": { - "$ref": "#/components/examples/reaction-items" + "$ref": "#/components/examples/dependabot-alerts-for-repository" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" + } + }, + "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_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" } @@ -57018,20 +56413,21 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "reactions", - "subcategory": "reactions" + "previews": [], + "category": "dependabot", + "subcategory": "alerts" } }, - "post": { - "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.", + "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": [ - "reactions" + "dependabot" ], - "operationId": "reactions/create-for-issue-comment", + "operationId": "dependabot/update-alert", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reactions/reactions#create-reaction-for-an-issue-comment" + "url": "https://docs.github.com/rest/dependabot/alerts#update-a-dependabot-alert" }, "parameters": [ { @@ -57041,7 +56437,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/comment-id" + "$ref": "#/components/parameters/dependabot-alert-number" } ], "requestBody": { @@ -57051,29 +56447,77 @@ "schema": { "type": "object", "properties": { - "content": { + "state": { "type": "string", - "description": "The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the issue comment.", + "description": "The state of the Dependabot alert.\nA `dismissed_reason` must be provided when setting the state to `dismissed`.", "enum": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" + "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 + }, + "assignees": { + "type": "array", + "description": "Usernames to assign to this Dependabot Alert.\nPass one or more user logins to _replace_ the set of assignees on this alert.\nSend an empty array (`[]`) to clear all assignees from the alert.\nTo assign an AI agent, include the bot login (for example, `copilot-swe-agent[bot]`).", + "items": { + "type": "string" + } + }, + "agent_assignment": { + "type": "object", + "description": "Parameters for AI agent assignment. Only used when an agent bot login is\nincluded in `assignees`. Ignored when no agent is being assigned.", + "properties": { + "custom_instructions": { + "type": "string", + "description": "Custom instructions for the agent." + }, + "custom_agent": { + "type": "string", + "description": "A custom agent identifier." + }, + "model": { + "type": "string", + "description": "The model to use for the agent." + } + }, + "additionalProperties": false } }, - "required": [ - "content" - ] + "anyOf": [ + { + "required": [ + "state" + ] + }, + { + "required": [ + "assignees" + ] + } + ], + "additionalProperties": false }, "examples": { "default": { "value": { - "content": "heart" + "state": "dismissed", + "dismissed_reason": "tolerable_risk", + "dismissed_comment": "This alert is accurate but we use a sanitizer." } } } @@ -57082,97 +56526,56 @@ }, "responses": { "200": { - "description": "Reaction exists", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/reaction" + "$ref": "#/components/schemas/dependabot-alert" }, "examples": { "default": { - "$ref": "#/components/examples/reaction" + "$ref": "#/components/examples/dependabot-alert-dismissed" } } } } }, - "201": { - "description": "Reaction created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/reaction" - }, - "examples": { - "default": { - "$ref": "#/components/examples/reaction" - } - } - } - } + "400": { + "$ref": "#/components/responses/bad_request" }, - "422": { - "$ref": "#/components/responses/validation_failed" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "reactions", - "subcategory": "reactions" - } - } - }, - "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}": { - "delete": { - "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": [ - "reactions" - ], - "operationId": "reactions/delete-for-issue-comment", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/reactions/reactions#delete-an-issue-comment-reaction" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "$ref": "#/components/parameters/repo" + "404": { + "$ref": "#/components/responses/not_found" }, - { - "$ref": "#/components/parameters/comment-id" + "409": { + "$ref": "#/components/responses/conflict" }, - { - "$ref": "#/components/parameters/reaction-id" - } - ], - "responses": { - "204": { - "description": "Response" + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "reactions", - "subcategory": "reactions" + "previews": [], + "category": "dependabot", + "subcategory": "alerts" } } }, - "/repos/{owner}/{repo}/issues/events": { + "/repos/{owner}/{repo}/dependabot/secrets": { "get": { - "summary": "List issue events for a repository", - "description": "Lists events for a repository.", + "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": [ - "issues" + "dependabot" ], - "operationId": "issues/list-events-for-repo", + "operationId": "dependabot/list-repo-secrets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/events#list-issue-events-for-a-repository" + "url": "https://docs.github.com/rest/dependabot/secrets#list-repository-secrets" }, "parameters": [ { @@ -57194,14 +56597,26 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/issue-event" + "type": "object", + "required": [ + "total_count", + "secrets" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "secrets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/dependabot-secret" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/issue-event-items" + "$ref": "#/components/examples/dependabot-secret-paginated" } } } @@ -57211,30 +56626,27 @@ "$ref": "#/components/headers/link" } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "events" + "category": "dependabot", + "subcategory": "secrets" } } }, - "/repos/{owner}/{repo}/issues/events/{event_id}": { + "/repos/{owner}/{repo}/dependabot/secrets/public-key": { "get": { - "summary": "Get an issue event", - "description": "Gets a single event by the event id.", + "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": [ - "issues" + "dependabot" ], - "operationId": "issues/get-event", + "operationId": "dependabot/get-repo-public-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/events#get-an-issue-event" + "url": "https://docs.github.com/rest/dependabot/secrets#get-a-repository-public-key" }, "parameters": [ { @@ -57242,14 +56654,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "name": "event_id", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } } ], "responses": { @@ -57258,45 +56662,36 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue-event" + "$ref": "#/components/schemas/dependabot-public-key" }, "examples": { "default": { - "$ref": "#/components/examples/issue-event" + "$ref": "#/components/examples/dependabot-public-key" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" - }, - "403": { - "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "events" + "category": "dependabot", + "subcategory": "secrets" } } }, - "/repos/{owner}/{repo}/issues/{issue_number}": { + "/repos/{owner}/{repo}/dependabot/secrets/{secret_name}": { "get": { - "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`.", + "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": [ - "issues" + "dependabot" ], - "operationId": "issues/get", + "operationId": "dependabot/get-repo-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/issues#get-an-issue" + "url": "https://docs.github.com/rest/dependabot/secrets#get-a-repository-secret" }, "parameters": [ { @@ -57306,7 +56701,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/secret-name" } ], "responses": { @@ -57315,55 +56710,34 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue" + "$ref": "#/components/schemas/dependabot-secret" }, "examples": { "default": { - "summary": "Issue", - "value": { - "$ref": "#/components/examples/issue" - } - }, - "pinned_comment": { - "summary": "Issue with pinned comment", - "value": { - "$ref": "#/components/examples/issue-with-pinned-comment" - } + "$ref": "#/components/examples/dependabot-secret" } } } } - }, - "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, - "category": "issues", - "subcategory": "issues" + "category": "dependabot", + "subcategory": "secrets" } }, - "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`.", + "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\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "issues" + "dependabot" ], - "operationId": "issues/update", + "operationId": "dependabot/create-or-update-repo-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/issues#update-an-issue" + "url": "https://docs.github.com/rest/dependabot/secrets#create-or-update-a-repository-secret" }, "parameters": [ { @@ -57373,157 +56747,32 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/secret-name" } ], "requestBody": { - "required": false, + "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": { - "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": { + "encrypted_value": { "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" - } - }, - "issue_field_values": { - "type": "array", - "description": "An array of issue field values to set on this issue. Each field value must include the field ID and the value to set. Only users with push access can set field values for issues", - "items": { - "type": "object", - "properties": { - "field_id": { - "type": "integer", - "description": "The ID of the issue field to set" - }, - "value": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - } - ], - "description": "The value to set for the field" - } - }, - "required": [ - "field_id", - "value" - ], - "additionalProperties": false - } + "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})$" }, - "type": { + "key_id": { "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" + "description": "ID of the key you used to encrypt the secret." } } }, "examples": { "default": { "value": { - "title": "Found a bug", - "body": "I'm having a problem with this.", - "assignees": [ - "octocat" - ], - "milestone": 1, - "state": "open", - "labels": [ - "bug" - ] + "encrypted_value": "c2VjcmV0", + "key_id": "012345678912345678" } } } @@ -57531,78 +56780,78 @@ } }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "Response when creating a secret", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/issue" + "value": null } } } } }, - "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" + "204": { + "description": "Response when updating a secret" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "issues" + "category": "dependabot", + "subcategory": "secrets" + } + }, + "delete": { + "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": [ + "dependabot" + ], + "operationId": "dependabot/delete-repo-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/dependabot/secrets#delete-a-repository-secret" }, - "x-github-breaking-changes": [ + "parameters": [ { - "changeset": "remove_singular_assignee_from_issues_and_pull_requests", - "patch": { - "requestBody": { - "content": { - "application/json": { - "schema": { - "properties": { - "assignee": null - } - } - } - } - } - }, - "version": "2026-03-10" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/secret-name" } - ] + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "dependabot", + "subcategory": "secrets" + } } }, - "/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}/dependency-graph/compare/{basehead}": { + "get": { + "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": [ - "issues" + "dependency-graph" ], - "operationId": "issues/add-assignees", + "operationId": "dependency-graph/diff-range", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/assignees#add-assignees-to-an-issue" + "url": "https://docs.github.com/rest/dependency-graph/dependency-review#get-a-diff-of-the-dependencies-between-commits" }, "parameters": [ { @@ -57612,72 +56861,73 @@ "$ref": "#/components/parameters/repo" }, { - "$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" - ] - } - } - } + "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" } + }, + { + "$ref": "#/components/parameters/manifest-path" } - }, + ], "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue" + "$ref": "#/components/schemas/dependency-graph-diff" }, "examples": { "default": { - "$ref": "#/components/examples/issue" + "$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" + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "assignees" + "category": "dependency-graph", + "subcategory": "dependency-review" } - }, - "delete": { - "summary": "Remove assignees from an issue", - "description": "Removes one or more assignees from an issue.", + } + }, + "/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": [ - "issues" + "dependency-graph" ], - "operationId": "issues/remove-assignees", + "operationId": "dependency-graph/export-sbom", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/assignees#remove-assignees-from-an-issue" + "url": "https://docs.github.com/rest/dependency-graph/sboms#export-a-software-bill-of-materials-sbom-for-a-repository" }, "parameters": [ { @@ -57685,75 +56935,54 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/issue-number" } ], - "requestBody": { - "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" - } - } - } - }, - "examples": { - "default": { - "value": { - "assignees": [ - "hubot", - "other_user" - ] - } - } - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue" + "$ref": "#/components/schemas/dependency-graph-spdx-sbom" }, "examples": { "default": { - "$ref": "#/components/examples/issue" + "$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": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "assignees" + "category": "dependency-graph", + "subcategory": "sboms" } } }, - "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}": { + "/repos/{owner}/{repo}/dependency-graph/sbom/fetch-report/{sbom_uuid}": { "get": { - "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.", + "summary": "Fetch a software bill of materials (SBOM) for a repository.", + "description": "Fetches a previously generated software bill of materials (SBOM) for a repository.\nWhen the SBOM is ready, the response is a 302 redirect to a temporary download URL for the SBOM in SPDX JSON format.\nThe generated SBOM report may be retained for up to one week from the original request.\nThe temporary download URL returned by this endpoint expires separately, and its expiry is set when the fetch request is made.", "tags": [ - "issues" + "dependency-graph" ], - "operationId": "issues/check-user-can-be-assigned-to-issue", + "operationId": "dependency-graph/fetch-sbom-report", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/assignees#check-if-a-user-can-be-assigned-to-a-issue" + "url": "https://docs.github.com/rest/dependency-graph/sboms#fetch-a-software-bill-of-materials-sbom-for-a-repository" }, "parameters": [ { @@ -57763,51 +56992,52 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" - }, - { - "name": "assignee", + "name": "sbom_uuid", "in": "path", "required": true, + "description": "The unique identifier of the SBOM export.", "schema": { "type": "string" } } ], "responses": { - "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": { - "$ref": "#/components/schemas/basic-error" - } + "302": { + "description": "Redirects to a temporary download URL for the completed SBOM.", + "headers": { + "Location": { + "$ref": "#/components/headers/location" } } + }, + "202": { + "description": "SBOM is still being processed, no content is returned." + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "assignees" + "category": "dependency-graph", + "subcategory": "sboms" } } }, - "/repos/{owner}/{repo}/issues/{issue_number}/comments": { + "/repos/{owner}/{repo}/dependency-graph/sbom/generate-report": { "get": { - "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`.", + "summary": "Request generation of a software bill of materials (SBOM) for a repository.", + "description": "Triggers a job to generate a software bill of materials (SBOM) for a repository in SPDX JSON format.", "tags": [ - "issues" + "dependency-graph" ], - "operationId": "issues/list-comments", + "operationId": "dependency-graph/generate-sbom-report", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/comments#list-issue-comments" + "url": "https://docs.github.com/rest/dependency-graph/sboms#request-generation-of-a-software-bill-of-materials-sbom-for-a-repository" }, "parameters": [ { @@ -57815,68 +57045,55 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/issue-number" - }, - { - "$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-comment" + "type": "object", + "properties": { + "sbom_url": { + "type": "string", + "description": "URL to poll for the SBOM export result." + } } }, "examples": { "default": { - "$ref": "#/components/examples/issue-comment-items" + "$ref": "#/components/examples/dependency-graph-generate-sbom-report-response" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, "404": { "$ref": "#/components/responses/not_found" }, - "410": { - "$ref": "#/components/responses/gone" + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "comments" + "category": "dependency-graph", + "subcategory": "sboms" } - }, + } + }, + "/repos/{owner}/{repo}/dependency-graph/snapshots": { "post": { - "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`.", + "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": [ - "issues" + "dependency-graph" ], - "operationId": "issues/create-comment", + "operationId": "dependency-graph/create-repository-snapshot", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/comments#create-an-issue-comment" + "url": "https://docs.github.com/rest/dependency-graph/dependency-submission#create-a-snapshot-of-dependencies-for-a-repository" }, "parameters": [ { @@ -57884,9 +57101,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/issue-number" } ], "requestBody": { @@ -57894,22 +57108,11 @@ "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "body": { - "type": "string", - "description": "The contents of the comment." - } - }, - "required": [ - "body" - ] + "$ref": "#/components/schemas/snapshot" }, "examples": { - "default": { - "value": { - "body": "Me too" - } + "example-of-a-dependency-submission": { + "$ref": "#/components/examples/dependency-graph-create-snapshot-request" } } } @@ -57921,57 +57124,60 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue-comment" + "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/issue-comment" + "example-of-a-dependency-submission": { + "$ref": "#/components/examples/dependency-graph-create-snapshot-success" } } } - }, - "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, - "category": "issues", - "subcategory": "comments" + "category": "dependency-graph", + "subcategory": "dependency-submission" } } }, - "/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by": { + "/repos/{owner}/{repo}/deployments": { "get": { - "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`.", + "summary": "List deployments", + "description": "Simple filtering of deployments is available via query parameters:", "tags": [ - "issues" + "repos" ], - "operationId": "issues/list-dependencies-blocked-by", + "operationId": "repos/list-deployments", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/issue-dependencies#list-dependencies-an-issue-is-blocked-by" + "url": "https://docs.github.com/rest/deployments/deployments#list-deployments" }, "parameters": [ { @@ -57981,7 +57187,45 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "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" @@ -57998,12 +57242,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/issue" + "$ref": "#/components/schemas/deployment" } }, "examples": { "default": { - "$ref": "#/components/examples/issue-items" + "$ref": "#/components/examples/deployment-items" } } } @@ -58013,34 +57257,25 @@ "$ref": "#/components/headers/link" } } - }, - "301": { - "$ref": "#/components/responses/moved_permanently" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "issue-dependencies" + "category": "deployments", + "subcategory": "deployments" } }, "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`.", + "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": [ - "issues" + "repos" ], - "operationId": "issues/add-blocked-by-dependency", + "operationId": "repos/create-deployment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/issue-dependencies#add-a-dependency-an-issue-is-blocked-by" + "url": "https://docs.github.com/rest/deployments/deployments#create-a-deployment" }, "parameters": [ { @@ -58048,9 +57283,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/issue-number" } ], "requestBody": { @@ -58060,19 +57292,85 @@ "schema": { "type": "object", "properties": { - "issue_id": { - "type": "integer", - "description": "The id of the issue that blocks the current issue" + "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/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" + } + }, + "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`", + "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": [ - "issue_id" + "ref" ] }, "examples": { - "default": { + "simple-example": { + "summary": "Simple example", "value": { - "issue_id": 1 + "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" + ] } } } @@ -58085,60 +57383,64 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue" + "$ref": "#/components/schemas/deployment" }, "examples": { - "default": { - "$ref": "#/components/examples/issue" + "simple-example": { + "$ref": "#/components/examples/deployment-simple-example" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/issues/1/dependencies/blocked_by", + } + }, + "202": { + "description": "Merged branch response", + "content": { + "application/json": { "schema": { - "type": "string" + "type": "object", + "properties": { + "message": { + "type": "string" + } + } + }, + "examples": { + "merged-branch-response": { + "value": { + "message": "Auto-merged master into topic-branch on deployment." + } + } } } } }, - "301": { - "$ref": "#/components/responses/moved_permanently" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "410": { - "$ref": "#/components/responses/gone" + "409": { + "description": "Conflict when there is a merge conflict or the commit's status checks failed" }, "422": { "$ref": "#/components/responses/validation_failed" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "issue-dependencies" + "category": "deployments", + "subcategory": "deployments" } } }, - "/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}": { - "delete": { - "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`.", + "/repos/{owner}/{repo}/deployments/{deployment_id}": { + "get": { + "summary": "Get a deployment", + "description": "", "tags": [ - "issues" + "repos" ], - "operationId": "issues/remove-dependency-blocked-by", + "operationId": "repos/get-deployment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/issue-dependencies#remove-dependency-an-issue-is-blocked-by" + "url": "https://docs.github.com/rest/deployments/deployments#get-a-deployment" }, "parameters": [ { @@ -58148,16 +57450,7 @@ "$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" - } + "$ref": "#/components/parameters/deployment-id" } ], "responses": { @@ -58166,55 +57459,37 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue" + "$ref": "#/components/schemas/deployment" }, "examples": { "default": { - "$ref": "#/components/examples/issue" + "$ref": "#/components/examples/deployment" } } } } }, - "301": { - "$ref": "#/components/responses/moved_permanently" - }, - "400": { - "$ref": "#/components/responses/bad_request" - }, - "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": true, - "category": "issues", - "subcategory": "issue-dependencies" + "category": "deployments", + "subcategory": "deployments" } - } - }, - "/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking": { - "get": { - "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`.", + }, + "delete": { + "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": [ - "issues" + "repos" ], - "operationId": "issues/list-dependencies-blocking", + "operationId": "repos/delete-deployment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/issue-dependencies#list-dependencies-an-issue-is-blocking" + "url": "https://docs.github.com/rest/deployments/deployments#delete-a-deployment" }, "parameters": [ { @@ -58224,68 +57499,39 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/deployment-id" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/issue" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/issue-items" - } - } - } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } - }, - "301": { - "$ref": "#/components/responses/moved_permanently" + "204": { + "description": "Response" }, "404": { "$ref": "#/components/responses/not_found" }, - "410": { - "$ref": "#/components/responses/gone" + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "issue-dependencies" + "category": "deployments", + "subcategory": "deployments" } } }, - "/repos/{owner}/{repo}/issues/{issue_number}/events": { + "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses": { "get": { - "summary": "List issue events", - "description": "Lists all events for an issue.", + "summary": "List deployment statuses", + "description": "Users with pull access can view deployment statuses for a deployment:", "tags": [ - "issues" + "repos" ], - "operationId": "issues/list-events", + "operationId": "repos/list-deployment-statuses", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/events#list-issue-events" + "url": "https://docs.github.com/rest/deployments/statuses#list-deployment-statuses" }, "parameters": [ { @@ -58295,7 +57541,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/deployment-id" }, { "$ref": "#/components/parameters/per-page" @@ -58312,12 +57558,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/issue-event-for-issue" + "$ref": "#/components/schemas/deployment-status" } }, "examples": { "default": { - "$ref": "#/components/examples/issue-event-for-issue-items" + "$ref": "#/components/examples/deployment-status-items" } } } @@ -58328,29 +57574,27 @@ } } }, - "410": { - "$ref": "#/components/responses/gone" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "events" + "category": "deployments", + "subcategory": "statuses" } - } - }, - "/repos/{owner}/{repo}/issues/{issue_number}/issue-field-values": { - "get": { - "summary": "List issue field values for an issue", - "description": "Lists all issue field values for an issue.", + }, + "post": { + "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": [ - "issues" + "repos" ], - "operationId": "issues/list-issue-field-values-for-issue", + "operationId": "repos/create-deployment-status", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/issue-field-values#list-issue-field-values-for-an-issue" + "url": "https://docs.github.com/rest/deployments/statuses#create-a-deployment-status" }, "parameters": [ { @@ -58360,68 +57604,122 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/deployment-id" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "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" + ] + }, + "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.\n\n> [!NOTE]\n> 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: `\"\"`", + "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`. 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": [ + "state" + ] + }, + "examples": { + "default": { + "value": { + "environment": "production", + "state": "success", + "log_url": "https://example.com/deployment/42/output", + "description": "Deployment finished successfully." + } + } + } + } + } + }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/issue-field-value" - } + "$ref": "#/components/schemas/deployment-status" }, "examples": { "default": { - "$ref": "#/components/examples/issue-field-value-items" + "$ref": "#/components/examples/deployment-status" } } } }, "headers": { - "Link": { - "$ref": "#/components/headers/link" + "Location": { + "example": "https://api.github.com/repos/octocat/example/deployments/42/statuses/1", + "schema": { + "type": "string" + } } } }, - "301": { - "$ref": "#/components/responses/moved_permanently" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "issue-field-values" + "category": "deployments", + "subcategory": "statuses" } } }, - "/repos/{owner}/{repo}/issues/{issue_number}/labels": { + "/repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}": { "get": { - "summary": "List labels for an issue", - "description": "Lists all labels for an issue.", + "summary": "Get a deployment status", + "description": "Users with pull access can view a deployment status for a deployment:", "tags": [ - "issues" + "repos" ], - "operationId": "issues/list-labels-on-issue", + "operationId": "repos/get-deployment-status", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/labels#list-labels-for-an-issue" + "url": "https://docs.github.com/rest/deployments/statuses#get-a-deployment-status" }, "parameters": [ { @@ -58431,13 +57729,15 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/deployment-id" }, { - "$ref": "#/components/parameters/page" + "name": "status_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { @@ -58446,51 +57746,39 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/label" - } + "$ref": "#/components/schemas/deployment-status" }, "examples": { "default": { - "$ref": "#/components/examples/label-items" + "$ref": "#/components/examples/deployment-status" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "301": { - "$ref": "#/components/responses/moved_permanently" - }, "404": { "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "labels" + "category": "deployments", + "subcategory": "statuses" } - }, + } + }, + "/repos/{owner}/{repo}/dispatches": { "post": { - "summary": "Add labels to an issue", - "description": "Adds labels to an issue.", + "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": [ - "issues" + "repos" ], - "operationId": "issues/add-labels", + "operationId": "repos/create-dispatch-event", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/labels#add-labels-to-an-issue" + "url": "https://docs.github.com/rest/repos/repos#create-a-repository-dispatch-event" }, "parameters": [ { @@ -58498,59 +57786,40 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/issue-number" } ], "requestBody": { - "required": false, + "required": true, "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 also pass an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. To replace all of the labels for an issue, use \"[Set labels for an issue](https://docs.github.com/rest/issues/labels#set-labels-for-an-issue).\"", - "items": { - "type": "string" - } - } - } - }, - { - "type": "array", - "items": { - "type": "string" - } + "type": "object", + "required": [ + "event_type" + ], + "properties": { + "event_type": { + "type": "string", + "description": "A custom webhook event name. Must be 100 characters or fewer.", + "minLength": 1, + "maxLength": 100 }, - { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ] - } + "client_payload": { + "type": "object", + "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": { - "labels": [ - "bug", - "enhancement" - ] + "event_type": "on-demand-test", + "client_payload": { + "unit": false, + "integration": true + } } } } @@ -58558,33 +57827,12 @@ } }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/label" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/label-items" - } - } - } - } - }, - "301": { - "$ref": "#/components/responses/moved_permanently" + "204": { + "description": "Response" }, "404": { "$ref": "#/components/responses/not_found" }, - "410": { - "$ref": "#/components/responses/gone" - }, "422": { "$ref": "#/components/responses/validation_failed" } @@ -58592,20 +57840,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "labels" + "category": "repos", + "subcategory": "repos" } - }, - "put": { - "summary": "Set labels for an issue", - "description": "Removes any previous labels and sets the new labels for an issue.", + } + }, + "/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": [ - "issues" + "repos" ], - "operationId": "issues/set-labels", + "operationId": "repos/get-all-environments", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/labels#set-labels-for-an-issue" + "url": "https://docs.github.com/rest/deployments/environments#list-environments" }, "parameters": [ { @@ -58615,182 +57865,61 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$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 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" - } + "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" } } - }, - { - "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", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/label" } }, "examples": { "default": { - "$ref": "#/components/examples/label-items" + "$ref": "#/components/examples/environments" } } } } - }, - "301": { - "$ref": "#/components/responses/moved_permanently" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "labels" - } - }, - "delete": { - "summary": "Remove all labels from an issue", - "description": "Removes all labels from an issue.", - "tags": [ - "issues" - ], - "operationId": "issues/remove-all-labels", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/labels#remove-all-labels-from-an-issue" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/issue-number" - } - ], - "responses": { - "204": { - "description": "Response" - }, - "301": { - "$ref": "#/components/responses/moved_permanently" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "labels" + "category": "deployments", + "subcategory": "environments" } } }, - "/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}/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": [ - "issues" + "repos" ], - "operationId": "issues/remove-label", + "operationId": "repos/get-environment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/labels#remove-a-label-from-an-issue" + "url": "https://docs.github.com/rest/deployments/environments#get-an-environment" }, "parameters": [ { @@ -58800,15 +57929,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" - }, - { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/environment-name" } ], "responses": { @@ -58817,48 +57938,34 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/label" - } + "$ref": "#/components/schemas/environment" }, "examples": { "default": { - "$ref": "#/components/examples/label-items-2" + "$ref": "#/components/examples/environment" } } } } - }, - "301": { - "$ref": "#/components/responses/moved_permanently" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "labels" + "category": "deployments", + "subcategory": "environments" } - } - }, - "/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).\"", + "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": [ - "issues" + "repos" ], - "operationId": "issues/lock", + "operationId": "repos/create-or-update-environment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/issues#lock-an-issue" + "url": "https://docs.github.com/rest/deployments/environments#create-or-update-an-environment" }, "parameters": [ { @@ -58868,7 +57975,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/environment-name" } ], "requestBody": { @@ -58879,23 +57986,55 @@ "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" - ] + "wait_timer": { + "$ref": "#/components/schemas/wait-timer" + }, + "prevent_self_review": { + "$ref": "#/components/schemas/prevent-self-review" + }, + "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-settings" } - } + }, + "additionalProperties": false }, "examples": { "default": { - "summary": "Example of locking an issue as off-topic", "value": { - "lock_reason": "off-topic" + "wait_timer": 30, + "prevent_self_review": false, + "reviewers": [ + { + "type": "User", + "id": 1 + }, + { + "type": "Team", + "id": 1 + } + ], + "deployment_branch_policy": { + "protected_branches": false, + "custom_branch_policies": true + } } } } @@ -58903,39 +58042,49 @@ } }, "responses": { - "204": { - "description": "Response" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "410": { - "$ref": "#/components/responses/gone" - }, - "404": { - "$ref": "#/components/responses/not_found" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/environment" + }, + "examples": { + "default": { + "$ref": "#/components/examples/environment" + } + } + } + } }, "422": { - "$ref": "#/components/responses/validation_failed" + "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, - "category": "issues", - "subcategory": "issues" + "category": "deployments", + "subcategory": "environments" } }, "delete": { - "summary": "Unlock an issue", - "description": "Users with push access can unlock an issue's conversation.", + "summary": "Delete an environment", + "description": "OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", "tags": [ - "issues" + "repos" ], - "operationId": "issues/unlock", + "operationId": "repos/delete-an-environment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/issues#unlock-an-issue" + "url": "https://docs.github.com/rest/deployments/environments#delete-an-environment" }, "parameters": [ { @@ -58945,96 +58094,33 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/environment-name" } ], "responses": { "204": { - "description": "Response" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "issues" - } - } - }, - "/repos/{owner}/{repo}/issues/{issue_number}/parent": { - "get": { - "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": [ - "issues" - ], - "operationId": "issues/get-parent", - "externalDocs": { - "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/sub-issues#get-parent-issue" - }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/issue-number" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$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" + "description": "Default response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "sub-issues" + "category": "deployments", + "subcategory": "environments" } } }, - "/repos/{owner}/{repo}/issues/{issue_number}/reactions": { + "/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies": { "get": { - "summary": "List reactions for an issue", - "description": "List the reactions to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue).", + "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": [ - "reactions" + "repos" ], - "operationId": "reactions/list-for-issue", + "operationId": "repos/list-deployment-branch-policies", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reactions/reactions#list-reactions-for-an-issue" + "url": "https://docs.github.com/rest/deployments/branch-policies#list-deployment-branch-policies" }, "parameters": [ { @@ -59044,26 +58130,7 @@ "$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/environment-name" }, { "$ref": "#/components/parameters/per-page" @@ -59078,48 +58145,51 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/reaction" - } + "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": { "default": { - "$ref": "#/components/examples/reaction-items" + "$ref": "#/components/examples/deployment-branch-policies-list" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "reactions", - "subcategory": "reactions" + "category": "deployments", + "subcategory": "branch-policies" } }, "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.", + "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": [ - "reactions" + "repos" ], - "operationId": "reactions/create-for-issue", + "operationId": "repos/create-deployment-branch-policy", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reactions/reactions#create-reaction-for-an-issue" + "url": "https://docs.github.com/rest/deployments/branch-policies#create-a-deployment-branch-policy" }, "parameters": [ { @@ -59129,7 +58199,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/environment-name" } ], "requestBody": { @@ -59137,31 +58207,27 @@ "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" - ] + "$ref": "#/components/schemas/deployment-branch-policy-name-pattern-with-type" }, "examples": { - "default": { + "example-wildcard": { + "summary": "Example of a wildcard name pattern", "value": { - "content": "heart" + "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" } } } @@ -59174,54 +58240,48 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/reaction" + "$ref": "#/components/schemas/deployment-branch-policy" }, "examples": { - "default": { - "$ref": "#/components/examples/reaction" + "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" } } } } }, - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/reaction" - }, - "examples": { - "default": { - "$ref": "#/components/examples/reaction" - } - } - } - } + "404": { + "description": "Not Found or `deployment_branch_policy.custom_branch_policies` property for the environment is set to false" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "303": { + "description": "Response if the same branch name pattern already exists" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "reactions", - "subcategory": "reactions" + "category": "deployments", + "subcategory": "branch-policies" } } }, - "/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).", + "/repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}": { + "get": { + "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": [ - "reactions" + "repos" ], - "operationId": "reactions/delete-for-issue", + "operationId": "repos/get-deployment-branch-policy", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reactions/reactions#delete-an-issue-reaction" + "url": "https://docs.github.com/rest/deployments/branch-policies#get-a-deployment-branch-policy" }, "parameters": [ { @@ -59231,36 +58291,46 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/environment-name" }, { - "$ref": "#/components/parameters/reaction-id" + "$ref": "#/components/parameters/branch-policy-id" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/deployment-branch-policy" + }, + "examples": { + "default": { + "$ref": "#/components/examples/deployment-branch-policy-wildcard" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "reactions", - "subcategory": "reactions" + "category": "deployments", + "subcategory": "branch-policies" } - } - }, - "/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`.", + }, + "put": { + "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": [ - "issues" + "repos" ], - "operationId": "issues/remove-sub-issue", + "operationId": "repos/update-deployment-branch-policy", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/sub-issues#remove-sub-issue" + "url": "https://docs.github.com/rest/deployments/branch-policies#update-a-deployment-branch-policy" }, "parameters": [ { @@ -59270,7 +58340,10 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/environment-name" + }, + { + "$ref": "#/components/parameters/branch-policy-id" } ], "requestBody": { @@ -59278,21 +58351,12 @@ "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" - ] + "$ref": "#/components/schemas/deployment-branch-policy-name-pattern" }, "examples": { "default": { "value": { - "sub_issue_id": 6 + "name": "release/*" } } } @@ -59305,51 +58369,34 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue" + "$ref": "#/components/schemas/deployment-branch-policy" }, "examples": { "default": { - "$ref": "#/components/examples/issue" + "$ref": "#/components/examples/deployment-branch-policy-wildcard" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/issues/1/sub-issue", - "schema": { - "type": "string" - } - } } - }, - "400": { - "$ref": "#/components/responses/bad_request" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "sub-issues" + "category": "deployments", + "subcategory": "branch-policies" } - } - }, - "/repos/{owner}/{repo}/issues/{issue_number}/sub_issues": { - "get": { - "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`.", + }, + "delete": { + "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": [ - "issues" + "repos" ], - "operationId": "issues/list-sub-issues", + "operationId": "repos/delete-deployment-branch-policy", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/sub-issues#list-sub-issues" + "url": "https://docs.github.com/rest/deployments/branch-policies#delete-a-deployment-branch-policy" }, "parameters": [ { @@ -59359,257 +58406,262 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/environment-name" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/branch-policy-id" + } + ], + "responses": { + "204": { + "description": "Response" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "deployments", + "subcategory": "branch-policies" + } + } + }, + "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules": { + "get": { + "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": [ + "repos" + ], + "operationId": "repos/get-all-deployment-protection-rules", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/deployments/protection-rules#get-all-deployment-protection-rules-for-an-environment" + }, + "parameters": [ + { + "$ref": "#/components/parameters/environment-name" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/owner" } ], "responses": { "200": { - "description": "Response", + "description": "List of deployment protection rules", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/issue" + "type": "object", + "properties": { + "total_count": { + "description": "The number of enabled custom deployment protection rules for this environment", + "type": "integer", + "example": 10 + }, + "custom_deployment_protection_rules": { + "type": "array", + "items": { + "$ref": "#/components/schemas/deployment-protection-rule" + } + } + }, + "example": { + "$ref": "#/components/examples/deployment-protection-rules" } }, "examples": { "default": { - "$ref": "#/components/examples/issue-items" + "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" + } + } + ] + } } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "410": { - "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "sub-issues" + "category": "deployments", + "subcategory": "protection-rules" } }, "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`.", + "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": [ - "issues" + "repos" ], - "operationId": "issues/add-sub-issue", + "operationId": "repos/create-deployment-protection-rule", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/sub-issues#add-sub-issue" + "url": "https://docs.github.com/rest/deployments/protection-rules#create-a-custom-deployment-protection-rule-on-an-environment" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/environment-name" }, { "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/owner" } ], "requestBody": { - "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "sub_issue_id": { + "integration_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" + "description": "The ID of the custom app that will be enabled on the environment." } - }, - "required": [ - "sub_issue_id" - ] + } }, "examples": { "default": { "value": { - "sub_issue_id": 1 + "integration_id": 5 } } } } - } + }, + "required": true }, "responses": { "201": { - "description": "Response", + "description": "The enabled custom deployment protection rule", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue" + "$ref": "#/components/schemas/deployment-protection-rule" }, "examples": { "default": { - "$ref": "#/components/examples/issue" + "$ref": "#/components/examples/deployment-protection-rule" } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/issues/sub-issues/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": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "sub-issues" + "category": "deployments", + "subcategory": "protection-rules" } } }, - "/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.", + "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps": { + "get": { + "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": [ - "issues" + "repos" ], - "operationId": "issues/reprioritize-sub-issue", + "operationId": "repos/list-custom-deployment-rule-integrations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/sub-issues#reprioritize-sub-issue" + "url": "https://docs.github.com/rest/deployments/protection-rules#list-custom-deployment-rule-integrations-available-for-an-environment" }, "parameters": [ { - "$ref": "#/components/parameters/owner" + "$ref": "#/components/parameters/environment-name" }, { "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/per-page" } ], - "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", + "description": "A list of custom deployment rule integrations available for this environment.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/issue" + "type": "object", + "properties": { + "total_count": { + "description": "The total number of custom deployment protection rule integrations available for this environment.", + "type": "integer", + "example": 35 + }, + "available_custom_deployment_protection_rule_integrations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/custom-deployment-rule-app" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/issue" + "$ref": "#/components/examples/custom-deployment-protection-rule-apps" } } } } - }, - "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": true, - "category": "issues", - "subcategory": "sub-issues" + "category": "deployments", + "subcategory": "protection-rules" } } }, - "/repos/{owner}/{repo}/issues/{issue_number}/timeline": { + "/repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}": { "get": { - "summary": "List timeline events for an issue", - "description": "List all timeline events for an issue.", + "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": [ - "issues" + "repos" ], - "operationId": "issues/list-events-for-timeline", + "operationId": "repos/get-custom-deployment-protection-rule", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/timeline#list-timeline-events-for-an-issue" + "url": "https://docs.github.com/rest/deployments/protection-rules#get-a-custom-deployment-protection-rule" }, "parameters": [ { @@ -59619,13 +58671,10 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/issue-number" - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/environment-name" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/protection-rule-id" } ], "responses": { @@ -59634,50 +58683,73 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/timeline-issue-events" - } + "$ref": "#/components/schemas/deployment-protection-rule" }, "examples": { "default": { - "$ref": "#/components/examples/timeline-issue-events" + "$ref": "#/components/examples/deployment-protection-rule" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "deployments", + "subcategory": "protection-rules" + } + }, + "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": [ + "repos" + ], + "operationId": "repos/disable-deployment-protection-rule", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/deployments/protection-rules#disable-a-custom-protection-rule-for-an-environment" + }, + "parameters": [ + { + "$ref": "#/components/parameters/environment-name" }, - "404": { - "$ref": "#/components/responses/not_found" + { + "$ref": "#/components/parameters/repo" }, - "410": { - "$ref": "#/components/responses/gone" + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/protection-rule-id" + } + ], + "responses": { + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "timeline" + "category": "deployments", + "subcategory": "protection-rules" } } }, - "/repos/{owner}/{repo}/keys": { + "/repos/{owner}/{repo}/environments/{environment_name}/secrets": { "get": { - "summary": "List deploy keys", - "description": "", + "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": [ - "repos" + "actions" ], - "operationId": "repos/list-deploy-keys", + "operationId": "actions/list-environment-secrets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deploy-keys/deploy-keys#list-deploy-keys" + "url": "https://docs.github.com/rest/actions/secrets#list-environment-secrets" }, "parameters": [ { @@ -59686,6 +58758,9 @@ { "$ref": "#/components/parameters/repo" }, + { + "$ref": "#/components/parameters/environment-name" + }, { "$ref": "#/components/parameters/per-page" }, @@ -59699,14 +58774,26 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/deploy-key" + "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/deploy-key-items" + "$ref": "#/components/examples/actions-secret-paginated" } } } @@ -59721,20 +58808,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "deploy-keys", - "subcategory": "deploy-keys" + "category": "actions", + "subcategory": "secrets" } - }, - "post": { - "summary": "Create a deploy key", - "description": "You can create a read-only deploy key.", + } + }, + "/repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key": { + "get": { + "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": [ - "repos" + "actions" ], - "operationId": "repos/create-deploy-key", + "operationId": "actions/get-environment-public-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deploy-keys/deploy-keys#create-a-deploy-key" + "url": "https://docs.github.com/rest/actions/secrets#get-an-environment-public-key" }, "parameters": [ { @@ -59742,91 +58831,96 @@ }, { "$ref": "#/components/parameters/repo" - } + }, + { + "$ref": "#/components/parameters/environment-name" + } ], - "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/).\"" - } + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/actions-public-key" }, - "required": [ - "key" - ] - }, - "examples": { - "default": { - "value": { - "title": "octocat@octomac", - "key": "ssh-rsa AAA...", - "read_only": true + "examples": { + "default": { + "$ref": "#/components/examples/actions-public-key" } } } } } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "actions", + "subcategory": "secrets" + } + } + }, + "/repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}": { + "get": { + "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": [ + "actions" + ], + "operationId": "actions/get-environment-secret", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/actions/secrets#get-an-environment-secret" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/environment-name" + }, + { + "$ref": "#/components/parameters/secret-name" + } + ], "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/deploy-key" + "$ref": "#/components/schemas/actions-secret" }, "examples": { "default": { - "$ref": "#/components/examples/deploy-key" + "$ref": "#/components/examples/actions-secret" } } } - }, - "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": true, - "category": "deploy-keys", - "subcategory": "deploy-keys" + "category": "actions", + "subcategory": "secrets" } - } - }, - "/repos/{owner}/{repo}/keys/{key_id}": { - "get": { - "summary": "Get a deploy key", - "description": "", + }, + "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": [ - "repos" + "actions" ], - "operationId": "repos/get-deploy-key", + "operationId": "actions/create-or-update-environment-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deploy-keys/deploy-keys#get-a-deploy-key" + "url": "https://docs.github.com/rest/actions/secrets#create-or-update-an-environment-secret" }, "parameters": [ { @@ -59836,46 +58930,82 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/key-id" + "$ref": "#/components/parameters/environment-name" + }, + { + "$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 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})$" + }, + "key_id": { + "type": "string", + "description": "ID of the key you used to encrypt the secret." + } + }, + "required": [ + "encrypted_value", + "key_id" + ] + }, + "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/deploy-key" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/deploy-key" + "value": null } } } } }, - "404": { - "$ref": "#/components/responses/not_found" + "204": { + "description": "Response when updating a secret" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "deploy-keys", - "subcategory": "deploy-keys" + "category": "actions", + "subcategory": "secrets" } }, "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 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": [ - "repos" + "actions" ], - "operationId": "repos/delete-deploy-key", + "operationId": "actions/delete-environment-secret", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/deploy-keys/deploy-keys#delete-a-deploy-key" + "url": "https://docs.github.com/rest/actions/secrets#delete-an-environment-secret" }, "parameters": [ { @@ -59885,33 +59015,36 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/key-id" + "$ref": "#/components/parameters/environment-name" + }, + { + "$ref": "#/components/parameters/secret-name" } ], "responses": { "204": { - "description": "Response" + "description": "Default response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "deploy-keys", - "subcategory": "deploy-keys" + "category": "actions", + "subcategory": "secrets" } } }, - "/repos/{owner}/{repo}/labels": { + "/repos/{owner}/{repo}/environments/{environment_name}/variables": { "get": { - "summary": "List labels for a repository", - "description": "Lists all labels for a repository.", + "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": [ - "issues" + "actions" ], - "operationId": "issues/list-labels-for-repo", + "operationId": "actions/list-environment-variables", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/labels#list-labels-for-a-repository" + "url": "https://docs.github.com/rest/actions/variables#list-environment-variables" }, "parameters": [ { @@ -59921,7 +59054,10 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/environment-name" + }, + { + "$ref": "#/components/parameters/variables-per-page" }, { "$ref": "#/components/parameters/page" @@ -59933,14 +59069,26 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/label" + "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/label-items" + "$ref": "#/components/examples/actions-variables-paginated" } } } @@ -59950,28 +59098,25 @@ "$ref": "#/components/headers/link" } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "labels" + "category": "actions", + "subcategory": "variables" } }, "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/).", + "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": [ - "issues" + "actions" ], - "operationId": "issues/create-label", + "operationId": "actions/create-environment-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/labels#create-a-label" + "url": "https://docs.github.com/rest/actions/variables#create-an-environment-variable" }, "parameters": [ { @@ -59979,6 +59124,9 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/environment-name" } ], "requestBody": { @@ -59990,27 +59138,23 @@ "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": "The name of the variable." }, - "description": { + "value": { "type": "string", - "description": "A short description of the label. Must be 100 characters or fewer." + "description": "The value of the variable." } }, "required": [ - "name" + "name", + "value" ] }, "examples": { "default": { "value": { - "name": "bug", - "description": "Something isn't working", - "color": "f29513" + "name": "USERNAME", + "value": "octocat" } } } @@ -60023,50 +59167,36 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/label" + "$ref": "#/components/schemas/empty-object" }, "examples": { "default": { - "$ref": "#/components/examples/label" + "value": null } } } - }, - "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": true, - "category": "issues", - "subcategory": "labels" + "category": "actions", + "subcategory": "variables" } } }, - "/repos/{owner}/{repo}/labels/{name}": { + "/repos/{owner}/{repo}/environments/{environment_name}/variables/{name}": { "get": { - "summary": "Get a label", - "description": "Gets a label using the given name.", + "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": [ - "issues" + "actions" ], - "operationId": "issues/get-label", + "operationId": "actions/get-environment-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/labels#get-a-label" + "url": "https://docs.github.com/rest/actions/variables#get-an-environment-variable" }, "parameters": [ { @@ -60076,12 +59206,10 @@ "$ref": "#/components/parameters/repo" }, { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/environment-name" + }, + { + "$ref": "#/components/parameters/variable-name" } ], "responses": { @@ -60090,37 +59218,34 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/label" + "$ref": "#/components/schemas/actions-variable" }, "examples": { "default": { - "$ref": "#/components/examples/label" + "$ref": "#/components/examples/actions-variable" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "labels" + "category": "actions", + "subcategory": "variables" } }, "patch": { - "summary": "Update a label", - "description": "Updates a label using the given label name.", + "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": [ - "issues" + "actions" ], - "operationId": "issues/update-label", + "operationId": "actions/update-environment-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/labels#update-a-label" + "url": "https://docs.github.com/rest/actions/variables#update-an-environment-variable" }, "parameters": [ { @@ -60130,41 +59255,34 @@ "$ref": "#/components/parameters/repo" }, { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/variable-name" + }, + { + "$ref": "#/components/parameters/environment-name" } ], "requestBody": { - "required": false, + "required": true, "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": { + "name": { "type": "string", - "description": "The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`." + "description": "The name of the variable." }, - "description": { + "value": { "type": "string", - "description": "A short description of the label. Must be 100 characters or fewer." + "description": "The value of the variable." } } }, "examples": { "default": { "value": { - "new_name": "bug :bug:", - "description": "Small bug fix required", - "color": "b01f26" + "name": "USERNAME", + "value": "octocat" } } } @@ -60172,39 +59290,27 @@ } }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/label" - }, - "examples": { - "default": { - "$ref": "#/components/examples/label-2" - } - } - } - } + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "labels" + "category": "actions", + "subcategory": "variables" } }, "delete": { - "summary": "Delete a label", - "description": "Deletes a label using the given label name.", + "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": [ - "issues" + "actions" ], - "operationId": "issues/delete-label", + "operationId": "actions/delete-environment-variable", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/labels#delete-a-label" + "url": "https://docs.github.com/rest/actions/variables#delete-an-environment-variable" }, "parameters": [ { @@ -60214,12 +59320,10 @@ "$ref": "#/components/parameters/repo" }, { - "name": "name", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/variable-name" + }, + { + "$ref": "#/components/parameters/environment-name" } ], "responses": { @@ -60230,22 +59334,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "labels" + "category": "actions", + "subcategory": "variables" } } }, - "/repos/{owner}/{repo}/languages": { + "/repos/{owner}/{repo}/events": { "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": "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": [ - "repos" + "activity" ], - "operationId": "repos/list-languages", + "operationId": "activity/list-repo-events", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#list-repository-languages" + "url": "https://docs.github.com/rest/activity/events#list-repository-events" }, "parameters": [ { @@ -60253,6 +59357,12 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -60261,11 +59371,14 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/language" + "type": "array", + "items": { + "$ref": "#/components/schemas/event" + } }, "examples": { - "default": { - "$ref": "#/components/examples/language" + "200-response": { + "$ref": "#/components/examples/repo-events-items" } } } @@ -60275,22 +59388,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "repos" + "category": "activity", + "subcategory": "events" } } }, - "/repos/{owner}/{repo}/license": { + "/repos/{owner}/{repo}/forks": { "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\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).", + "summary": "List forks", + "description": "", "tags": [ - "licenses" + "repos" ], - "operationId": "licenses/get-for-repo", + "operationId": "repos/list-forks", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/licenses/licenses#get-the-license-for-a-repository" + "url": "https://docs.github.com/rest/repos/forks#list-forks" }, "parameters": [ { @@ -60300,7 +59413,26 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/git-ref" + "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": { @@ -60309,39 +59441,45 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/license-content" + "type": "array", + "items": { + "$ref": "#/components/schemas/minimal-repository" + } }, "examples": { "default": { - "$ref": "#/components/examples/license-content" + "$ref": "#/components/examples/minimal-repository-items-2" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "404": { - "$ref": "#/components/responses/not_found" + "400": { + "$ref": "#/components/responses/bad_request" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "licenses", - "subcategory": "licenses" + "category": "repos", + "subcategory": "forks" } - } - }, - "/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.", + "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": [ "repos" ], - "operationId": "repos/merge-upstream", + "operationId": "repos/create-fork", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branches#sync-a-fork-branch-with-the-upstream-repository" + "url": "https://docs.github.com/rest/repos/forks#create-a-fork" }, "parameters": [ { @@ -60352,25 +59490,33 @@ } ], "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { "type": "object", + "nullable": true, "properties": { - "branch": { + "organization": { "type": "string", - "description": "The name of the branch which should be updated to match upstream." + "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." } - }, - "required": [ - "branch" - ] + } }, "examples": { "default": { "value": { - "branch": "main" + "organization": "octocat", + "name": "Hello-World", + "default_branch_only": true } } } @@ -60378,47 +59524,53 @@ } }, "responses": { - "200": { - "description": "The branch has been successfully synced with the upstream repository", + "202": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/merged-upstream" + "$ref": "#/components/schemas/full-repository" }, "examples": { "default": { - "$ref": "#/components/examples/merged-upstream" + "$ref": "#/components/examples/full-repository" } } } } }, - "409": { - "description": "The branch could not be synced because of a merge conflict" + "400": { + "$ref": "#/components/responses/bad_request" }, "422": { - "description": "The branch could not be synced for some other reason" + "$ref": "#/components/responses/validation_failed" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "branches", - "subcategory": "branches" + "category": "repos", + "subcategory": "forks" } } }, - "/repos/{owner}/{repo}/merges": { + "/repos/{owner}/{repo}/git/blobs": { "post": { - "summary": "Merge a branch", + "summary": "Create a blob", "description": "", "tags": [ - "repos" + "git" ], - "operationId": "repos/merge", + "operationId": "git/create-blob", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/branches/branches#merge-a-branch" + "url": "https://docs.github.com/rest/git/blobs#create-a-blob" }, "parameters": [ { @@ -60435,30 +59587,25 @@ "schema": { "type": "object", "properties": { - "base": { - "type": "string", - "description": "The name of the base branch that the head will be merged into." - }, - "head": { + "content": { "type": "string", - "description": "The head to merge. This can be a branch name or a commit SHA1." + "description": "The new blob's content." }, - "commit_message": { + "encoding": { "type": "string", - "description": "Commit message to use for the merge commit. If omitted, a default message will be used." + "description": "The encoding used for `content`. Currently, `\"utf-8\"` and `\"base64\"` are supported.", + "default": "utf-8" } }, "required": [ - "base", - "head" + "content" ] }, "examples": { "default": { "value": { - "base": "master", - "head": "cool_feature", - "commit_message": "Shipped cool_feature!" + "content": "Content of the blob", + "encoding": "utf-8" } } } @@ -60467,55 +59614,74 @@ }, "responses": { "201": { - "description": "Successful Response (The resulting merge commit)", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/commit" + "$ref": "#/components/schemas/short-blob" }, "examples": { "default": { - "$ref": "#/components/examples/commit" + "$ref": "#/components/examples/short-blob" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/example/git/blobs/3a0f86fb8db8eea7ccbb9a95f325ddbedfb25e15", + "schema": { + "type": "string" + } + } } }, - "204": { - "description": "Response when already merged" - }, "404": { - "description": "Not Found when the base or head does not exist" + "$ref": "#/components/responses/not_found" }, "409": { - "description": "Conflict when there is a merge conflict" + "$ref": "#/components/responses/conflict" }, "403": { "$ref": "#/components/responses/forbidden" }, "422": { - "$ref": "#/components/responses/validation_failed" + "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, - "category": "branches", - "subcategory": "branches" + "category": "git", + "subcategory": "blobs" } } }, - "/repos/{owner}/{repo}/milestones": { + "/repos/{owner}/{repo}/git/blobs/{file_sha}": { "get": { - "summary": "List milestones", - "description": "Lists milestones for a repository.", + "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": [ - "issues" + "git" ], - "operationId": "issues/list-milestones", + "operationId": "git/get-blob", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/milestones#list-milestones" + "url": "https://docs.github.com/rest/git/blobs#get-a-blob" }, "parameters": [ { @@ -60525,53 +59691,12 @@ "$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, + "name": "file_sha", + "in": "path", + "required": true, "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ], - "default": "asc" + "type": "string" } - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -60580,45 +59705,48 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/milestone" - } + "$ref": "#/components/schemas/blob" }, "examples": { "default": { - "$ref": "#/components/examples/milestone-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, - "category": "issues", - "subcategory": "milestones" + "category": "git", + "subcategory": "blobs" } - }, + } + }, + "/repos/{owner}/{repo}/git/commits": { "post": { - "summary": "Create a milestone", - "description": "Creates a milestone.", + "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": [ - "issues" + "git" ], - "operationId": "issues/create-milestone", + "operationId": "git/create-commit", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/milestones#create-a-milestone" + "url": "https://docs.github.com/rest/git/commits#create-a-commit" }, "parameters": [ { @@ -60635,40 +59763,87 @@ "schema": { "type": "object", "properties": { - "title": { + "message": { "type": "string", - "description": "The title of the milestone." + "description": "The commit message" }, - "state": { + "tree": { "type": "string", - "description": "The state of the milestone. Either `open` or `closed`.", - "enum": [ - "open", - "closed" - ], - "default": "open" + "description": "The SHA of the tree object this commit points to" }, - "description": { - "type": "string", - "description": "A description of the milestone." + "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" + } }, - "due_on": { + "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", - "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`." + "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": [ - "title" + "message", + "tree" ] }, "examples": { "default": { "value": { - "title": "v1.0", - "state": "open", - "description": "Tracking milestone for version 1.0", - "due_on": "2012-10-09T23:39:01Z" + "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" } } } @@ -60681,50 +59856,53 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/milestone" + "$ref": "#/components/schemas/git-commit" }, "examples": { "default": { - "$ref": "#/components/examples/milestone" + "$ref": "#/components/examples/git-commit" } } } }, "headers": { "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/milestones/1", + "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" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "milestones" + "category": "git", + "subcategory": "commits" } } }, - "/repos/{owner}/{repo}/milestones/{milestone_number}": { + "/repos/{owner}/{repo}/git/commits/{commit_sha}": { "get": { - "summary": "Get a milestone", - "description": "Gets a milestone using the given milestone number.", + "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": [ - "issues" + "git" ], - "operationId": "issues/get-milestone", + "operationId": "git/get-commit", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/milestones#get-a-milestone" + "url": "https://docs.github.com/rest/git/commits#get-a-commit-object" }, "parameters": [ { @@ -60734,7 +59912,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/milestone-number" + "$ref": "#/components/parameters/commit-sha" } ], "responses": { @@ -60743,11 +59921,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/milestone" + "$ref": "#/components/schemas/git-commit" }, "examples": { "default": { - "$ref": "#/components/examples/milestone" + "$ref": "#/components/examples/git-commit-2" } } } @@ -60755,25 +59933,30 @@ }, "404": { "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "milestones" + "category": "git", + "subcategory": "commits" } - }, - "patch": { - "summary": "Update a milestone", - "description": "", + } + }, + "/repos/{owner}/{repo}/git/matching-refs/{ref}": { + "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]\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": [ - "issues" + "git" ], - "operationId": "issues/update-milestone", + "operationId": "git/list-matching-refs", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/milestones#update-a-milestone" + "url": "https://docs.github.com/rest/git/refs#list-matching-references" }, "parameters": [ { @@ -60783,126 +59966,56 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/milestone-number" + "$ref": "#/components/parameters/git-ref-only" } ], - "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/milestone" + "type": "array", + "items": { + "$ref": "#/components/schemas/git-ref" + } }, "examples": { "default": { - "$ref": "#/components/examples/milestone" + "$ref": "#/components/examples/git-ref-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - } - }, - "x-github": { - "githubCloudOnly": false, - "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" + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "milestones" + "category": "git", + "subcategory": "refs" } } }, - "/repos/{owner}/{repo}/milestones/{milestone_number}/labels": { + "/repos/{owner}/{repo}/git/ref/{ref}": { "get": { - "summary": "List labels for issues in a milestone", - "description": "Lists labels for issues in a milestone.", + "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": [ - "issues" + "git" ], - "operationId": "issues/list-labels-for-milestone", + "operationId": "git/get-ref", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/labels#list-labels-for-issues-in-a-milestone" + "url": "https://docs.github.com/rest/git/refs#get-a-reference" }, "parameters": [ { @@ -60912,13 +60025,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/milestone-number" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/git-ref-only" } ], "responses": { @@ -60927,44 +60034,42 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/label" - } + "$ref": "#/components/schemas/git-ref" }, "examples": { "default": { - "$ref": "#/components/examples/label-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, - "category": "issues", - "subcategory": "labels" + "category": "git", + "subcategory": "refs" } } }, - "/repos/{owner}/{repo}/notifications": { - "get": { - "summary": "List repository notifications for the authenticated user", - "description": "Lists all notifications for the current user in the specified repository.", + "/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": [ - "activity" + "git" ], - "operationId": "activity/list-repo-notifications-for-authenticated-user", + "operationId": "git/create-ref", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/activity/notifications#list-repository-notifications-for-the-authenticated-user" + "url": "https://docs.github.com/rest/git/refs#create-a-reference" }, "parameters": [ { @@ -60972,68 +60077,90 @@ }, { "$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" } ], + "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" + } + } + } + } + } + }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/thread" - } + "$ref": "#/components/schemas/git-ref" }, "examples": { "default": { - "$ref": "#/components/examples/thread-items" + "$ref": "#/components/examples/git-ref" } } } }, "headers": { - "Link": { - "$ref": "#/components/headers/link" + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/git/refs/heads/featureA", + "schema": { + "type": "string" + } } } + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "activity", - "subcategory": "notifications" + "enabledForGitHubApps": true, + "category": "git", + "subcategory": "refs" } - }, - "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`.", + } + }, + "/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": [ - "activity" + "git" ], - "operationId": "activity/mark-repo-notifications-as-read", + "operationId": "git/update-ref", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/activity/notifications#mark-repository-notifications-as-read" + "url": "https://docs.github.com/rest/git/refs#update-a-reference" }, "parameters": [ { @@ -61041,26 +60168,37 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/git-ref-only" } ], "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "last_read_at": { + "sha": { "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." + "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": { - "last_read_at": "2019-01-01T00:00:00Z" + "sha": "aa218f56b14c9653891f9e74264a383fa43fefbd", + "force": true } } } @@ -61068,54 +60206,45 @@ } }, "responses": { - "202": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "url": { - "type": "string" - } - } + "$ref": "#/components/schemas/git-ref" }, "examples": { "default": { - "value": { - "message": "Unread notifications couldn't be marked in a single request. Notifications are being marked as read in the background." - } + "$ref": "#/components/examples/git-ref" } } } } }, - "205": { - "description": "Reset Content" + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "activity", - "subcategory": "notifications" + "enabledForGitHubApps": true, + "category": "git", + "subcategory": "refs" } - } - }, - "/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.", + }, + "delete": { + "summary": "Delete a reference", + "description": "Deletes the provided reference.", "tags": [ - "repos" + "git" ], - "operationId": "repos/get-pages", + "operationId": "git/delete-ref", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pages/pages#get-a-apiname-pages-site" + "url": "https://docs.github.com/rest/git/refs#delete-a-reference" }, "parameters": [ { @@ -61123,45 +60252,41 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/git-ref-only" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/page" - }, - "examples": { - "default": { - "$ref": "#/components/examples/page" - } - } - } - } + "204": { + "description": "Response" }, - "404": { - "$ref": "#/components/responses/not_found" + "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, - "category": "pages", - "subcategory": "pages" + "category": "git", + "subcategory": "refs" } - }, + } + }, + "/repos/{owner}/{repo}/git/tags": { "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.", + "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": [ - "repos" + "git" ], - "operationId": "repos/create-pages-site", + "operationId": "git/create-tag", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pages/pages#create-a-apiname-pages-site" + "url": "https://docs.github.com/rest/git/tags#create-a-tag-object" }, "parameters": [ { @@ -61177,59 +60302,70 @@ "application/json": { "schema": { "type": "object", - "description": "The source branch and directory used to publish your Pages site.", - "nullable": true, "properties": { - "build_type": { + "tag": { "type": "string", - "description": "The process in which the Page will be built. Possible values are `\"legacy\"` and `\"workflow\"`.", + "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": [ - "legacy", - "workflow" + "commit", + "tree", + "blob" ] }, - "source": { + "tagger": { "type": "object", - "description": "The source branch and directory used to publish your Pages site.", + "description": "An object with information about the individual creating the tag.", "properties": { - "branch": { + "name": { "type": "string", - "description": "The repository branch used to publish your site's source files." + "description": "The name of the author of the tag" }, - "path": { + "email": { "type": "string", - "description": "The repository directory that includes the source files for the Pages site. Allowed paths are `/` or `/docs`. Default: `/`", - "enum": [ - "/", - "/docs" - ], - "default": "/" + "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": [ - "branch" + "name", + "email" ] } }, - "anyOf": [ - { - "required": [ - "source" - ] - }, - { - "required": [ - "build_type" - ] - } + "required": [ + "tag", + "message", + "object", + "type" ] }, "examples": { "default": { "value": { - "source": { - "branch": "main", - "path": "/docs" + "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" } } } @@ -61243,14 +60379,22 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/page" + "$ref": "#/components/schemas/git-tag" }, "examples": { "default": { - "$ref": "#/components/examples/page" + "$ref": "#/components/examples/git-tag" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac", + "schema": { + "type": "string" + } + } } }, "422": { @@ -61263,20 +60407,81 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pages", - "subcategory": "pages" + "category": "git", + "subcategory": "tags" } - }, - "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.", + } + }, + "/repos/{owner}/{repo}/git/tags/{tag_sha}": { + "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| `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" + "git" ], - "operationId": "repos/update-information-about-pages-site", + "operationId": "git/get-tag", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pages/pages#update-information-about-a-apiname-pages-site" + "url": "https://docs.github.com/rest/git/tags#get-a-tag" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "name": "tag_sha", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/git-tag" + }, + "examples": { + "default": { + "$ref": "#/components/examples/git-tag" + } + } + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "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": [ + "git" + ], + "operationId": "git/create-tree", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/git/trees#create-a-tree" }, "parameters": [ { @@ -61293,95 +60498,69 @@ "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" - ] - } + "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." }, - "required": [ - "branch", - "path" - ] + "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." + } } - ] - } - }, - "anyOf": [ - { - "required": [ - "build_type" - ] - }, - { - "required": [ - "source" - ] - }, - { - "required": [ - "cname" - ] - }, - { - "required": [ - "public" - ] + } }, - { - "required": [ - "https_enforced" - ] + "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." } + }, + "required": [ + "tree" ] }, "examples": { "default": { "value": { - "cname": "octocatblog.com", - "source": { - "branch": "main", - "path": "/" - } + "base_tree": "9fb037999f264ba9a7fc6274d15fa3ae2ab98312", + "tree": [ + { + "path": "file.rb", + "mode": "100644", + "type": "blob", + "sha": "44b4fc6d56897b048c772eb4087f854f46256132" + } + ] } } } @@ -61389,14 +60568,37 @@ } }, "responses": { - "204": { - "description": "Response" + "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" }, - "400": { - "$ref": "#/components/responses/bad_request" + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" }, "409": { "$ref": "#/components/responses/conflict" @@ -61405,20 +60607,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pages", - "subcategory": "pages" + "category": "git", + "subcategory": "trees" } - }, - "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.", + } + }, + "/repos/{owner}/{repo}/git/trees/{tree_sha}": { + "get": { + "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": [ - "repos" + "git" ], - "operationId": "repos/delete-pages-site", + "operationId": "git/get-tree", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pages/pages#delete-a-apiname-pages-site" + "url": "https://docs.github.com/rest/git/trees#get-a-tree" }, "parameters": [ { @@ -61426,11 +60630,45 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "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": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/git-tree" + }, + "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" + } + } + } + } }, "422": { "$ref": "#/components/responses/validation_failed" @@ -61445,22 +60683,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pages", - "subcategory": "pages" + "category": "git", + "subcategory": "trees" } } }, - "/repos/{owner}/{repo}/pages/builds": { + "/repos/{owner}/{repo}/hash-algorithm": { "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.", + "summary": "Get the hash algorithm for a repository", + "description": "Returns the hash algorithm used to store repository objects.", "tags": [ "repos" ], - "operationId": "repos/list-pages-builds", + "operationId": "repos/get-hash-algorithm", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pages/pages#list-apiname-pages-builds" + "url": "https://docs.github.com/rest/repos/repos#get-the-hash-algorithm-for-a-repository" }, "parameters": [ { @@ -61468,12 +60706,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -61482,42 +60714,44 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/page-build" - } + "$ref": "#/components/schemas/repository-hash-algorithm" }, "examples": { "default": { - "$ref": "#/components/examples/page-build-items" + "value": { + "hash_algorithm": "sha1" + } } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pages", - "subcategory": "pages" + "category": "repos", + "subcategory": "repos" } - }, - "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.", + } + }, + "/repos/{owner}/{repo}/hooks": { + "get": { + "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": [ "repos" ], - "operationId": "repos/request-pages-build", + "operationId": "repos/list-webhooks", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pages/pages#request-a-apiname-pages-build" + "url": "https://docs.github.com/rest/repos/webhooks#list-repository-webhooks" }, "parameters": [ { @@ -61525,44 +60759,59 @@ }, { "$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/page-build-status" + "type": "array", + "items": { + "$ref": "#/components/schemas/hook" + } }, "examples": { "default": { - "$ref": "#/components/examples/page-build-status" + "$ref": "#/components/examples/hook-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pages", - "subcategory": "pages" + "category": "repos", + "subcategory": "webhooks" } - } - }, - "/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.", + }, + "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": [ "repos" ], - "operationId": "repos/get-latest-pages-build", + "operationId": "repos/create-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pages/pages#get-latest-pages-build" + "url": "https://docs.github.com/rest/repos/webhooks#create-a-repository-webhook" }, "parameters": [ { @@ -61572,42 +60821,127 @@ "$ref": "#/components/parameters/repo" } ], + "requestBody": { + "required": false, + "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.", + "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": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/page-build" + "$ref": "#/components/schemas/hook" }, "examples": { "default": { - "$ref": "#/components/examples/page-build" + "$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, - "category": "pages", - "subcategory": "pages" + "category": "repos", + "subcategory": "webhooks" } } }, - "/repos/{owner}/{repo}/pages/builds/{build_id}": { + "/repos/{owner}/{repo}/hooks/{hook_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.", + "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": [ "repos" ], - "operationId": "repos/get-pages-build", + "operationId": "repos/get-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pages/pages#get-apiname-pages-build" + "url": "https://docs.github.com/rest/repos/webhooks#get-a-repository-webhook" }, "parameters": [ { @@ -61617,12 +60951,7 @@ "$ref": "#/components/parameters/repo" }, { - "name": "build_id", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/hook-id" } ], "responses": { @@ -61631,36 +60960,37 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/page-build" + "$ref": "#/components/schemas/hook" }, "examples": { "default": { - "$ref": "#/components/examples/page-build" + "$ref": "#/components/examples/hook" } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pages", - "subcategory": "pages" + "category": "repos", + "subcategory": "webhooks" } - } - }, - "/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.", + }, + "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/webhooks/repo-config#update-a-webhook-configuration-for-a-repository).\"", "tags": [ "repos" ], - "operationId": "repos/create-pages-deployment", + "operationId": "repos/update-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pages/pages#create-a-github-pages-deployment" + "url": "https://docs.github.com/rest/repos/webhooks#update-a-repository-webhook" }, "parameters": [ { @@ -61668,6 +60998,9 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/hook-id" } ], "requestBody": { @@ -61676,43 +61009,48 @@ "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." + "config": { + "$ref": "#/components/schemas/webhook-config" }, - "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." + "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" + } }, - "environment": { - "type": "string", - "description": "The target environment for this GitHub Pages deployment.", - "default": "github-pages" + "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" + } }, - "pages_build_version": { - "type": "string", - "description": "A unique string that represents the version of the build for this deployment.", - "default": "GITHUB_SHA" + "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" + } }, - "oidc_token": { - "type": "string", - "description": "The OIDC token issued by GitHub Actions certifying the origin of the deployment." + "active": { + "type": "boolean", + "description": "Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications.", + "default": true } - }, - "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" + "active": true, + "add_events": [ + "pull_request" + ] } } } @@ -61725,19 +61063,16 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/page-deployment" + "$ref": "#/components/schemas/hook" }, "examples": { "default": { - "$ref": "#/components/examples/page-deployment" + "$ref": "#/components/examples/hook" } } } } }, - "400": { - "$ref": "#/components/responses/bad_request" - }, "422": { "$ref": "#/components/responses/validation_failed" }, @@ -61748,22 +61083,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pages", - "subcategory": "pages" + "category": "repos", + "subcategory": "webhooks" } - } - }, - "/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.", + }, + "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": [ "repos" ], - "operationId": "repos/get-pages-deployment", + "operationId": "repos/delete-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pages/pages#get-the-status-of-a-github-pages-deployment" + "url": "https://docs.github.com/rest/repos/webhooks#delete-a-repository-webhook" }, "parameters": [ { @@ -61773,24 +61106,12 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pages-deployment-id" + "$ref": "#/components/parameters/hook-id" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/pages-deployment-status" - }, - "examples": { - "default": { - "$ref": "#/components/examples/pages-deployment-status" - } - } - } - } + "204": { + "description": "Response" }, "404": { "$ref": "#/components/responses/not_found" @@ -61799,22 +61120,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pages", - "subcategory": "pages" + "category": "repos", + "subcategory": "webhooks" } } }, - "/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.", + "/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/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": [ "repos" ], - "operationId": "repos/cancel-pages-deployment", + "operationId": "repos/get-webhook-config-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pages/pages#cancel-a-github-pages-deployment" + "url": "https://docs.github.com/rest/repos/webhooks#get-a-webhook-configuration-for-a-repository" }, "parameters": [ { @@ -61824,36 +61145,43 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pages-deployment-id" + "$ref": "#/components/parameters/hook-id" } ], "responses": { - "204": { - "$ref": "#/components/responses/no_content" - }, - "404": { - "$ref": "#/components/responses/not_found" + "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, - "category": "pages", - "subcategory": "pages" + "category": "repos", + "subcategory": "webhooks" } - } - }, - "/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.", + }, + "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/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": [ "repos" ], - "operationId": "repos/get-pages-health-check", + "operationId": "repos/update-webhook-config-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pages/pages#get-a-dns-health-check-for-github-pages" + "url": "https://docs.github.com/rest/repos/webhooks#update-a-webhook-configuration-for-a-repository" }, "parameters": [ { @@ -61861,68 +61189,147 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/hook-id" } ], + "requestBody": { + "required": false, + "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" + } + } + }, + "examples": { + "default": { + "summary": "Example of updating content type and URL", + "value": { + "content_type": "json", + "url": "https://example.com/webhook" + } + } + } + } + } + }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pages-health-check" + "$ref": "#/components/schemas/webhook-config" }, "examples": { "default": { - "$ref": "#/components/examples/pages-health-check" + "$ref": "#/components/examples/webhook-config" } } } } - }, - "202": { - "description": "Empty response", - "content": { + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "webhooks" + } + } + }, + "/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.", + "tags": [ + "repos" + ], + "operationId": "repos/list-webhook-deliveries", + "externalDocs": { + "description": "API method documentation", + "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" + }, + { + "$ref": "#/components/parameters/webhook-delivery-status" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/empty-object" + "type": "array", + "items": { + "$ref": "#/components/schemas/hook-delivery-item" + } }, "examples": { "default": { - "value": null + "$ref": "#/components/examples/hook-delivery-items" } } } } }, "400": { - "description": "Custom domains are not available for GitHub Pages" + "$ref": "#/components/responses/bad_request" }, "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": "pages", - "subcategory": "pages" + "category": "repos", + "subcategory": "webhooks" } } }, - "/repos/{owner}/{repo}/private-vulnerability-reporting": { + "/repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}": { "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)\".", + "summary": "Get a delivery for a repository webhook", + "description": "Returns a delivery for a webhook configured in a repository.", "tags": [ "repos" ], - "operationId": "repos/check-private-vulnerability-reporting", + "operationId": "repos/get-webhook-delivery", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#check-if-private-vulnerability-reporting-is-enabled-for-a-repository" + "url": "https://docs.github.com/rest/repos/webhooks#get-a-delivery-for-a-repository-webhook" }, "parameters": [ { @@ -61930,56 +61337,101 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/hook-id" + }, + { + "$ref": "#/components/parameters/delivery-id" } ], "responses": { "200": { - "description": "Private vulnerability reporting status", + "description": "Response", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean", - "description": "Whether or not private vulnerability reporting is enabled for the repository." - } - }, - "required": [ - "enabled" - ] + "$ref": "#/components/schemas/hook-delivery" }, "examples": { "default": { - "value": { - "enabled": true - } + "$ref": "#/components/examples/hook-delivery" } } } } }, + "400": { + "$ref": "#/components/responses/bad_request" + }, "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "webhooks" + } + } + }, + "/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": [ + "repos" + ], + "operationId": "repos/redeliver-webhook-delivery", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/webhooks#redeliver-a-delivery-for-a-repository-webhook" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/hook-id" + }, + { + "$ref": "#/components/parameters/delivery-id" + } + ], + "responses": { + "202": { + "$ref": "#/components/responses/accepted" + }, + "400": { "$ref": "#/components/responses/bad_request" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "repos", - "subcategory": "repos" + "subcategory": "webhooks" } - }, - "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).\"", + } + }, + "/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": [ "repos" ], - "operationId": "repos/enable-private-vulnerability-reporting", + "operationId": "repos/ping-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#enable-private-vulnerability-reporting-for-a-repository" + "url": "https://docs.github.com/rest/repos/webhooks#ping-a-repository-webhook" }, "parameters": [ { @@ -61987,33 +61439,38 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/hook-id" } ], "responses": { "204": { - "$ref": "#/components/responses/no_content" + "description": "Response" }, - "422": { - "$ref": "#/components/responses/bad_request" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "repos", - "subcategory": "repos" + "subcategory": "webhooks" } - }, - "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)\".", + } + }, + "/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": [ "repos" ], - "operationId": "repos/disable-private-vulnerability-reporting", + "operationId": "repos/test-push-webhook", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#disable-private-vulnerability-reporting-for-a-repository" + "url": "https://docs.github.com/rest/repos/webhooks#test-the-push-repository-webhook" }, "parameters": [ { @@ -62021,35 +61478,38 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/hook-id" } ], "responses": { "204": { - "$ref": "#/components/responses/no_content" + "description": "Response" }, - "422": { - "$ref": "#/components/responses/bad_request" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "repos", - "subcategory": "repos" + "subcategory": "webhooks" } } }, - "/repos/{owner}/{repo}/properties/values": { + "/repos/{owner}/{repo}/immutable-releases": { "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.", + "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": [ "repos" ], - "operationId": "repos/custom-properties-for-repos-get-repository-values", + "operationId": "repos/check-immutable-releases", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/custom-properties#get-all-custom-property-values-for-a-repository" + "url": "https://docs.github.com/rest/repos/repos#check-if-immutable-releases-are-enabled-for-a-repository" }, "parameters": [ { @@ -62061,47 +61521,44 @@ ], "responses": { "200": { - "description": "Response", + "description": "Response if immutable releases are enabled", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/custom-property-value" - } + "$ref": "#/components/schemas/check-immutable-releases" }, "examples": { "default": { - "$ref": "#/components/examples/custom-property-values" + "value": { + "enabled": true, + "enforced_by_owner": false + } } } } } }, - "403": { - "$ref": "#/components/responses/forbidden" - }, "404": { - "$ref": "#/components/responses/not_found" + "description": "Not Found if immutable releases are not enabled for the repository" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "repos", - "subcategory": "custom-properties" + "subcategory": "repos" } }, - "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.", + "put": { + "summary": "Enable immutable releases", + "description": "Enables immutable releases for a repository. The authenticated user must have admin access to the repository.", "tags": [ "repos" ], - "operationId": "repos/custom-properties-for-repos-create-or-update-repository-values", + "operationId": "repos/enable-immutable-releases", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/custom-properties#create-or-update-custom-property-values-for-a-repository" + "url": "https://docs.github.com/rest/repos/repos#enable-immutable-releases" }, "parameters": [ { @@ -62111,66 +61568,67 @@ "$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" - ] - }, - "examples": { - "default": { - "$ref": "#/components/examples/create-or-update-custom-properties-values" - } - } - } - } - }, "responses": { "204": { - "description": "No Content when custom property values are successfully created or updated" + "$ref": "#/components/responses/no_content" }, - "403": { - "$ref": "#/components/responses/forbidden" + "409": { + "$ref": "#/components/responses/conflict" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" + } + }, + "delete": { + "summary": "Disable immutable releases", + "description": "Disables immutable releases for a repository. The authenticated user must have admin access to the repository.", + "tags": [ + "repos" + ], + "operationId": "repos/disable-immutable-releases", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/repos#disable-immutable-releases" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, - "404": { - "$ref": "#/components/responses/not_found" + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/no_content" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, "category": "repos", - "subcategory": "custom-properties" + "subcategory": "repos" } } }, - "/repos/{owner}/{repo}/pulls": { + "/repos/{owner}/{repo}/import": { "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`.", + "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": [ - "pulls" + "migrations" ], - "operationId": "pulls/list", + "operationId": "migrations/get-import-status", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/pulls#list-pull-requests" + "url": "https://docs.github.com/rest/migrations/source-imports#get-an-import-status" }, "parameters": [ { @@ -62178,74 +61636,6 @@ }, { "$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. `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" - } - }, - { - "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" - ] - } - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -62254,48 +61644,43 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/pull-request-simple" - } + "$ref": "#/components/schemas/import" }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-simple-items" + "$ref": "#/components/examples/import" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "304": { - "$ref": "#/components/responses/not_modified" + "404": { + "$ref": "#/components/responses/not_found" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "503": { + "$ref": "#/components/responses/porter_maintenance" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pulls", - "subcategory": "pulls" - } + "category": "migrations", + "subcategory": "source-imports", + "deprecationDate": "2023-10-12", + "removalDate": "2024-04-12" + }, + "deprecated": true }, - "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`.", + "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": [ - "pulls" + "migrations" ], - "operationId": "pulls/create", + "operationId": "migrations/start-import", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/pulls#create-a-pull-request" + "url": "https://docs.github.com/rest/migrations/source-imports#start-an-import" }, "parameters": [ { @@ -62312,55 +61697,44 @@ "schema": { "type": "object", "properties": { - "title": { + "vcs_url": { "type": "string", - "description": "The title of the new pull request. Required unless `issue` is specified." + "description": "The URL of the originating repository." }, - "head": { + "vcs": { "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`." + "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" + ] }, - "head_repo": { + "vcs_username": { "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" + "description": "If authentication is required, the username to provide to `vcs_url`." }, - "base": { + "vcs_password": { "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." + "description": "If authentication is required, the password to provide to `vcs_url`." }, - "body": { + "tfvc_project": { "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." + "description": "For a tfvc import, the name of the project that is being imported." } }, "required": [ - "head", - "base" + "vcs_url" ] }, "examples": { "default": { "value": { - "title": "Amazing new feature", - "body": "Please pull these awesome changes in!", - "head": "octocat:new-feature", - "base": "master" + "vcs": "subversion", + "vcs_url": "http://svn.example.com/svn/myproject", + "vcs_username": "octocat", + "vcs_password": "secret" } } } @@ -62373,51 +61747,54 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request" + "$ref": "#/components/schemas/import" }, "examples": { "default": { - "$ref": "#/components/examples/pull-request" + "$ref": "#/components/examples/import-2" } } } }, "headers": { "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347", + "example": "https://api.github.com/repos/spraints/socm/import", "schema": { "type": "string" } } } }, - "403": { - "$ref": "#/components/responses/forbidden" - }, "422": { "$ref": "#/components/responses/validation_failed" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/porter_maintenance" } }, "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`.", + "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": [ - "pulls" + "migrations" ], - "operationId": "pulls/list-review-comments-for-repo", + "operationId": "migrations/update-import", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/comments#list-review-comments-in-a-repository" + "url": "https://docs.github.com/rest/migrations/source-imports#update-an-import" }, "parameters": [ { @@ -62425,87 +61802,150 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "name": "sort", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "created", - "updated", - "created_at" - ] - } - }, - { - "name": "direction", - "description": "The direction to sort results. 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" } ], + "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": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/pull-request-review-comment" - } + "$ref": "#/components/schemas/import" }, "examples": { - "default": { - "$ref": "#/components/examples/pull-request-review-comment-items" + "example-1": { + "$ref": "#/components/examples/import-example-1" + }, + "example-2": { + "$ref": "#/components/examples/import-example-2" + }, + "example-3": { + "$ref": "#/components/examples/import-response" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "503": { + "$ref": "#/components/responses/porter_maintenance" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pulls", - "subcategory": "comments" - } + "category": "migrations", + "subcategory": "source-imports", + "deprecationDate": "2023-10-12", + "removalDate": "2024-04-12" + }, + "deprecated": true + }, + "delete": { + "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": [ + "migrations" + ], + "operationId": "migrations/cancel-import", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/migrations/source-imports#cancel-an-import" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "204": { + "description": "Response" + }, + "503": { + "$ref": "#/components/responses/porter_maintenance" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "migrations", + "subcategory": "source-imports", + "deprecationDate": "2023-10-12", + "removalDate": "2024-04-12" + }, + "deprecated": true } }, - "/repos/{owner}/{repo}/pulls/comments/{comment_id}": { + "/repos/{owner}/{repo}/import/authors": { "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`.", + "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": [ - "pulls" + "migrations" ], - "operationId": "pulls/get-review-comment", + "operationId": "migrations/get-commit-authors", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request" + "url": "https://docs.github.com/rest/migrations/source-imports#get-commit-authors" }, "parameters": [ { @@ -62515,7 +61955,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/comment-id" + "$ref": "#/components/parameters/since-user" } ], "responses": { @@ -62524,11 +61964,14 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-review-comment" + "type": "array", + "items": { + "$ref": "#/components/schemas/porter-author" + } }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-review-comment-2" + "$ref": "#/components/examples/porter-author-items" } } } @@ -62536,25 +61979,33 @@ }, "404": { "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/porter_maintenance" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pulls", - "subcategory": "comments" - } - }, + "category": "migrations", + "subcategory": "source-imports", + "deprecationDate": "2023-10-12", + "removalDate": "2024-04-12" + }, + "deprecated": true + } + }, + "/repos/{owner}/{repo}/import/authors/{author_id}": { "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`.", + "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": [ - "pulls" + "migrations" ], - "operationId": "pulls/update-review-comment", + "operationId": "migrations/map-commit-author", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/comments#update-a-review-comment-for-a-pull-request" + "url": "https://docs.github.com/rest/migrations/source-imports#map-a-commit-author" }, "parameters": [ { @@ -62564,29 +62015,37 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/comment-id" + "name": "author_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { - "body": { + "email": { "type": "string", - "description": "The text of the reply to the review comment." + "description": "The new Git author email." + }, + "name": { + "type": "string", + "description": "The new Git author name." } }, - "required": [ - "body" - ] + "additionalProperties": false }, "examples": { "default": { "value": { - "body": "I like this too!" + "email": "hubot@github.com", + "name": "Hubot the Robot" } } } @@ -62599,73 +62058,48 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-review-comment" + "$ref": "#/components/schemas/porter-author" }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-review-comment-2" + "$ref": "#/components/examples/porter-author" } } } } - } - }, - "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" }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/comment-id" - } - ], - "responses": { - "204": { - "description": "Response" + "422": { + "$ref": "#/components/responses/validation_failed" }, "404": { "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/porter_maintenance" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pulls", - "subcategory": "comments" - } + "category": "migrations", + "subcategory": "source-imports", + "deprecationDate": "2023-10-12", + "removalDate": "2024-04-12" + }, + "deprecated": true } }, - "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": { + "/repos/{owner}/{repo}/import/large_files": { "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).", + "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": [ - "reactions" + "migrations" ], - "operationId": "reactions/list-for-pull-request-review-comment", + "operationId": "migrations/get-large-files", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-pull-request-review-comment" + "url": "https://docs.github.com/rest/migrations/source-imports#get-large-files" }, "parameters": [ { @@ -62673,34 +62107,6 @@ }, { "$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 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" } ], "responses": { @@ -62711,43 +62117,43 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/reaction" + "$ref": "#/components/schemas/porter-large-file" } }, "examples": { "default": { - "$ref": "#/components/examples/reaction-items" + "$ref": "#/components/examples/porter-large-file-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "404": { - "$ref": "#/components/responses/not_found" + "503": { + "$ref": "#/components/responses/porter_maintenance" } }, "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.", + "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": [ - "reactions" + "migrations" ], - "operationId": "reactions/create-for-pull-request-review-comment", + "operationId": "migrations/set-lfs-preference", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-pull-request-review-comment" + "url": "https://docs.github.com/rest/migrations/source-imports#update-git-lfs-preference" }, "parameters": [ { @@ -62755,9 +62161,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/comment-id" } ], "requestBody": { @@ -62767,29 +62170,23 @@ "schema": { "type": "object", "properties": { - "content": { + "use_lfs": { "type": "string", - "description": "The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the pull request review comment.", + "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": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" + "opt_in", + "opt_out" ] } }, "required": [ - "content" + "use_lfs" ] }, "examples": { "default": { "value": { - "content": "heart" + "use_lfs": "opt_in" } } } @@ -62798,30 +62195,15 @@ }, "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/import" }, "examples": { "default": { - "$ref": "#/components/examples/reaction" + "$ref": "#/components/examples/import" } } } @@ -62829,27 +62211,33 @@ }, "422": { "$ref": "#/components/responses/validation_failed" + }, + "503": { + "$ref": "#/components/responses/porter_maintenance" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "reactions", - "subcategory": "reactions" - } + "category": "migrations", + "subcategory": "source-imports", + "deprecationDate": "2023-10-12", + "removalDate": "2024-04-12" + }, + "deprecated": true } }, - "/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).", + "/repos/{owner}/{repo}/installation": { + "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.", "tags": [ - "reactions" + "apps" ], - "operationId": "reactions/delete-for-pull-request-comment", + "operationId": "apps/get-repo-installation", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reactions/reactions#delete-a-pull-request-comment-reaction" + "url": "https://docs.github.com/rest/apps/apps#get-a-repository-installation-for-the-authenticated-app" }, "parameters": [ { @@ -62857,38 +62245,50 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/comment-id" - }, - { - "$ref": "#/components/parameters/reaction-id" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/installation" + }, + "examples": { + "default": { + "$ref": "#/components/examples/installation" + } + } + } + } + }, + "301": { + "$ref": "#/components/responses/moved_permanently" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "reactions", - "subcategory": "reactions" + "enabledForGitHubApps": false, + "category": "apps", + "subcategory": "apps" } } }, - "/repos/{owner}/{repo}/pulls/{pull_number}": { + "/repos/{owner}/{repo}/interaction-limits": { "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.", + "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": [ - "pulls" + "interactions" ], - "operationId": "pulls/get", + "operationId": "interactions/get-restrictions-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/pulls#get-a-pull-request" + "url": "https://docs.github.com/rest/interactions/repos#get-interaction-restrictions-for-a-repository" }, "parameters": [ { @@ -62896,60 +62296,51 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$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.", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request" + "anyOf": [ + { + "$ref": "#/components/schemas/interaction-limit-response" + }, + { + "type": "object", + "properties": {}, + "additionalProperties": false + } + ] }, "examples": { "default": { - "$ref": "#/components/examples/pull-request" + "$ref": "#/components/examples/interaction-limit-2" } } } } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "406": { - "$ref": "#/components/responses/unacceptable" - }, - "500": { - "$ref": "#/components/responses/internal_error" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pulls", - "subcategory": "pulls" + "category": "interactions", + "subcategory": "repos" } }, - "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`.", + "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.", "tags": [ - "pulls" + "interactions" ], - "operationId": "pulls/update", + "operationId": "interactions/set-restrictions-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/pulls#update-a-pull-request" + "url": "https://docs.github.com/rest/interactions/repos#set-interaction-restrictions-for-a-repository" }, "parameters": [ { @@ -62957,51 +62348,21 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/pull-number" } ], "requestBody": { - "required": false, + "required": true, "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://docs.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) the pull request." - } - } + "$ref": "#/components/schemas/interaction-limit" }, "examples": { "default": { + "summary": "Example request body", "value": { - "title": "new title", - "body": "updated body", - "state": "open", - "base": "master" + "limit": "collaborators_only", + "expiry": "one_day" } } } @@ -63014,42 +62375,37 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request" + "$ref": "#/components/schemas/interaction-limit-response" }, "examples": { "default": { - "$ref": "#/components/examples/pull-request" + "$ref": "#/components/examples/interaction-limit-2" } } } } }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "409": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pulls", - "subcategory": "pulls" + "category": "interactions", + "subcategory": "repos" } - } - }, - "/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.", + }, + "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.", "tags": [ - "codespaces" + "interactions" ], - "operationId": "codespaces/create-with-pr-for-authenticated-user", + "operationId": "interactions/remove-restrictions-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-from-a-pull-request" + "url": "https://docs.github.com/rest/interactions/repos#remove-interaction-restrictions-for-a-repository" }, "parameters": [ { @@ -63057,141 +62413,35 @@ }, { "$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" - }, - "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" - } - } - }, - "examples": { - "default": { - "value": { - "repository_id": 1, - "ref": "main" - } - } - } - } - } - }, "responses": { - "201": { - "description": "Response when the codespace was successfully created", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/codespace" - }, - "examples": { - "default": { - "$ref": "#/components/examples/codespace" - } - } - } - } - }, - "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" - } - } - } - } - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" + "204": { + "description": "Response" }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "409": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "codespaces" + "enabledForGitHubApps": true, + "category": "interactions", + "subcategory": "repos" } } }, - "/repos/{owner}/{repo}/pulls/{pull_number}/comments": { + "/repos/{owner}/{repo}/interaction-limits/pulls/bypass-list": { "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`.", + "summary": "Get pull request creation cap bypass list for a repository", + "description": "Lists the users that are on the pull request creation cap bypass list for a\nrepository. Users on this list can create pull requests regardless of any\nconfigured pull request creation cap.\n\nOnly users with maintainer permissions can view the bypass list.", "tags": [ - "pulls" + "interactions" ], - "operationId": "pulls/list-review-comments", + "operationId": "interactions/get-pull-request-bypass-list-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/comments#list-review-comments-on-a-pull-request" + "url": "https://docs.github.com/rest/interactions/repos#get-pull-request-creation-cap-bypass-list-for-a-repository" }, "parameters": [ { @@ -63199,34 +62449,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/pull-number" - }, - { - "$ref": "#/components/parameters/sort" - }, - { - "name": "direction", - "description": "The direction to sort results. 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" } ], "responses": { @@ -63237,40 +62459,41 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/pull-request-review-comment" + "$ref": "#/components/schemas/simple-user" } }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-review-comment-items" + "$ref": "#/components/examples/pull-request-bypass-list-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pulls", - "subcategory": "comments" + "category": "interactions", + "subcategory": "repos" } }, - "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`.", + "put": { + "summary": "Add users to the pull request creation cap bypass list for a repository", + "description": "Adds users to the pull request creation cap bypass list for a repository.\nUsers on this list can create pull requests regardless of any configured\npull request creation cap.\n\nOnly users with maintainer permissions can modify the bypass list.\nYou can add a maximum of 100 users per request.\nThe bypass list can only hold a maximum of 100 users.", "tags": [ - "pulls" + "interactions" ], - "operationId": "pulls/create-review-comment", + "operationId": "interactions/set-pull-request-bypass-list-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/comments#create-a-review-comment-for-a-pull-request" + "url": "https://docs.github.com/rest/interactions/repos#add-users-to-the-pull-request-creation-cap-bypass-list-for-a-repository" }, "parameters": [ { @@ -63278,9 +62501,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/pull-number" } ], "requestBody": { @@ -63288,84 +62508,16 @@ "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" - ] + "$ref": "#/components/schemas/interaction-limit-pull-request-bypass-list" }, "examples": { - "example-for-a-multi-line-comment": { - "summary": "Example for a multi-line comment", + "default": { + "summary": "Example request body", "value": { - "body": "Great stuff!", - "commit_id": "6dcb09b5b57875f334f61aebed695e2e4193db5e", - "path": "file1.txt", - "start_line": 1, - "start_side": "RIGHT", - "line": 2, - "side": "RIGHT" + "users": [ + "octocat", + "monalisa" + ] } } } @@ -63373,56 +62525,36 @@ } }, "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" - } - } - } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1", - "schema": { - "type": "string" - } - } - } - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "204": { + "description": "Response" }, "403": { "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pulls", - "subcategory": "comments" + "category": "interactions", + "subcategory": "repos" } - } - }, - "/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`.", + }, + "delete": { + "summary": "Remove users from the pull request creation cap bypass list for a repository", + "description": "Removes users from the pull request creation cap bypass list for a repository.\nRemoved users will be subject to any configured pull request creation cap.\n\nOnly users with maintainer permissions can modify the bypass list.\nYou can remove a maximum of 100 users per request.", "tags": [ - "pulls" + "interactions" ], - "operationId": "pulls/create-reply-for-review-comment", + "operationId": "interactions/remove-pull-request-bypass-list-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/comments#create-a-reply-for-a-review-comment" + "url": "https://docs.github.com/rest/interactions/repos#remove-users-from-the-pull-request-creation-cap-bypass-list-for-a-repository" }, "parameters": [ { @@ -63430,12 +62562,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/pull-number" - }, - { - "$ref": "#/components/parameters/comment-id" } ], "requestBody": { @@ -63443,21 +62569,15 @@ "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "body": { - "type": "string", - "description": "The text of the review comment." - } - }, - "required": [ - "body" - ] + "$ref": "#/components/schemas/interaction-limit-pull-request-bypass-list" }, "examples": { "default": { + "summary": "Example request body", "value": { - "body": "Great stuff!" + "users": [ + "octocat" + ] } } } @@ -63465,53 +62585,38 @@ } }, "responses": { - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/pull-request-review-comment" - }, - "examples": { - "default": { - "$ref": "#/components/examples/pull-request-review-comment" - } - } - } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1", - "schema": { - "type": "string" - } - } - } + "204": { + "description": "Response" + }, + "403": { + "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "pulls", - "subcategory": "comments" + "enabledForGitHubApps": true, + "category": "interactions", + "subcategory": "repos" } } }, - "/repos/{owner}/{repo}/pulls/{pull_number}/commits": { + "/repos/{owner}/{repo}/interaction-limits/pulls/creation-cap": { "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`.", + "summary": "Get pull request creation cap for a repository", + "description": "Gets the pull request creation cap configuration for a repository.\nThe cap limits the number of open pull requests a user can have at one time.\n\nOnly users with admin access to the repository can view the cap configuration.", "tags": [ - "pulls" + "interactions" ], - "operationId": "pulls/list-commits", + "operationId": "interactions/get-pull-request-creation-cap-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/pulls#list-commits-on-a-pull-request" + "url": "https://docs.github.com/rest/interactions/repos#get-pull-request-creation-cap-for-a-repository" }, "parameters": [ { @@ -63519,15 +62624,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/pull-number" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -63536,152 +62632,70 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/commit" - } + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether the pull request creation cap is enabled" + }, + "max_open_pull_requests": { + "type": "integer", + "description": "The maximum number of open pull requests a user can have at one time", + "minimum": 1, + "maximum": 1000 + } + }, + "required": [ + "enabled", + "max_open_pull_requests" + ] }, "examples": { "default": { - "$ref": "#/components/examples/commit-items" + "summary": "Response when cap is enabled", + "value": { + "enabled": true, + "max_open_pull_requests": 1 + } } } } - }, - "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" }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/pull-number" + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "$ref": "#/components/parameters/per-page" + "404": { + "$ref": "#/components/responses/not_found" }, - { - "$ref": "#/components/parameters/page" - } - ], - "responses": { - "200": { - "description": "Response", + "405": { + "description": "Method Not Allowed", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/diff-entry" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/diff-entry-items" - } + "$ref": "#/components/schemas/basic-error" } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "500": { - "$ref": "#/components/responses/internal_error" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" - } - }, - "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" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/pull-number" - } - ], - "responses": { - "204": { - "description": "Response if pull request has been merged" - }, - "404": { - "description": "Not Found if pull request has not been merged" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pulls", - "subcategory": "pulls" + "category": "interactions", + "subcategory": "repos" } }, - "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).\"", + "patch": { + "summary": "Update pull request creation cap for a repository", + "description": "Updates the pull request creation cap for a repository. The cap limits the number\nof open pull requests a user can have at one time.\n\nOnly users with admin access to the repository can configure the cap.", "tags": [ - "pulls" + "interactions" ], - "operationId": "pulls/merge", + "operationId": "interactions/update-pull-request-creation-cap-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/pulls#merge-a-pull-request" + "url": "https://docs.github.com/rest/interactions/repos#update-pull-request-creation-cap-for-a-repository" }, "parameters": [ { @@ -63689,47 +62703,36 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/pull-number" } ], "requestBody": { - "required": false, + "required": true, "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." + "enabled": { + "type": "boolean", + "description": "Whether the pull request creation cap is enabled" }, - "merge_method": { - "type": "string", - "description": "The merge method to use.", - "enum": [ - "merge", - "squash", - "rebase" - ] + "max_open_pull_requests": { + "type": "integer", + "description": "The maximum number of open pull requests a user can have at one time", + "minimum": 1, + "maximum": 1000 } - } + }, + "required": [ + "enabled" + ] }, "examples": { - "response-if-merge-was-successful": { + "default": { + "summary": "Example request body", "value": { - "commit_title": "Expand enum", - "commit_message": "Add a new value to the merge_method enum" + "enabled": true, + "max_open_pull_requests": 1 } } } @@ -63738,100 +62741,79 @@ }, "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" - } - } - } - } - }, - "405": { - "description": "Method Not Allowed if merge cannot be performed", + "description": "Response", "content": { "application/json": { "schema": { "type": "object", "properties": { - "message": { - "type": "string" + "enabled": { + "type": "boolean", + "description": "Whether the pull request creation cap is enabled" }, - "documentation_url": { - "type": "string" + "max_open_pull_requests": { + "type": "integer", + "description": "The maximum number of open pull requests a user can have at one time", + "minimum": 1, + "maximum": 1000 } - } + }, + "required": [ + "enabled", + "max_open_pull_requests" + ] }, "examples": { - "response-if-merge-cannot-be-performed": { + "default": { + "summary": "Response", "value": { - "message": "Pull Request is not mergeable" + "enabled": true, + "max_open_pull_requests": 1 } } } } } }, - "409": { - "description": "Conflict if sha was provided and pull request head did not match", + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "405": { + "description": "Method Not Allowed", "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." - } - } + "$ref": "#/components/schemas/basic-error" } } } }, "422": { "$ref": "#/components/responses/validation_failed" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pulls", - "subcategory": "pulls" + "category": "interactions", + "subcategory": "repos" } } }, - "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": { + "/repos/{owner}/{repo}/invitations": { "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.", + "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": [ - "pulls" + "repos" ], - "operationId": "pulls/list-requested-reviewers", + "operationId": "repos/list-invitations", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/review-requests#get-all-requested-reviewers-for-a-pull-request" + "url": "https://docs.github.com/rest/collaborators/invitations#list-repository-invitations" }, "parameters": [ { @@ -63841,7 +62823,10 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -63850,11 +62835,14 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-review-request" + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-invitation" + } }, "examples": { "default": { - "$ref": "#/components/examples/simple-pull-request-review-request" + "$ref": "#/components/examples/repository-invitation-items" } } } @@ -63869,20 +62857,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pulls", - "subcategory": "review-requests" + "category": "collaborators", + "subcategory": "invitations" } - }, - "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).\"", + } + }, + "/repos/{owner}/{repo}/invitations/{invitation_id}": { + "patch": { + "summary": "Update a repository invitation", + "description": "", "tags": [ - "pulls" + "repos" ], - "operationId": "pulls/request-reviewers", + "operationId": "repos/update-invitation", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/review-requests#request-reviewers-for-a-pull-request" + "url": "https://docs.github.com/rest/collaborators/invitations#update-a-repository-invitation" }, "parameters": [ { @@ -63892,7 +62882,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" + "$ref": "#/components/parameters/invitation-id" } ], "requestBody": { @@ -63902,45 +62892,24 @@ "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" + "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": { - "reviewers": [ - "octocat", - "hubot", - "other_user" - ], - "team_reviewers": [ - "justice-league" - ] + "permissions": "write" } } } @@ -63948,46 +62917,39 @@ } }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-simple" + "$ref": "#/components/schemas/repository-invitation" }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-review-request" + "$ref": "#/components/examples/repository-invitation" } } } } - }, - "422": { - "description": "Unprocessable Entity if user is not a collaborator" - }, - "403": { - "$ref": "#/components/responses/forbidden" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pulls", - "subcategory": "review-requests" + "category": "collaborators", + "subcategory": "invitations" } }, "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.", + "summary": "Delete a repository invitation", + "description": "", "tags": [ - "pulls" + "repos" ], - "operationId": "pulls/remove-requested-reviewers", + "operationId": "repos/delete-invitation", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/review-requests#remove-requested-reviewers-from-a-pull-request" + "url": "https://docs.github.com/rest/collaborators/invitations#delete-a-repository-invitation" }, "parameters": [ { @@ -63997,91 +62959,33 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" + "$ref": "#/components/parameters/invitation-id" } ], - "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" - } - } - }, - "required": [ - "reviewers" - ] - }, - "examples": { - "default": { - "value": { - "reviewers": [ - "octocat", - "hubot", - "other_user" - ], - "team_reviewers": [ - "justice-league" - ] - } - } - } - } - } - }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/pull-request-simple" - }, - "examples": { - "default": { - "$ref": "#/components/examples/pull-request-simple" - } - } - } - } - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pulls", - "subcategory": "review-requests" + "category": "collaborators", + "subcategory": "invitations" } } }, - "/repos/{owner}/{repo}/pulls/{pull_number}/reviews": { + "/repos/{owner}/{repo}/issue-types": { "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`.", + "summary": "List issue types for a repository", + "description": "Lists issue types available for a repository (inherited from its organization owner, with any per-repository overrides applied).\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.\nFine-grained access tokens require the \"Metadata\" repository permission (read).", "tags": [ - "pulls" + "repos" ], - "operationId": "pulls/list-reviews", + "operationId": "repos/list-issue-types", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request" + "url": "https://docs.github.com/rest/repos/issue-types#list-issue-types-for-a-repository" }, "parameters": [ { @@ -64089,59 +62993,50 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/pull-number" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { "200": { - "description": "The list of reviews returns in chronological order.", + "description": "Response", "content": { "application/json": { "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/pull-request-review" + "$ref": "#/components/schemas/issue-type" } }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-review-items" + "$ref": "#/components/examples/issue-type-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pulls", - "subcategory": "reviews" + "category": "repos", + "subcategory": "issue-types" } - }, - "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`.", + } + }, + "/repos/{owner}/{repo}/issues": { + "get": { + "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": [ - "pulls" + "issues" ], - "operationId": "pulls/create-review", + "operationId": "issues/list-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request" + "url": "https://docs.github.com/rest/issues/issues#list-repository-issues" }, "parameters": [ { @@ -64151,151 +63046,103 @@ "$ref": "#/components/parameters/repo" }, { - "$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." - } - ] - } - } - } + "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" } - } - }, - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/pull-request-review" - }, - "examples": { - "default": { - "$ref": "#/components/examples/pull-request-review" - } - } - } + }, + { + "name": "state", + "description": "Indicates the state of the issues to return.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "open", + "closed", + "all" + ], + "default": "open" } }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" + { + "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" + } }, - "403": { - "$ref": "#/components/responses/forbidden" - } - }, - "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" + "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" + } }, { - "$ref": "#/components/parameters/repo" + "name": "creator", + "description": "The user that created the issue.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } }, { - "$ref": "#/components/parameters/pull-number" + "name": "mentioned", + "description": "A user that's mentioned in the issue.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } }, { - "$ref": "#/components/parameters/review-id" + "name": "issue_field_values", + "description": "A comma-separated list of issue field filters in `field_slug:value` format.\nOnly issues matching all specified field values are returned.\nRequires issue fields to be enabled for the repository. Issue fields are\nnot available for user-owned repositories, and field availability for\norganization-owned public repositories depends on the organization's\nvisibility settings. For example, `priority:Urgent,severity:High` filters\nissues where the `priority` field is `Urgent` AND the `severity` field is\n`High`.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } + }, + { + "$ref": "#/components/parameters/labels" + }, + { + "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": { @@ -64304,16 +63151,30 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-review" + "type": "array", + "items": { + "$ref": "#/components/schemas/issue" + } }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-review-4" + "$ref": "#/components/examples/issue-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" } @@ -64321,20 +63182,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pulls", - "subcategory": "reviews" + "category": "issues", + "subcategory": "issues" } }, - "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`.", + "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": [ - "pulls" + "issues" ], - "operationId": "pulls/update-review", + "operationId": "issues/create", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/reviews#update-a-review-for-a-pull-request" + "url": "https://docs.github.com/rest/issues/issues#create-an-issue" }, "parameters": [ { @@ -64342,12 +63203,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/pull-number" - }, - { - "$ref": "#/components/parameters/review-id" } ], "requestBody": { @@ -64357,19 +63212,133 @@ "schema": { "type": "object", "properties": { + "title": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ], + "description": "The title of the issue." + }, "body": { "type": "string", - "description": "The body text of the pull request review." + "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" + } + }, + "issue_field_values": { + "type": "array", + "description": "An array of issue field values to set on this issue. Each field value must include the field ID and the value to set. Issue fields are only available for organization-owned repositories with the feature enabled. Field values are silently dropped otherwise.", + "items": { + "type": "object", + "properties": { + "field_id": { + "type": "integer", + "description": "The ID of the issue field to set" + }, + "value": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "description": "The value to set for the field. For multi-select fields, provide an array of option names." + } + }, + "required": [ + "field_id", + "value" + ], + "additionalProperties": false + } + }, + "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": [ - "body" + "title" ] }, "examples": { "default": { "value": { - "body": "This is close to perfect! Please address the suggested inline change. And add more about this." + "title": "Found a bug", + "body": "I'm having a problem with this.", + "assignees": [ + "octocat" + ], + "milestone": 1, + "labels": [ + "bug" + ] } } } @@ -64377,99 +63346,87 @@ } }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-review" + "$ref": "#/components/schemas/issue" }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-review-5" + "$ref": "#/components/examples/issue" } } } - } - }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "pulls", - "subcategory": "reviews" - } - }, - "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" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/pull-number" - }, - { - "$ref": "#/components/parameters/review-id" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347", "schema": { - "$ref": "#/components/schemas/pull-request-review" - }, - "examples": { - "default": { - "$ref": "#/components/examples/pull-request-review" - } + "type": "string" } } } }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "422": { - "$ref": "#/components/responses/validation_failed_simple" + "$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, - "category": "pulls", - "subcategory": "reviews" - } + "category": "issues", + "subcategory": "issues" + }, + "x-github-breaking-changes": [ + { + "changeset": "remove_singular_assignee_from_issues_and_pull_requests", + "patch": { + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "assignee": null + } + } + } + } + } + }, + "version": "2026-03-10" + } + ] } }, - "/repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments": { + "/repos/{owner}/{repo}/issues/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`.", + "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": [ - "pulls" + "issues" ], - "operationId": "pulls/list-comments-for-review", + "operationId": "issues/list-comments-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/reviews#list-comments-for-a-pull-request-review" + "url": "https://docs.github.com/rest/issues/comments#list-issue-comments-for-a-repository" }, "parameters": [ { @@ -64479,10 +63436,23 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" + "$ref": "#/components/parameters/sort" }, { - "$ref": "#/components/parameters/review-id" + "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" @@ -64499,12 +63469,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/review-comment" + "$ref": "#/components/schemas/issue-comment" } }, "examples": { "default": { - "$ref": "#/components/examples/review-comment-items" + "$ref": "#/components/examples/issue-comment-items" } } } @@ -64515,6 +63485,9 @@ } } }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, "404": { "$ref": "#/components/responses/not_found" } @@ -64522,22 +63495,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pulls", - "subcategory": "reviews" + "category": "issues", + "subcategory": "comments" } } }, - "/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`.", + "/repos/{owner}/{repo}/issues/comments/{comment_id}": { + "get": { + "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": [ - "pulls" + "issues" ], - "operationId": "pulls/dismiss-review", + "operationId": "issues/get-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/reviews#dismiss-a-review-for-a-pull-request" + "url": "https://docs.github.com/rest/issues/comments#get-an-issue-comment" }, "parameters": [ { @@ -64547,57 +63520,20 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" - }, - { - "$ref": "#/components/parameters/review-id" + "$ref": "#/components/parameters/comment-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" - } - } - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-review" + "$ref": "#/components/schemas/issue-comment" }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-review-3" + "$ref": "#/components/examples/issue-comment" } } } @@ -64605,30 +63541,25 @@ }, "404": { "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pulls", - "subcategory": "reviews" + "category": "issues", + "subcategory": "comments" } - } - }, - "/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`.", + }, + "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": [ - "pulls" + "issues" ], - "operationId": "pulls/submit-review", + "operationId": "issues/update-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request" + "url": "https://docs.github.com/rest/issues/comments#update-an-issue-comment" }, "parameters": [ { @@ -64638,10 +63569,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" - }, - { - "$ref": "#/components/parameters/review-id" + "$ref": "#/components/parameters/comment-id" } ], "requestBody": { @@ -64653,27 +63581,17 @@ "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" - ] + "description": "The contents of the comment." } }, "required": [ - "event" + "body" ] }, "examples": { "default": { "value": { - "body": "Here is the body for the review.", - "event": "REQUEST_CHANGES" + "body": "Me too" } } } @@ -64686,45 +63604,37 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/pull-request-review" + "$ref": "#/components/schemas/issue-comment" }, "examples": { "default": { - "$ref": "#/components/examples/pull-request-review-4" + "$ref": "#/components/examples/issue-comment" } } } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, "422": { - "$ref": "#/components/responses/validation_failed_simple" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "pulls", - "subcategory": "reviews" + "category": "issues", + "subcategory": "comments" } - } - }, - "/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.", + }, + "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": [ - "pulls" + "issues" ], - "operationId": "pulls/update-branch", + "operationId": "issues/delete-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/pulls/pulls#update-a-pull-request-branch" + "url": "https://docs.github.com/rest/issues/comments#delete-an-issue-comment" }, "parameters": [ { @@ -64734,86 +63644,33 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pull-number" + "$ref": "#/components/parameters/comment-id" } ], - "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." - } - } - }, - "examples": { - "default": { - "value": { - "expected_head_sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" - } - } - } - } - } - }, "responses": { - "202": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "url": { - "type": "string" - } - } - }, - "examples": { - "default": { - "value": { - "message": "Updating pull request branch.", - "url": "https://github.com/repos/octocat/Hello-World/pulls/53" - } - } - } - } - } - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "pulls", - "subcategory": "pulls" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "comments" } } }, - "/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).", + "/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": [ - "repos" + "issues" ], - "operationId": "repos/get-readme", + "operationId": "issues/pin-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/contents#get-a-repository-readme" + "url": "https://docs.github.com/rest/issues/comments#pin-an-issue-comment" }, "parameters": [ { @@ -64823,13 +63680,7 @@ "$ref": "#/components/parameters/repo" }, { - "name": "ref", - "description": "The name of the commit/branch/tag. Default: the repository’s default branch.", - "in": "query", - "required": false, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/comment-id" } ], "responses": { @@ -64838,22 +63689,28 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/content-file" + "$ref": "#/components/schemas/issue-comment" }, "examples": { "default": { - "$ref": "#/components/examples/content-file" + "$ref": "#/components/examples/issue-comment-pinned" } } } } }, - "304": { - "$ref": "#/components/responses/not_modified" + "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" } @@ -64861,22 +63718,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "contents" + "category": "issues", + "subcategory": "comments" } - } - }, - "/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).", + }, + "delete": { + "summary": "Unpin an issue comment", + "description": "You can use the REST API to unpin comments on issues.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/get-readme-in-directory", + "operationId": "issues/unpin-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/contents#get-a-repository-readme-for-a-directory" + "url": "https://docs.github.com/rest/issues/comments#unpin-an-issue-comment" }, "parameters": [ { @@ -64886,67 +63741,48 @@ "$ref": "#/components/parameters/repo" }, { - "name": "dir", - "description": "The alternate path to look for a README file", - "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" - } + "$ref": "#/components/parameters/comment-id" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/content-file" - }, - "examples": { - "default": { - "$ref": "#/components/examples/content-file" - } - } - } - } + "204": { + "description": "Response" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" }, "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": true, - "category": "repos", - "subcategory": "contents" + "category": "issues", + "subcategory": "comments" } } }, - "/repos/{owner}/{repo}/releases": { + "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions": { "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.", + "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": [ - "repos" + "reactions" ], - "operationId": "repos/list-releases", + "operationId": "reactions/list-for-issue-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/releases/releases#list-releases" + "url": "https://docs.github.com/rest/reactions/reactions#list-reactions-for-an-issue-comment" }, "parameters": [ { @@ -64955,6 +63791,28 @@ { "$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" }, @@ -64970,12 +63828,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/release" + "$ref": "#/components/schemas/reaction" } }, "examples": { "default": { - "$ref": "#/components/examples/release-items" + "$ref": "#/components/examples/reaction-items" } } } @@ -64993,20 +63851,20 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "releases", - "subcategory": "releases" + "category": "reactions", + "subcategory": "reactions" } }, "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).\"", + "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": [ - "repos" + "reactions" ], - "operationId": "repos/create-release", + "operationId": "reactions/create-for-issue-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/releases/releases#create-a-release" + "url": "https://docs.github.com/rest/reactions/reactions#create-reaction-for-an-issue-comment" }, "parameters": [ { @@ -65014,6 +63872,9 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/comment-id" } ], "requestBody": { @@ -65023,66 +63884,29 @@ "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": { + "content": { "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.", + "description": "The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the issue comment.", "enum": [ - "true", - "false", - "legacy" - ], - "default": "true" + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] } }, "required": [ - "tag_name" + "content" ] }, "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 + "content": "heart" } } } @@ -65090,35 +63914,32 @@ } }, "responses": { - "201": { - "description": "Response", + "200": { + "description": "Reaction exists", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/release" + "$ref": "#/components/schemas/reaction" }, "examples": { "default": { - "$ref": "#/components/examples/release" + "$ref": "#/components/examples/reaction" } } } - }, - "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", + "201": { + "description": "Reaction created", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/basic-error" + "$ref": "#/components/schemas/reaction" + }, + "examples": { + "default": { + "$ref": "#/components/examples/reaction" + } } } } @@ -65128,25 +63949,63 @@ } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "releases", - "subcategory": "releases" + "category": "reactions", + "subcategory": "reactions" } } }, - "/repos/{owner}/{repo}/releases/assets/{asset_id}": { + "/repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}": { + "delete": { + "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": [ + "reactions" + ], + "operationId": "reactions/delete-for-issue-comment", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reactions/reactions#delete-an-issue-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, + "category": "reactions", + "subcategory": "reactions" + } + } + }, + "/repos/{owner}/{repo}/issues/events": { "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.", + "summary": "List issue events for a repository", + "description": "Lists events for a repository.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/get-release-asset", + "operationId": "issues/list-events-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/releases/assets#get-a-release-asset" + "url": "https://docs.github.com/rest/issues/events#list-issue-events-for-a-repository" }, "parameters": [ { @@ -65156,7 +64015,10 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/asset-id" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -65165,40 +64027,47 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/release-asset" + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-event" + } }, "examples": { "default": { - "$ref": "#/components/examples/release-asset" + "$ref": "#/components/examples/issue-event-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "302": { - "$ref": "#/components/responses/found" + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "releases", - "subcategory": "assets" + "category": "issues", + "subcategory": "events" } - }, - "patch": { - "summary": "Update a release asset", - "description": "Users with push access to the repository can edit a release asset.", + } + }, + "/repos/{owner}/{repo}/issues/events/{event_id}": { + "get": { + "summary": "Get an issue event", + "description": "Gets a single event by the event id.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/update-release-asset", + "operationId": "issues/get-event", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/releases/assets#update-a-release-asset" + "url": "https://docs.github.com/rest/issues/events#get-an-issue-event" }, "parameters": [ { @@ -65208,75 +64077,59 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/asset-id" + "name": "event_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "type": "object", - "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\"" - } - } - }, - "examples": { - "default": { - "value": { - "name": "foo-1.0.0-osx.zip", - "label": "Mac binary" - } - } - } - } - } - }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/release-asset" + "$ref": "#/components/schemas/issue-event" }, "examples": { "default": { - "$ref": "#/components/examples/release-asset" + "$ref": "#/components/examples/issue-event" } } } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "410": { + "$ref": "#/components/responses/gone" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "releases", - "subcategory": "assets" + "category": "issues", + "subcategory": "events" } - }, - "delete": { - "summary": "Delete a release asset", - "description": "", + } + }, + "/repos/{owner}/{repo}/issues/{issue_number}": { + "get": { + "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": [ - "repos" + "issues" ], - "operationId": "repos/delete-release-asset", + "operationId": "issues/get", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/releases/assets#delete-a-release-asset" + "url": "https://docs.github.com/rest/issues/issues#get-an-issue" }, "parameters": [ { @@ -65286,36 +64139,64 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/asset-id" + "$ref": "#/components/parameters/issue-number" } ], "responses": { - "204": { - "description": "Response" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/issue" + }, + "examples": { + "default": { + "summary": "Issue", + "value": { + "$ref": "#/components/examples/issue" + } + }, + "pinned_comment": { + "summary": "Issue with pinned comment", + "value": { + "$ref": "#/components/examples/issue-with-pinned-comment" + } + } + } + } + } + }, + "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, - "category": "releases", - "subcategory": "assets" + "category": "issues", + "subcategory": "issues" } - } - }, - "/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.", + }, + "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": [ - "repos" + "issues" ], - "operationId": "repos/generate-release-notes", + "operationId": "issues/update", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/releases/releases#generate-release-notes-content-for-a-release" + "url": "https://docs.github.com/rest/issues/issues#update-an-issue" }, "parameters": [ { @@ -65323,43 +64204,266 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" } ], "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { - "tag_name": { + "title": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ], + "description": "The title of the issue.", + "nullable": true + }, + "body": { "type": "string", - "description": "The tag name for the release. This can be an existing tag or a new one." + "description": "The contents of the issue.", + "nullable": true }, - "target_commitish": { + "assignee": { "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." + "nullable": true, + "description": "Username to assign to this issue. **This field is closing down.**" }, - "previous_tag_name": { + "state": { "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." + "description": "The open or closed state of the issue.", + "enum": [ + "open", + "closed" + ] }, - "configuration_file_path": { + "state_reason": { "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." + "enum": [ + "completed", + "not_planned", + "duplicate", + "reopened" + ], + "nullable": true, + "description": "The reason for the state change. Ignored unless `state` is changed.", + "example": "not_planned" + }, + "duplicate_issue_id": { + "type": "integer", + "description": "The ID of the issue to mark as the canonical duplicate when `state_reason` is `duplicate`. The issue must exist and be accessible to the authenticated user. Ignored when `state_reason` is not `duplicate`." + }, + "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 + }, + "rationale": { + "type": "string", + "description": "Optional reasoning for selecting this label." + }, + "suggest": { + "type": "boolean", + "description": "If `true`, the change is stored as a pending suggestion for human review rather than applied directly." + }, + "confidence": { + "type": "string", + "description": "The confidence level for this label choice.", + "enum": [ + "low", + "medium", + "high" + ] + } + } + } + ] + } + }, + "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": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "properties": { + "login": { + "type": "string" + }, + "rationale": { + "type": "string", + "description": "Optional reasoning for selecting this assignee." + }, + "suggest": { + "type": "boolean", + "description": "If `true`, the change is stored as a pending suggestion for human review rather than applied directly." + }, + "confidence": { + "type": "string", + "description": "The confidence level for this assignee choice.", + "enum": [ + "low", + "medium", + "high" + ] + } + } + } + ] + } + }, + "issue_field_values": { + "type": "array", + "description": "An array of issue field values to set on this issue. Each field value must include the field ID and the value to set. Only users with push access can set field values for issues", + "items": { + "type": "object", + "properties": { + "field_id": { + "type": "integer", + "description": "The ID of the issue field to set" + }, + "value": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "description": "The value to set for the field. For multi-select fields, provide an array of option names." + }, + "rationale": { + "type": "string", + "description": "Optional reasoning for setting this field value." + }, + "suggest": { + "type": "boolean", + "description": "If `true`, the change is stored as a pending suggestion for human review rather than applied directly." + }, + "confidence": { + "type": "string", + "description": "The confidence level for this field value choice.", + "enum": [ + "low", + "medium", + "high" + ] + } + }, + "required": [ + "field_id", + "value" + ], + "additionalProperties": false + } + }, + "type": { + "description": "The issue type to associate with this issue. Only users with push access can set the type for issues. Without push access to the repository, type changes are silently dropped.", + "nullable": true, + "oneOf": [ + { + "type": "string", + "description": "The name of the issue type.", + "example": "Epic" + }, + { + "type": "object", + "description": "The issue type with optional metadata.", + "properties": { + "value": { + "type": "string", + "description": "The name of the issue type to associate with this issue, or `null` to remove the current issue type.", + "nullable": true, + "example": "Epic" + }, + "rationale": { + "type": "string", + "description": "Optional reasoning for selecting this type." + }, + "suggest": { + "type": "boolean", + "description": "If `true`, the change is stored as a pending suggestion for human review rather than applied directly." + }, + "confidence": { + "type": "string", + "description": "The confidence level for this type choice.", + "enum": [ + "low", + "medium", + "high" + ] + } + } + } + ] } - }, - "required": [ - "tag_name" - ] + } }, "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" + "title": "Found a bug", + "body": "I'm having a problem with this.", + "assignees": [ + "octocat" + ], + "milestone": 1, + "state": "open", + "labels": [ + "bug" + ] } } } @@ -65368,91 +64472,289 @@ }, "responses": { "200": { - "description": "Name and body of generated release notes", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/release-notes-content" + "allOf": [ + { + "$ref": "#/components/schemas/issue" + }, + { + "type": "object", + "properties": { + "suggestions": { + "type": "object", + "description": "Pending suggestions for each suggestible field (`type`,\n`issue_field_values`, `labels`, `assignees`, `state`) the\nrequest touched. Omitted for fields not in the request or\nwith no pending or ignored suggestions. Items tagged\n`ignored` are echoes of the current request's inputs that\nwere not persisted as pending suggestions.\n", + "properties": { + "type": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string" + }, + "rationale": { + "type": "string" + }, + "suggest": { + "type": "boolean" + }, + "confidence": { + "type": "string", + "enum": [ + "low", + "medium", + "high" + ] + }, + "ignored": { + "type": "boolean" + }, + "ignored_reason": { + "type": "string", + "enum": [ + "already_applied", + "issue_already_closed" + ] + } + } + } + }, + "issue_field_values": { + "type": "array", + "items": { + "type": "object", + "properties": { + "field_id": { + "type": "integer" + }, + "value": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] + }, + "rationale": { + "type": "string" + }, + "suggest": { + "type": "boolean" + }, + "confidence": { + "type": "string", + "enum": [ + "low", + "medium", + "high" + ] + }, + "ignored": { + "type": "boolean" + }, + "ignored_reason": { + "type": "string", + "enum": [ + "already_applied", + "issue_already_closed" + ] + } + } + } + }, + "labels": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "rationale": { + "type": "string" + }, + "suggest": { + "type": "boolean" + }, + "confidence": { + "type": "string", + "enum": [ + "low", + "medium", + "high" + ] + }, + "ignored": { + "type": "boolean" + }, + "ignored_reason": { + "type": "string", + "enum": [ + "already_applied", + "issue_already_closed" + ] + } + } + } + }, + "assignees": { + "type": "array", + "items": { + "type": "object", + "properties": { + "login": { + "type": "string" + }, + "rationale": { + "type": "string" + }, + "suggest": { + "type": "boolean" + }, + "confidence": { + "type": "string", + "enum": [ + "low", + "medium", + "high" + ] + }, + "ignored": { + "type": "boolean" + }, + "ignored_reason": { + "type": "string", + "enum": [ + "already_applied", + "issue_already_closed" + ] + } + } + } + }, + "state": { + "type": "array", + "items": { + "type": "object", + "properties": { + "value": { + "type": "string" + }, + "state_reason": { + "type": "string" + }, + "duplicate_issue_id": { + "type": "integer" + }, + "rationale": { + "type": "string" + }, + "suggest": { + "type": "boolean" + }, + "confidence": { + "type": "string", + "enum": [ + "low", + "medium", + "high" + ] + }, + "ignored": { + "type": "boolean" + }, + "ignored_reason": { + "type": "string", + "enum": [ + "already_applied", + "issue_already_closed" + ] + } + } + } + } + } + } + } + } + ] }, "examples": { "default": { - "$ref": "#/components/examples/release-notes-content" + "$ref": "#/components/examples/issue" } } } } }, + "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, - "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" + "category": "issues", + "subcategory": "issues" }, - "parameters": [ - { - "$ref": "#/components/parameters/owner" - }, + "x-github-breaking-changes": [ { - "$ref": "#/components/parameters/repo" - } - ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/release" - }, - "examples": { - "default": { - "$ref": "#/components/examples/release" + "changeset": "remove_singular_assignee_from_issues_and_pull_requests", + "patch": { + "requestBody": { + "content": { + "application/json": { + "schema": { + "properties": { + "assignee": null + } + } } } } - } - }, - "404": { - "$ref": "#/components/responses/not_found" + }, + "version": "2026-03-10" } - }, - "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.", + "/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.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/get-release-by-tag", + "operationId": "issues/add-assignees", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/releases/releases#get-a-release-by-tag-name" + "url": "https://docs.github.com/rest/issues/assignees#add-assignees-to-an-issue" }, "parameters": [ { @@ -65462,104 +64764,105 @@ "$ref": "#/components/parameters/repo" }, { - "name": "tag", - "description": "tag parameter", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "x-multi-segment": true + "$ref": "#/components/parameters/issue-number" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/release" - }, - "examples": { - "default": { - "$ref": "#/components/examples/release" + "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": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "properties": { + "login": { + "type": "string", + "description": "The login of the user to assign." + }, + "rationale": { + "type": "string", + "description": "Optional reasoning for adding this assignee." + }, + "suggest": { + "type": "boolean", + "description": "If `true`, the assignee is stored as a pending suggestion for human review rather than applied directly." + }, + "confidence": { + "type": "string", + "description": "The confidence level for this assignee choice.", + "enum": [ + "low", + "medium", + "high" + ] + } + }, + "required": [ + "login" + ] + } + ] + } + } + } + }, + "examples": { + "default": { + "value": { + "assignees": [ + "hubot", + "other_user" + ] } } } } - }, - "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" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "$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).\"", + "201": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/release" + "$ref": "#/components/schemas/issue" }, "examples": { "default": { - "$ref": "#/components/examples/release" + "$ref": "#/components/examples/issue" } } } } - }, - "401": { - "description": "Unauthorized" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "releases", - "subcategory": "releases" + "category": "issues", + "subcategory": "assignees" } }, - "patch": { - "summary": "Update a release", - "description": "Users with push access to the repository can edit a release.", + "delete": { + "summary": "Remove assignees from an issue", + "description": "Removes one or more assignees from an issue.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/update-release", + "operationId": "issues/remove-assignees", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/releases/releases#update-a-release" + "url": "https://docs.github.com/rest/issues/assignees#remove-assignees-from-an-issue" }, "parameters": [ { @@ -65569,65 +64872,31 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/release-id" + "$ref": "#/components/parameters/issue-number" } ], "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).\"" + "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" + } } } }, "examples": { "default": { "value": { - "tag_name": "v1.0.0", - "target_commitish": "master", - "name": "v1.0.0", - "body": "Description of the release", - "draft": false, - "prerelease": false + "assignees": [ + "hubot", + "other_user" + ] } } } @@ -65640,44 +64909,36 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/release" + "$ref": "#/components/schemas/issue" }, "examples": { "default": { - "$ref": "#/components/examples/release" + "$ref": "#/components/examples/issue" } } } } - }, - "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" + "category": "issues", + "subcategory": "assignees" } - }, - "delete": { - "summary": "Delete a release", - "description": "Users with push access to the repository can delete a release.", + } + }, + "/repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}": { + "get": { + "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": [ - "repos" + "issues" ], - "operationId": "repos/delete-release", + "operationId": "issues/check-user-can-be-assigned-to-issue", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/releases/releases#delete-a-release" + "url": "https://docs.github.com/rest/issues/assignees#check-if-a-user-can-be-assigned-to-a-issue" }, "parameters": [ { @@ -65687,36 +64948,51 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/release-id" + "$ref": "#/components/parameters/issue-number" + }, + { + "name": "assignee", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } ], "responses": { "204": { - "description": "Response" + "description": "Response if `assignee` can be assigned to `issue_number`" }, "404": { - "$ref": "#/components/responses/not_found" + "description": "Response if `assignee` can not be assigned to `issue_number`", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "releases", - "subcategory": "releases" + "category": "issues", + "subcategory": "assignees" } } }, - "/repos/{owner}/{repo}/releases/{release_id}/assets": { + "/repos/{owner}/{repo}/issues/{issue_number}/comments": { "get": { - "summary": "List release assets", - "description": "", + "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-release-assets", + "operationId": "issues/list-comments", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/releases/assets#list-release-assets" + "url": "https://docs.github.com/rest/issues/comments#list-issue-comments" }, "parameters": [ { @@ -65726,7 +65002,10 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/release-id" + "$ref": "#/components/parameters/issue-number" + }, + { + "$ref": "#/components/parameters/since" }, { "$ref": "#/components/parameters/per-page" @@ -65743,12 +65022,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/release-asset" + "$ref": "#/components/schemas/issue-comment" } }, "examples": { "default": { - "$ref": "#/components/examples/release-asset-items" + "$ref": "#/components/examples/issue-comment-items" } } } @@ -65758,32 +65037,32 @@ "$ref": "#/components/headers/link" } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "releases", - "subcategory": "assets" + "category": "issues", + "subcategory": "comments" } }, "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.", + "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/upload-release-asset", + "operationId": "issues/create-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/releases/assets#upload-a-release-asset" + "url": "https://docs.github.com/rest/issues/comments#create-an-issue-comment" }, - "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" @@ -65792,36 +65071,30 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/release-id" - }, - { - "name": "name", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "label", - "in": "query", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/issue-number" } ], "requestBody": { - "required": false, + "required": true, "content": { - "application/octet-stream": { + "application/json": { "schema": { - "type": "string", - "format": "binary", - "description": "The raw file data" + "type": "object", + "properties": { + "body": { + "type": "string", + "description": "The contents of the comment." + } + }, + "required": [ + "body" + ] }, "examples": { "default": { - "value": "@example.zip" + "value": { + "body": "Me too" + } } } } @@ -65829,43 +65102,61 @@ }, "responses": { "201": { - "description": "Response for successful upload", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/release-asset" + "$ref": "#/components/schemas/issue-comment" }, "examples": { - "response-for-successful-upload": { - "$ref": "#/components/examples/release-asset-response-for-successful-upload" + "default": { + "$ref": "#/components/examples/issue-comment" } } } + }, + "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": { - "description": "Response if you upload an asset with the same filename as another uploaded asset" + "$ref": "#/components/responses/validation_failed" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { + "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "releases", - "subcategory": "assets" + "category": "issues", + "subcategory": "comments" } } }, - "/repos/{owner}/{repo}/releases/{release_id}/reactions": { + "/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by": { "get": { - "summary": "List reactions for a release", - "description": "List the reactions to a [release](https://docs.github.com/rest/releases/releases#get-a-release).", + "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": [ - "reactions" + "issues" ], - "operationId": "reactions/list-for-release", + "operationId": "issues/list-dependencies-blocked-by", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-release" + "url": "https://docs.github.com/rest/issues/issue-dependencies#list-dependencies-an-issue-is-blocked-by" }, "parameters": [ { @@ -65875,24 +65166,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/release-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 release.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "+1", - "laugh", - "heart", - "hooray", - "rocket", - "eyes" - ] - } + "$ref": "#/components/parameters/issue-number" }, { "$ref": "#/components/parameters/per-page" @@ -65909,12 +65183,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/reaction" + "$ref": "#/components/schemas/issue" } }, "examples": { "default": { - "$ref": "#/components/examples/reaction-items" + "$ref": "#/components/examples/issue-items" } } } @@ -65925,27 +65199,33 @@ } } }, + "301": { + "$ref": "#/components/responses/moved_permanently" + }, "404": { "$ref": "#/components/responses/not_found" + }, + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "reactions", - "subcategory": "reactions" + "category": "issues", + "subcategory": "issue-dependencies" } }, "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.", + "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": [ - "reactions" + "issues" ], - "operationId": "reactions/create-for-release", + "operationId": "issues/add-blocked-by-dependency", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-release" + "url": "https://docs.github.com/rest/issues/issue-dependencies#add-a-dependency-an-issue-is-blocked-by" }, "parameters": [ { @@ -65955,7 +65235,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/release-id" + "$ref": "#/components/parameters/issue-number" } ], "requestBody": { @@ -65965,27 +65245,19 @@ "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" - ] + "issue_id": { + "type": "integer", + "description": "The id of the issue that blocks the current issue" } }, "required": [ - "content" + "issue_id" ] }, "examples": { "default": { "value": { - "content": "heart" + "issue_id": 1 } } } @@ -65993,59 +65265,65 @@ } }, "responses": { - "200": { - "description": "Reaction exists", + "201": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/reaction" + "$ref": "#/components/schemas/issue" }, "examples": { "default": { - "$ref": "#/components/examples/reaction" + "$ref": "#/components/examples/issue" } } } - } - }, - "201": { - "description": "Reaction created", - "content": { - "application/json": { + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1/dependencies/blocked_by", "schema": { - "$ref": "#/components/schemas/reaction" - }, - "examples": { - "default": { - "$ref": "#/components/examples/reaction" - } + "type": "string" } } } }, + "301": { + "$ref": "#/components/responses/moved_permanently" + }, + "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, - "category": "reactions", - "subcategory": "reactions" + "category": "issues", + "subcategory": "issue-dependencies" } } }, - "/repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}": { + "/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_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).", + "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": [ - "reactions" + "issues" ], - "operationId": "reactions/delete-for-release", + "operationId": "issues/remove-dependency-blocked-by", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/reactions/reactions#delete-a-release-reaction" + "url": "https://docs.github.com/rest/issues/issue-dependencies#remove-dependency-an-issue-is-blocked-by" }, "parameters": [ { @@ -66055,36 +65333,73 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/release-id" + "$ref": "#/components/parameters/issue-number" }, { - "$ref": "#/components/parameters/reaction-id" + "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" - } - }, - "x-github": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/issue" + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue" + } + } + } + } + }, + "301": { + "$ref": "#/components/responses/moved_permanently" + }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "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": true, - "category": "reactions", - "subcategory": "reactions" + "category": "issues", + "subcategory": "issue-dependencies" } } }, - "/repos/{owner}/{repo}/rules/branches/{branch}": { + "/repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking": { "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.", + "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": [ - "repos" + "issues" ], - "operationId": "repos/get-branch-rules", + "operationId": "issues/list-dependencies-blocking", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/rules#get-rules-for-a-branch" + "url": "https://docs.github.com/rest/issues/issue-dependencies#list-dependencies-an-issue-is-blocking" }, "parameters": [ { @@ -66094,7 +65409,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/branch" + "$ref": "#/components/parameters/issue-number" }, { "$ref": "#/components/parameters/per-page" @@ -66111,43 +65426,51 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/repository-rule-detailed" + "$ref": "#/components/schemas/issue" } }, "examples": { "default": { - "$ref": "#/components/examples/repository-rule-items" + "$ref": "#/components/examples/issue-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } + }, + "301": { + "$ref": "#/components/responses/moved_permanently" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "rules" + "category": "issues", + "subcategory": "issue-dependencies" } } }, - "/repos/{owner}/{repo}/rulesets": { + "/repos/{owner}/{repo}/issues/{issue_number}/events": { "get": { - "summary": "Get all repository rulesets", - "description": "Get all the rulesets for a repository.", + "summary": "List issue events", + "description": "Lists all events for an issue.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/get-repo-rulesets", + "operationId": "issues/list-events", "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" + "url": "https://docs.github.com/rest/issues/events#list-issue-events" }, "parameters": [ { @@ -66156,24 +65479,79 @@ { "$ref": "#/components/parameters/repo" }, + { + "$ref": "#/components/parameters/issue-number" + }, { "$ref": "#/components/parameters/per-page" }, { "$ref": "#/components/parameters/page" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "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" + } + } + }, + "410": { + "$ref": "#/components/responses/gone" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "events" + } + } + }, + "/repos/{owner}/{repo}/issues/{issue_number}/issue-field-values": { + "get": { + "summary": "List issue field values for an issue", + "description": "Lists all issue field values for an issue.", + "tags": [ + "issues" + ], + "operationId": "issues/list-issue-field-values-for-issue", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/issues/issue-field-values#list-issue-field-values-for-an-issue" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" }, { - "name": "includes_parents", - "description": "Include rulesets configured at higher levels that apply to this repository", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": true - } + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/ruleset-targets" + "$ref": "#/components/parameters/issue-number" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -66184,41 +65562,49 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/repository-ruleset" + "$ref": "#/components/schemas/issue-field-value" } }, "examples": { "default": { - "$ref": "#/components/examples/repository-ruleset-items" + "$ref": "#/components/examples/issue-field-value-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, + "301": { + "$ref": "#/components/responses/moved_permanently" + }, "404": { "$ref": "#/components/responses/not_found" }, - "500": { - "$ref": "#/components/responses/internal_error" + "410": { + "$ref": "#/components/responses/gone" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "issue-field-values" } }, "post": { - "summary": "Create a repository ruleset", - "description": "Create a ruleset for a repository.", + "summary": "Add issue field values to an issue", + "description": "Add custom field values to an issue. You can set values for organization-level issue fields that have been defined for the repository's organization.\nAdding an empty array will clear all existing field values for the issue.\n\nThis endpoint supports the following field data types:\n- **`text`**: String values for text fields\n- **`single_select`**: Option names for single-select fields (must match an existing option name)\n- **`number`**: Numeric values for number fields\n- **`date`**: ISO 8601 date strings for date fields\n\nOnly users with push access to the repository can add issue field values. If you don't have the proper permissions, you'll receive a `403 Forbidden` response.\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": [ - "repos" + "issues" ], - "operationId": "repos/create-repo-ruleset", + "operationId": "issues/add-issue-field-values", "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" + "url": "https://docs.github.com/rest/issues/issue-field-values#add-issue-field-values-to-an-issue" }, "parameters": [ { @@ -66226,87 +65612,88 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" } ], "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": { + "issue_field_values": { "type": "array", - "description": "An array of rules within the ruleset.", + "description": "An array of issue field values to add to this issue. Each field value must include the field ID and the value to set.", "items": { - "$ref": "#/components/schemas/repository-rule" - } + "type": "object", + "properties": { + "field_id": { + "type": "integer", + "description": "The ID of the issue field to set", + "example": 123 + }, + "value": { + "oneOf": [ + { + "type": "string", + "description": "The value to set for text, single_select, or date fields" + }, + { + "type": "number", + "description": "The value to set for number fields" + }, + { + "type": "array", + "items": { + "type": "string" + }, + "description": "The value to set for multi_select fields (array of option names)" + } + ], + "description": "The value to set for the field. The type depends on the field's data type:\n- For text fields: provide a string value\n- For single_select fields: provide the option name as a string (must match an existing option)\n- For number fields: provide a numeric value\n- For multi_select fields: provide an array of option names (must match existing options)\n- For date fields: provide an ISO 8601 date string", + "example": "Critical" + } + }, + "required": [ + "field_id", + "value" + ], + "additionalProperties": false + }, + "maxItems": 25 } - }, - "required": [ - "name", - "enforcement" - ] + } }, "examples": { "default": { + "summary": "Add multiple field values", "value": { - "name": "super cool ruleset", - "target": "branch", - "enforcement": "active", - "bypass_actors": [ + "issue_field_values": [ { - "actor_id": 234, - "actor_type": "Team", - "bypass_mode": "always" - } - ], - "conditions": { - "ref_name": { - "include": [ - "refs/heads/main", - "refs/heads/master" - ], - "exclude": [ - "refs/heads/dev*" - ] + "field_id": 123, + "value": "Critical" + }, + { + "field_id": 456, + "value": 5 + }, + { + "field_id": 789, + "value": "2024-12-31" } - }, - "rules": [ + ] + } + }, + "single-field": { + "summary": "Add a single field value", + "value": { + "issue_field_values": [ { - "type": "commit_author_email_pattern", - "parameters": { - "operator": "contains", - "pattern": "github" - } + "field_id": 123, + "value": "High Priority" } ] } @@ -66316,44 +65703,59 @@ } }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repository-ruleset" + "type": "array", + "description": "The current issue field values for this issue after adding the new values", + "items": { + "$ref": "#/components/schemas/issue-field-value" + } }, "examples": { "default": { - "$ref": "#/components/examples/repository-ruleset" + "$ref": "#/components/examples/issue-field-value-items" } } } } }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "404": { "$ref": "#/components/responses/not_found" }, "422": { "$ref": "#/components/responses/validation_failed" }, - "500": { - "$ref": "#/components/responses/internal_error" + "503": { + "$ref": "#/components/responses/service_unavailable" } + }, + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "issue-field-values" } - } - }, - "/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).\"", + }, + "put": { + "summary": "Set issue field values for an issue", + "description": "Set custom field values for an issue, replacing any existing values. You can set values for organization-level issue fields that have been defined for the repository's organization.\n\nThis endpoint supports the following field data types:\n- **`text`**: String values for text fields\n- **`single_select`**: Option names for single-select fields (must match an existing option name)\n- **`number`**: Numeric values for number fields\n- **`date`**: ISO 8601 date strings for date fields\n\nThis operation will replace all existing field values with the provided ones. If you want to add field values without replacing existing ones, use the `POST` endpoint instead.\n\nOnly users with push access to the repository can set issue field values. If you don't have the proper permissions, you'll receive a `403 Forbidden` response.\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": [ - "repos" + "issues" ], - "operationId": "repos/get-repo-rule-suites", + "operationId": "issues/set-issue-field-values", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/rule-suites#list-repository-rule-suites" + "url": "https://docs.github.com/rest/issues/issue-field-values#set-issue-field-values-for-an-issue" }, "parameters": [ { @@ -66363,66 +65765,195 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/ref-in-query" - }, - { - "$ref": "#/components/parameters/time-period" - }, - { - "$ref": "#/components/parameters/actor-name-in-query" - }, - { - "$ref": "#/components/parameters/rule-suite-result" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/issue-number" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "issue_field_values": { + "type": "array", + "description": "An array of issue field values to set for this issue. Each field value must include the field ID and the value to set. All existing field values will be replaced.", + "items": { + "type": "object", + "properties": { + "field_id": { + "type": "integer", + "description": "The ID of the issue field to set", + "example": 123 + }, + "value": { + "oneOf": [ + { + "type": "string", + "description": "The value to set for text, single_select, or date fields" + }, + { + "type": "number", + "description": "The value to set for number fields" + } + ], + "description": "The value to set for the field. The type depends on the field's data type:\n- For text fields: provide a string value\n- For single_select fields: provide the option name as a string (must match an existing option)\n- For number fields: provide a numeric value\n- For date fields: provide an ISO 8601 date string", + "example": "Critical" + } + }, + "required": [ + "field_id", + "value" + ], + "additionalProperties": false + }, + "maxItems": 25 + } + } + }, + "examples": { + "default": { + "summary": "Set multiple field values", + "value": { + "issue_field_values": [ + { + "field_id": 123, + "value": "Critical" + }, + { + "field_id": 456, + "value": 5 + }, + { + "field_id": 789, + "value": "2024-12-31" + } + ] + } + }, + "single-field": { + "summary": "Set a single field value", + "value": { + "issue_field_values": [ + { + "field_id": 123, + "value": "High Priority" + } + ] + } + } + } + } + } + }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/rule-suites" + "type": "array", + "description": "The current issue field values for this issue after setting the new values", + "items": { + "$ref": "#/components/schemas/issue-field-value" + } }, "examples": { "default": { - "$ref": "#/components/examples/rule-suite-items" + "$ref": "#/components/examples/issue-field-value-items" } } } } }, + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, "404": { "$ref": "#/components/responses/not_found" }, - "500": { - "$ref": "#/components/responses/internal_error" + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { + "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "rule-suites" + "category": "issues", + "subcategory": "issue-field-values" } } }, - "/repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}": { + "/repos/{owner}/{repo}/issues/{issue_number}/issue-field-values/{issue_field_id}": { + "delete": { + "summary": "Delete an issue field value from an issue", + "description": "Remove a specific custom field value from an issue.\n\nOnly users with push access to the repository can delete issue field values. If you don't have the proper permissions, you'll receive a `403 Forbidden` response.\n\nIf the specified field does not have a value set on the issue, this operation will return a `404` error.\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": [ + "issues" + ], + "operationId": "issues/delete-issue-field-value", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/issues/issue-field-values#delete-an-issue-field-value-from-an-issue" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" + }, + { + "$ref": "#/components/parameters/issue-field-id" + } + ], + "responses": { + "204": { + "description": "Issue field value deleted successfully" + }, + "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": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "issue-field-values" + } + } + }, + "/repos/{owner}/{repo}/issues/{issue_number}/labels": { "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).\"", + "summary": "List labels for an issue", + "description": "Lists all labels for an issue.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/get-repo-rule-suite", + "operationId": "issues/list-labels-on-issue", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/rule-suites#get-a-repository-rule-suite" + "url": "https://docs.github.com/rest/issues/labels#list-labels-for-an-issue" }, "parameters": [ { @@ -66432,7 +65963,13 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/rule-suite-id" + "$ref": "#/components/parameters/issue-number" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -66441,48 +65978,51 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/rule-suite" + "type": "array", + "items": { + "$ref": "#/components/schemas/label" + } }, "examples": { "default": { - "$ref": "#/components/examples/rule-suite" + "$ref": "#/components/examples/label-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, + "301": { + "$ref": "#/components/responses/moved_permanently" + }, "404": { "$ref": "#/components/responses/not_found" }, - "500": { - "$ref": "#/components/responses/internal_error" + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "rule-suites" + "category": "issues", + "subcategory": "labels" } - } - }, - "/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.", + }, + "post": { + "summary": "Add labels to an issue", + "description": "Adds labels to an issue.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/get-repo-ruleset", + "operationId": "issues/add-labels", "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" + "url": "https://docs.github.com/rest/issues/labels#add-labels-to-an-issue" }, "parameters": [ { @@ -66492,65 +66032,162 @@ "$ref": "#/components/parameters/repo" }, { - "name": "ruleset_id", - "description": "The ID of the ruleset.", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "includes_parents", - "description": "Include rulesets configured at higher levels that apply to this repository", - "in": "query", - "required": false, - "schema": { - "type": "boolean", - "default": true - } + "$ref": "#/components/parameters/issue-number" } ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "properties": { + "labels": { + "type": "array", + "minItems": 1, + "description": "The labels to add to the issue's existing labels. You can also pass an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. To replace all of the labels for an issue, use \"[Set labels for an issue](https://docs.github.com/rest/issues/labels#set-labels-for-an-issue).\"", + "items": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the label to add." + }, + "rationale": { + "type": "string", + "description": "Optional reasoning for adding this label." + }, + "suggest": { + "type": "boolean", + "description": "If `true`, the label is stored as a pending suggestion for human review rather than applied directly." + }, + "confidence": { + "type": "string", + "description": "The confidence level for this label choice.", + "enum": [ + "low", + "medium", + "high" + ] + } + }, + "required": [ + "name" + ] + } + ] + } + } + } + }, + { + "type": "array", + "items": { + "type": "string" + } + }, + { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "rationale": { + "type": "string", + "description": "Optional reasoning for adding this label." + }, + "suggest": { + "type": "boolean", + "description": "If `true`, the label is stored as a pending suggestion for human review rather than applied directly." + }, + "confidence": { + "type": "string", + "description": "The confidence level for this label choice.", + "enum": [ + "low", + "medium", + "high" + ] + } + }, + "required": [ + "name" + ] + } + } + ] + }, + "examples": { + "default": { + "value": { + "labels": [ + "bug", + "enhancement" + ] + } + } + } + } + } + }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repository-ruleset" + "type": "array", + "items": { + "$ref": "#/components/schemas/label" + } }, "examples": { "default": { - "$ref": "#/components/examples/repository-ruleset" + "$ref": "#/components/examples/label-items" } } } } }, + "301": { + "$ref": "#/components/responses/moved_permanently" + }, "404": { "$ref": "#/components/responses/not_found" }, - "500": { - "$ref": "#/components/responses/internal_error" + "410": { + "$ref": "#/components/responses/gone" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "labels" } }, "put": { - "summary": "Update a repository ruleset", - "description": "Update a ruleset for a repository.", + "summary": "Set labels for an issue", + "description": "Removes any previous labels and sets the new labels for an issue.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/update-repo-ruleset", + "operationId": "issues/set-labels", "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" + "url": "https://docs.github.com/rest/issues/labels#set-labels-for-an-issue" }, "parameters": [ { @@ -66560,90 +66197,81 @@ "$ref": "#/components/parameters/repo" }, { - "name": "ruleset_id", - "description": "The ID of the ruleset.", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/issue-number" } ], "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" + "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" + } + } + } }, - "bypass_actors": { + { "type": "array", - "description": "The actors that can bypass the rules in this ruleset", + "minItems": 1, "items": { - "$ref": "#/components/schemas/repository-ruleset-bypass-actor" + "type": "string" } }, - "conditions": { - "$ref": "#/components/schemas/repository-ruleset-conditions" + { + "type": "object", + "properties": { + "labels": { + "type": "array", + "minItems": 1, + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] + } + } + } }, - "rules": { - "description": "An array of rules within the ruleset.", + { "type": "array", + "minItems": 1, "items": { - "$ref": "#/components/schemas/repository-rule" + "type": "object", + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ] } + }, + { + "type": "string" } - } + ] }, "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" - } - } + "labels": [ + "bug", + "enhancement" ] } } @@ -66657,43 +66285,49 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repository-ruleset" + "type": "array", + "items": { + "$ref": "#/components/schemas/label" + } }, "examples": { "default": { - "$ref": "#/components/examples/repository-ruleset" + "$ref": "#/components/examples/label-items" } } } } }, + "301": { + "$ref": "#/components/responses/moved_permanently" + }, "404": { "$ref": "#/components/responses/not_found" }, + "410": { + "$ref": "#/components/responses/gone" + }, "422": { "$ref": "#/components/responses/validation_failed" - }, - "500": { - "$ref": "#/components/responses/internal_error" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "labels" } }, "delete": { - "summary": "Delete a repository ruleset", - "description": "Delete a ruleset for a repository.", + "summary": "Remove all labels from an issue", + "description": "Removes all labels from an issue.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/delete-repo-ruleset", + "operationId": "issues/remove-all-labels", "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" + "url": "https://docs.github.com/rest/issues/labels#remove-all-labels-from-an-issue" }, "parameters": [ { @@ -66703,39 +66337,42 @@ "$ref": "#/components/parameters/repo" }, { - "name": "ruleset_id", - "description": "The ID of the ruleset.", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/issue-number" } ], "responses": { "204": { "description": "Response" }, + "301": { + "$ref": "#/components/responses/moved_permanently" + }, "404": { "$ref": "#/components/responses/not_found" }, - "500": { - "$ref": "#/components/responses/internal_error" + "410": { + "$ref": "#/components/responses/gone" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "labels" } } }, - "/repos/{owner}/{repo}/rulesets/{ruleset_id}/history": { - "get": { - "summary": "Get repository ruleset history", - "description": "Get the history of a repository ruleset.", + "/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": [ - "repos" + "issues" ], - "operationId": "repos/get-repo-ruleset-history", + "operationId": "issues/remove-label", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/rules#get-repository-ruleset-history" + "url": "https://docs.github.com/rest/issues/labels#remove-a-label-from-an-issue" }, "parameters": [ { @@ -66745,18 +66382,14 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/issue-number" }, { - "name": "ruleset_id", - "description": "The ID of the ruleset.", + "name": "name", "in": "path", "required": true, "schema": { - "type": "integer" + "type": "string" } } ], @@ -66768,43 +66401,46 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/ruleset-version" + "$ref": "#/components/schemas/label" } }, "examples": { "default": { - "$ref": "#/components/examples/ruleset-history" + "$ref": "#/components/examples/label-items-2" } } } } }, + "301": { + "$ref": "#/components/responses/moved_permanently" + }, "404": { "$ref": "#/components/responses/not_found" }, - "500": { - "$ref": "#/components/responses/internal_error" + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "rules" + "category": "issues", + "subcategory": "labels" } } }, - "/repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}": { - "get": { - "summary": "Get repository ruleset version", - "description": "Get a version of a repository ruleset.", + "/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": [ - "repos" + "issues" ], - "operationId": "repos/get-repo-ruleset-version", + "operationId": "issues/lock", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/rules#get-repository-ruleset-version" + "url": "https://docs.github.com/rest/issues/issues#lock-an-issue" }, "parameters": [ { @@ -66814,66 +66450,74 @@ "$ref": "#/components/parameters/repo" }, { - "name": "ruleset_id", - "description": "The ID of the ruleset.", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - }, - { - "name": "version_id", - "description": "The ID of the version", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/issue-number" } ], - "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" + "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" }, - "500": { - "$ref": "#/components/responses/internal_error" + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "rules" + "category": "issues", + "subcategory": "issues" } - } - }, - "/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.", + }, + "delete": { + "summary": "Unlock an issue", + "description": "Users with push access can unlock an issue's conversation.", "tags": [ - "secret-scanning" + "issues" ], - "operationId": "secret-scanning/list-alerts-for-repo", + "operationId": "issues/unlock", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/secret-scanning/secret-scanning#list-secret-scanning-alerts-for-a-repository" + "url": "https://docs.github.com/rest/issues/issues#unlock-an-issue" }, "parameters": [ { @@ -66883,55 +66527,49 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/secret-scanning-alert-state" - }, - { - "$ref": "#/components/parameters/secret-scanning-alert-secret-type" - }, - { - "$ref": "#/components/parameters/secret-scanning-alert-exclude-secret-types" - }, - { - "$ref": "#/components/parameters/secret-scanning-alert-exclude-providers" - }, - { - "$ref": "#/components/parameters/secret-scanning-alert-providers" - }, - { - "$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/issue-number" + } + ], + "responses": { + "204": { + "description": "Response" }, - { - "$ref": "#/components/parameters/secret-scanning-alert-validity" + "403": { + "$ref": "#/components/responses/forbidden" }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "issues" + } + } + }, + "/repos/{owner}/{repo}/issues/{issue_number}/parent": { + "get": { + "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": [ + "issues" + ], + "operationId": "issues/get-parent", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/issues/sub-issues#get-parent-issue" + }, + "parameters": [ { - "$ref": "#/components/parameters/secret-scanning-alert-publicly-leaked" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/secret-scanning-alert-multi-repo" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/secret-scanning-alert-hide-secret" + "$ref": "#/components/parameters/issue-number" } ], "responses": { @@ -66940,45 +66578,45 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/secret-scanning-alert" - } + "$ref": "#/components/schemas/issue" }, "examples": { "default": { - "$ref": "#/components/examples/secret-scanning-alert-list" + "$ref": "#/components/examples/issue" } } } } }, + "301": { + "$ref": "#/components/responses/moved_permanently" + }, "404": { - "description": "Repository is public or secret scanning is disabled for the repository" + "$ref": "#/components/responses/not_found" }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "secret-scanning", - "subcategory": "secret-scanning" + "category": "issues", + "subcategory": "sub-issues" } } }, - "/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": { + "/repos/{owner}/{repo}/issues/{issue_number}/reactions": { "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.", + "summary": "List reactions for an issue", + "description": "List the reactions to an [issue](https://docs.github.com/rest/issues/issues#get-an-issue).", "tags": [ - "secret-scanning" + "reactions" ], - "operationId": "secret-scanning/get-alert", + "operationId": "reactions/list-for-issue", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/secret-scanning/secret-scanning#get-a-secret-scanning-alert" + "url": "https://docs.github.com/rest/reactions/reactions#list-reactions-for-an-issue" }, "parameters": [ { @@ -66988,10 +66626,32 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/alert-number" + "$ref": "#/components/parameters/issue-number" }, { - "$ref": "#/components/parameters/secret-scanning-alert-hide-secret" + "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" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -67000,43 +66660,48 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/secret-scanning-alert" + "type": "array", + "items": { + "$ref": "#/components/schemas/reaction" + } }, "examples": { "default": { - "$ref": "#/components/examples/secret-scanning-alert-open" + "$ref": "#/components/examples/reaction-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, "404": { - "description": "Repository is public, or secret scanning is disabled for the repository, or the resource is not found" + "$ref": "#/components/responses/not_found" }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "secret-scanning", - "subcategory": "secret-scanning" + "category": "reactions", + "subcategory": "reactions" } }, - "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", + "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": [ - "secret-scanning" + "reactions" ], + "operationId": "reactions/create-for-issue", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/secret-scanning/secret-scanning#update-a-secret-scanning-alert" + "url": "https://docs.github.com/rest/reactions/reactions#create-reaction-for-an-issue" }, "parameters": [ { @@ -67046,7 +66711,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/alert-number" + "$ref": "#/components/parameters/issue-number" } ], "requestBody": { @@ -67056,54 +66721,29 @@ "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" - ] - }, - { - "required": [ - "validity" + "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": { - "state": "resolved", - "resolution": "false_positive" - } - }, - "assign": { - "summary": "Assign alert to a user", - "value": { - "assignee": "octocat" - } - }, - "unassign": { - "summary": "Unassign alert", - "value": { - "assignee": null + "content": "heart" } } } @@ -67116,48 +66756,54 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/secret-scanning-alert" + "$ref": "#/components/schemas/reaction" }, "examples": { "default": { - "$ref": "#/components/examples/secret-scanning-alert-resolved" + "$ref": "#/components/examples/reaction" } } } } }, - "400": { - "description": "Bad request, resolution comment is invalid or the resolution was not changed." - }, - "404": { - "description": "Repository is public, or secret scanning is disabled for the repository, or the resource is not found" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reaction" + }, + "examples": { + "default": { + "$ref": "#/components/examples/reaction" + } + } + } + } }, "422": { - "description": "State does not match the resolution or resolution comment, or assignee does not have write access to the repository" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "enabledForGitHubApps": true, "githubCloudOnly": false, - "category": "secret-scanning", - "subcategory": "secret-scanning" + "enabledForGitHubApps": true, + "category": "reactions", + "subcategory": "reactions" } } }, - "/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.", + "/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": [ - "secret-scanning" + "reactions" ], - "operationId": "secret-scanning/list-locations-for-alert", + "operationId": "reactions/delete-for-issue", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/secret-scanning/secret-scanning#list-locations-for-a-secret-scanning-alert" + "url": "https://docs.github.com/rest/reactions/reactions#delete-an-issue-reaction" }, "parameters": [ { @@ -67167,66 +66813,36 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/alert-number" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/issue-number" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/reaction-id" } ], "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" - } - } - }, - "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" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "secret-scanning", - "subcategory": "secret-scanning" + "category": "reactions", + "subcategory": "reactions" } } }, - "/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", + "/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": [ - "secret-scanning" + "issues" ], + "operationId": "issues/remove-sub-issue", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/secret-scanning/secret-scanning#create-a-push-protection-bypass" + "url": "https://docs.github.com/rest/issues/sub-issues#remove-sub-issue" }, "parameters": [ { @@ -67234,6 +66850,9 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" } ], "requestBody": { @@ -67243,23 +66862,19 @@ "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" + "sub_issue_id": { + "type": "integer", + "description": "The id of the sub-issue to remove" } }, "required": [ - "reason", - "placeholder_id" + "sub_issue_id" ] }, "examples": { "default": { "value": { - "reason": "will_fix_later", - "placeholder_id": "2k4dM4tseyC5lPIsjl5emX9sPNk" + "sub_issue_id": 6 } } } @@ -67272,99 +66887,54 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/secret-scanning-push-protection-bypass" + "$ref": "#/components/schemas/issue" }, "examples": { "default": { - "$ref": "#/components/examples/secret-scanning-push-protection-bypass" + "$ref": "#/components/examples/issue" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1/sub-issue", + "schema": { + "type": "string" + } + } } }, - "403": { - "description": "User does not have enough permissions to perform this action." - }, - "404": { - "description": "Placeholder ID not found, or push protection is disabled on this repository." - }, - "422": { - "description": "Bad request, input data missing or incorrect." + "400": { + "$ref": "#/components/responses/bad_request" }, - "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" + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "$ref": "#/components/parameters/repo" - } - ], - "responses": { "404": { - "description": "Repository does not have GitHub Advanced Security or secret scanning enabled" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" - }, - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/secret-scanning-scan-history" - }, - "examples": { - "default": { - "$ref": "#/components/examples/secret-scanning-scan-history" - } - } - } - } + "$ref": "#/components/responses/not_found" } }, "x-github": { + "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "secret-scanning", - "subcategory": "secret-scanning" + "category": "issues", + "subcategory": "sub-issues" } } }, - "/repos/{owner}/{repo}/security-advisories": { + "/repos/{owner}/{repo}/issues/{issue_number}/sub_issues": { "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.", + "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": [ - "security-advisories" + "issues" ], - "operationId": "security-advisories/list-repository-advisories", + "operationId": "issues/list-sub-issues", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/security-advisories/repository-advisories#list-repository-security-advisories" + "url": "https://docs.github.com/rest/issues/sub-issues#list-sub-issues" }, "parameters": [ { @@ -67374,55 +66944,13 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/direction" - }, - { - "name": "sort", - "description": "The property to sort the results by.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "created", - "updated", - "published" - ], - "default": "created" - } - }, - { - "$ref": "#/components/parameters/pagination-before" - }, - { - "$ref": "#/components/parameters/pagination-after" + "$ref": "#/components/parameters/issue-number" }, { - "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 - } + "$ref": "#/components/parameters/per-page" }, { - "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" - ] - } + "$ref": "#/components/parameters/page" } ], "responses": { @@ -67433,41 +66961,46 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/repository-advisory" + "$ref": "#/components/schemas/issue" } }, "examples": { "default": { - "$ref": "#/components/examples/list-repository-advisories" + "$ref": "#/components/examples/issue-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "400": { - "$ref": "#/components/responses/bad_request" - }, "404": { "$ref": "#/components/responses/not_found" + }, + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "security-advisories", - "subcategory": "repository-advisories" + "category": "issues", + "subcategory": "sub-issues" } }, "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.", + "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": [ - "security-advisories" + "issues" ], - "operationId": "security-advisories/create-repository-advisory", + "operationId": "issues/add-sub-issue", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/security-advisories/repository-advisories#create-a-repository-security-advisory" + "url": "https://docs.github.com/rest/issues/sub-issues#add-sub-issue" }, "parameters": [ { @@ -67475,6 +67008,9 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" } ], "requestBody": { @@ -67482,90 +67018,25 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repository-advisory-create" + "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": { - "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" - } - } - ] + "sub_issue_id": 1 } } } @@ -67578,45 +67049,56 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repository-advisory" + "$ref": "#/components/schemas/issue" }, "examples": { "default": { - "$ref": "#/components/examples/repository-advisory" + "$ref": "#/components/examples/issue" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/issues/sub-issues/1", + "schema": { + "type": "string" + } + } } }, "403": { "$ref": "#/components/responses/forbidden" }, - "404": { - "$ref": "#/components/responses/not_found" + "410": { + "$ref": "#/components/responses/gone" }, "422": { "$ref": "#/components/responses/validation_failed" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "security-advisories", - "subcategory": "repository-advisories" + "category": "issues", + "subcategory": "sub-issues" } } }, - "/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.", + "/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": [ - "security-advisories" + "issues" ], - "operationId": "security-advisories/create-private-vulnerability-report", + "operationId": "issues/reprioritize-sub-issue", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/security-advisories/repository-advisories#privately-report-a-security-vulnerability" + "url": "https://docs.github.com/rest/issues/sub-issues#reprioritize-sub-issue" }, "parameters": [ { @@ -67624,6 +67106,9 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/issue-number" } ], "requestBody": { @@ -67631,30 +67116,30 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/private-vulnerability-report-create" + "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": { - "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" - ] + "sub_issue_id": 6, + "after_id": 5 } } } @@ -67662,16 +67147,16 @@ } }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repository-advisory" + "$ref": "#/components/schemas/issue" }, "examples": { "default": { - "$ref": "#/components/examples/repository-advisory-pvr" + "$ref": "#/components/examples/issue" } } } @@ -67684,28 +67169,32 @@ "$ref": "#/components/responses/not_found" }, "422": { - "$ref": "#/components/responses/validation_failed" + "$ref": "#/components/responses/validation_failed_simple" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { + "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "security-advisories", - "subcategory": "repository-advisories" + "category": "issues", + "subcategory": "sub-issues" } } }, - "/repos/{owner}/{repo}/security-advisories/{ghsa_id}": { + "/repos/{owner}/{repo}/issues/{issue_number}/suggestions": { "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.", + "summary": "List issue suggestions", + "description": "Lists the suggestions on an issue. A suggestion is an agent-proposed change to an issue's type, labels, fields, assignees, or closed state that a maintainer can approve or dismiss.\n\nBy default only pending suggestions are returned. Use `state=all` to return suggestions in every state, or `state=` to filter to a single state. Use `action=` to return only suggestions for a specific change.\n\nThis endpoint is only available while the issue suggestions feature is enabled for the repository, and only supports issues, not pull requests.\n\nRequires triage access to the repository.", "tags": [ - "security-advisories" + "issues" ], - "operationId": "security-advisories/get-repository-advisory", + "operationId": "issues/list-suggestions", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/security-advisories/repository-advisories#get-a-repository-security-advisory" + "url": "https://docs.github.com/rest/issues/issues#list-issue-suggestions" }, "parameters": [ { @@ -67715,7 +67204,48 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/ghsa_id" + "$ref": "#/components/parameters/issue-number" + }, + { + "name": "state", + "in": "query", + "required": false, + "description": "Filter suggestions by their state.", + "schema": { + "type": "string", + "enum": [ + "pending", + "applied", + "approved", + "dismissed", + "replaced", + "invalidated", + "all" + ], + "default": "pending" + } + }, + { + "name": "action", + "in": "query", + "required": false, + "description": "Filter suggestions by the change they propose.", + "schema": { + "type": "string", + "enum": [ + "set_type", + "add_label", + "add_field", + "add_assignee", + "close_issue" + ] + } + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -67724,40 +67254,50 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repository-advisory" + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-suggestion" + } }, "examples": { "default": { - "$ref": "#/components/examples/repository-advisory" + "$ref": "#/components/examples/issue-suggestions" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "403": { - "$ref": "#/components/responses/forbidden" - }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "security-advisories", - "subcategory": "repository-advisories" + "category": "issues", + "subcategory": "issues" } - }, - "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.", + } + }, + "/repos/{owner}/{repo}/issues/{issue_number}/suggestions/{suggestion_id}/approve": { + "post": { + "summary": "Approve an issue suggestion", + "description": "Approves a pending suggestion on an issue. Applies the proposed change (creating the corresponding timeline event), transitions the suggestion to `approved`, and dismisses any competing pending suggestions for the same change.\n\nRequires triage access to the repository. Approving a suggestion also requires permission to perform the change it applies (for example, setting the issue type, adding a label or assignee, or closing the issue); this only affects fine-grained access tokens and GitHub Apps whose permissions are narrower than the triage role. This endpoint only supports issues, not pull requests.", "tags": [ - "security-advisories" + "issues" ], - "operationId": "security-advisories/update-repository-advisory", + "operationId": "issues/approve-suggestion", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/security-advisories/repository-advisories#update-a-repository-security-advisory" + "url": "https://docs.github.com/rest/issues/issues#approve-an-issue-suggestion" }, "parameters": [ { @@ -67767,92 +67307,29 @@ "$ref": "#/components/parameters/repo" }, { - "$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" - } - } - } + "$ref": "#/components/parameters/issue-number" + }, + { + "name": "suggestion_id", + "in": "path", + "required": true, + "description": "The unique identifier of the suggestion.", + "schema": { + "type": "integer" } } - }, + ], "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repository-advisory" + "$ref": "#/components/schemas/issue-suggestion" }, "examples": { "default": { - "$ref": "#/components/examples/repository-advisory" - }, - "add_credit": { - "$ref": "#/components/examples/repository-advisory" + "$ref": "#/components/examples/issue-suggestion" } } } @@ -67865,47 +67342,28 @@ "$ref": "#/components/responses/not_found" }, "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." - } - } - } - } - } + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "security-advisories", - "subcategory": "repository-advisories" + "category": "issues", + "subcategory": "issues" } } }, - "/repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve": { + "/repos/{owner}/{repo}/issues/{issue_number}/suggestions/{suggestion_id}/dismiss": { "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.", + "summary": "Dismiss an issue suggestion", + "description": "Dismisses a pending suggestion on an issue. Transitions the suggestion to `dismissed` without applying any change or creating a timeline event.\n\nRequires triage access to the repository. This endpoint only supports issues, not pull requests.", "tags": [ - "security-advisories" + "issues" ], - "operationId": "security-advisories/create-repository-advisory-cve-request", + "operationId": "issues/dismiss-suggestion", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/security-advisories/repository-advisories#request-a-cve-for-a-repository-security-advisory" + "url": "https://docs.github.com/rest/issues/issues#dismiss-an-issue-suggestion" }, "parameters": [ { @@ -67915,15 +67373,33 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/ghsa_id" + "$ref": "#/components/parameters/issue-number" + }, + { + "name": "suggestion_id", + "in": "path", + "required": true, + "description": "The unique identifier of the suggestion.", + "schema": { + "type": "integer" + } } ], "responses": { - "202": { - "$ref": "#/components/responses/accepted" - }, - "400": { - "$ref": "#/components/responses/bad_request" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/issue-suggestion" + }, + "examples": { + "default": { + "$ref": "#/components/examples/issue-suggestion" + } + } + } + } }, "403": { "$ref": "#/components/responses/forbidden" @@ -67938,22 +67414,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "security-advisories", - "subcategory": "repository-advisories" + "category": "issues", + "subcategory": "issues" } } }, - "/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.", + "/repos/{owner}/{repo}/issues/{issue_number}/timeline": { + "get": { + "summary": "List timeline events for an issue", + "description": "List all timeline events for an issue.", "tags": [ - "security-advisories" + "issues" ], - "operationId": "security-advisories/create-fork", + "operationId": "issues/list-events-for-timeline", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/security-advisories/repository-advisories#create-a-temporary-private-fork" + "url": "https://docs.github.com/rest/issues/timeline#list-timeline-events-for-an-issue" }, "parameters": [ { @@ -67963,57 +67439,71 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/ghsa_id" + "$ref": "#/components/parameters/issue-number" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/issue-timeline-exclude" } ], "responses": { - "202": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/full-repository" + "type": "array", + "items": { + "$ref": "#/components/schemas/timeline-issue-events" + } }, "examples": { "default": { - "$ref": "#/components/examples/full-repository" + "$ref": "#/components/examples/timeline-issue-events" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, + "404": { + "$ref": "#/components/responses/not_found" + }, "400": { "$ref": "#/components/responses/bad_request" }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" + "410": { + "$ref": "#/components/responses/gone" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "security-advisories", - "subcategory": "repository-advisories" - } + "category": "issues", + "subcategory": "timeline" + } } }, - "/repos/{owner}/{repo}/stargazers": { + "/repos/{owner}/{repo}/keys": { "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.", + "summary": "List deploy keys", + "description": "", "tags": [ - "activity" + "repos" ], - "operationId": "activity/list-stargazers-for-repo", + "operationId": "repos/list-deploy-keys", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/activity/starring#list-stargazers" + "url": "https://docs.github.com/rest/deploy-keys/deploy-keys#list-deploy-keys" }, "parameters": [ { @@ -68035,27 +67525,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/deploy-key" + } }, "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/deploy-key-items" } } } @@ -68065,30 +67542,25 @@ "$ref": "#/components/headers/link" } } - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "activity", - "subcategory": "starring" + "category": "deploy-keys", + "subcategory": "deploy-keys" } - } - }, - "/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.", + }, + "post": { + "summary": "Create a deploy key", + "description": "You can create a read-only deploy key.", "tags": [ "repos" ], - "operationId": "repos/get-code-frequency-stats", + "operationId": "repos/create-deploy-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/metrics/statistics#get-the-weekly-commit-activity" + "url": "https://docs.github.com/rest/deploy-keys/deploy-keys#create-a-deploy-key" }, "parameters": [ { @@ -68098,108 +67570,89 @@ "$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" + "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/).\"" } }, - "examples": { - "default": { - "$ref": "#/components/examples/code-frequency-stat-items" + "required": [ + "key" + ] + }, + "examples": { + "default": { + "value": { + "title": "octocat@octomac", + "key": "ssh-rsa AAA...", + "read_only": true } } } } - }, - "202": { - "$ref": "#/components/responses/accepted" - }, - "204": { - "$ref": "#/components/responses/no_content" - }, - "422": { - "description": "Repository contains more than 10,000 commits" } }, - "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" - }, - { - "$ref": "#/components/parameters/repo" - } - ], "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/commit-activity" - } + "$ref": "#/components/schemas/deploy-key" }, "examples": { "default": { - "$ref": "#/components/examples/commit-activity-items" + "$ref": "#/components/examples/deploy-key" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/keys/1", + "schema": { + "type": "string" + } + } } }, - "202": { - "$ref": "#/components/responses/accepted" - }, - "204": { - "$ref": "#/components/responses/no_content" + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "metrics", - "subcategory": "statistics" + "category": "deploy-keys", + "subcategory": "deploy-keys" } } }, - "/repos/{owner}/{repo}/stats/contributors": { + "/repos/{owner}/{repo}/keys/{key_id}": { "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.", + "summary": "Get a deploy key", + "description": "", "tags": [ "repos" ], - "operationId": "repos/get-contributors-stats", + "operationId": "repos/get-deploy-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/metrics/statistics#get-all-contributor-commit-activity" + "url": "https://docs.github.com/rest/deploy-keys/deploy-keys#get-a-deploy-key" }, "parameters": [ { @@ -68207,6 +67660,9 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/key-id" } ], "responses": { @@ -68215,45 +67671,37 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/contributor-activity" - } + "$ref": "#/components/schemas/deploy-key" }, "examples": { "default": { - "$ref": "#/components/examples/contributor-activity-items" + "$ref": "#/components/examples/deploy-key" } } } } }, - "202": { - "$ref": "#/components/responses/accepted" - }, - "204": { - "$ref": "#/components/responses/no_content" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "metrics", - "subcategory": "statistics" + "category": "deploy-keys", + "subcategory": "deploy-keys" } - } - }, - "/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.", + }, + "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/get-participation-stats", + "operationId": "repos/delete-deploy-key", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/metrics/statistics#get-the-weekly-commit-count" + "url": "https://docs.github.com/rest/deploy-keys/deploy-keys#delete-a-deploy-key" }, "parameters": [ { @@ -68261,47 +67709,35 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/key-id" } ], "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" - } - } - } - } - }, - "404": { - "$ref": "#/components/responses/not_found" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "metrics", - "subcategory": "statistics" + "category": "deploy-keys", + "subcategory": "deploy-keys" } } }, - "/repos/{owner}/{repo}/stats/punch_card": { + "/repos/{owner}/{repo}/labels": { "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": "List labels for a repository", + "description": "Lists all labels for a repository.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/get-punch-card-stats", + "operationId": "issues/list-labels-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/metrics/statistics#get-the-hourly-commit-count-for-each-day" + "url": "https://docs.github.com/rest/issues/labels#list-labels-for-a-repository" }, "parameters": [ { @@ -68309,50 +67745,59 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "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/label" } }, "examples": { "default": { - "$ref": "#/components/examples/code-frequency-stat-items-2" + "$ref": "#/components/examples/label-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "204": { - "$ref": "#/components/responses/no_content" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "metrics", - "subcategory": "statistics" + "category": "issues", + "subcategory": "labels" } - } - }, - "/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.", + "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": [ - "repos" + "issues" ], - "operationId": "repos/create-commit-status", + "operationId": "issues/create-label", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/commits/statuses#create-a-commit-status" + "url": "https://docs.github.com/rest/issues/labels#create-a-label" }, "parameters": [ { @@ -68360,15 +67805,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "name": "sha", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "x-multi-segment": true } ], "requestBody": { @@ -68378,43 +67814,29 @@ "schema": { "type": "object", "properties": { - "state": { + "name": { "type": "string", - "description": "The state of the status.", - "enum": [ - "error", - "failure", - "pending", - "success" - ] + "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).\"" }, - "target_url": { + "color": { "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": "The [hexadecimal color code](http://www.color-hex.com/) for the label, without the leading `#`." }, "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" + "description": "A short description of the label. Must be 100 characters or fewer." } }, "required": [ - "state" + "name" ] }, "examples": { "default": { "value": { - "state": "success", - "target_url": "https://example.com/build/status", - "description": "The build succeeded!", - "context": "continuous-integration/jenkins" + "name": "bug", + "description": "Something isn't working", + "color": "f29513" } } } @@ -68427,44 +67849,50 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/status" + "$ref": "#/components/schemas/label" }, "examples": { "default": { - "$ref": "#/components/examples/status" + "$ref": "#/components/examples/label" } } } }, "headers": { "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "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": true, - "category": "commits", - "subcategory": "statuses" + "category": "issues", + "subcategory": "labels" } } }, - "/repos/{owner}/{repo}/subscribers": { + "/repos/{owner}/{repo}/labels/{name}": { "get": { - "summary": "List watchers", - "description": "Lists the people watching the specified repository.", + "summary": "Get a label", + "description": "Gets a label using the given name.", "tags": [ - "activity" + "issues" ], - "operationId": "activity/list-watchers-for-repo", + "operationId": "issues/get-label", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/activity/watching#list-watchers" + "url": "https://docs.github.com/rest/issues/labels#get-a-label" }, "parameters": [ { @@ -68474,10 +67902,12 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } ], "responses": { @@ -68486,93 +67916,37 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "$ref": "#/components/schemas/label" }, "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" - }, - { - "$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" + "$ref": "#/components/examples/label" } } } } }, "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, - "category": "activity", - "subcategory": "watching" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "labels" } }, - "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.", + "patch": { + "summary": "Update a label", + "description": "Updates a label using the given label name.", "tags": [ - "activity" + "issues" ], - "operationId": "activity/set-repo-subscription", + "operationId": "issues/update-label", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/activity/watching#set-a-repository-subscription" + "url": "https://docs.github.com/rest/issues/labels#update-a-label" }, "parameters": [ { @@ -68580,6 +67954,14 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } ], "requestBody": { @@ -68589,21 +67971,26 @@ "schema": { "type": "object", "properties": { - "subscribed": { - "type": "boolean", - "description": "Determines if notifications should be received from this repository." + "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).\"" }, - "ignored": { - "type": "boolean", - "description": "Determines if all notifications should be blocked from this repository." + "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": { - "subscribed": true, - "ignored": false + "new_name": "bug :bug:", + "description": "Small bug fix required", + "color": "b01f26" } } } @@ -68616,11 +68003,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/repository-subscription" + "$ref": "#/components/schemas/label" }, "examples": { "default": { - "$ref": "#/components/examples/repository-subscription" + "$ref": "#/components/examples/label-2" } } } @@ -68629,21 +68016,21 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "activity", - "subcategory": "watching" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "labels" } }, "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).", + "summary": "Delete a label", + "description": "Deletes a label using the given label name.", "tags": [ - "activity" + "issues" ], - "operationId": "activity/delete-repo-subscription", + "operationId": "issues/delete-label", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/activity/watching#delete-a-repository-subscription" + "url": "https://docs.github.com/rest/issues/labels#delete-a-label" }, "parameters": [ { @@ -68651,6 +68038,14 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "name": "name", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } ], "responses": { @@ -68660,23 +68055,23 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "activity", - "subcategory": "watching" + "enabledForGitHubApps": true, + "category": "issues", + "subcategory": "labels" } } }, - "/repos/{owner}/{repo}/tags": { + "/repos/{owner}/{repo}/languages": { "get": { - "summary": "List repository tags", - "description": "", + "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": [ "repos" ], - "operationId": "repos/list-tags", + "operationId": "repos/list-languages", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#list-repository-tags" + "url": "https://docs.github.com/rest/repos/repos#list-repository-languages" }, "parameters": [ { @@ -68684,12 +68079,6 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -68698,22 +68087,14 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/tag" - } + "$ref": "#/components/schemas/language" }, "examples": { "default": { - "$ref": "#/components/examples/tag-items" + "$ref": "#/components/examples/language" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, @@ -68725,67 +68106,17 @@ } } }, - "/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" - }, - { - "$ref": "#/components/parameters/repo" - }, - { - "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": { + "/repos/{owner}/{repo}/license": { "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.", + "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": [ - "repos" + "licenses" ], - "operationId": "repos/list-teams", + "operationId": "licenses/get-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#list-repository-teams" + "url": "https://docs.github.com/rest/licenses/licenses#get-the-license-for-a-repository" }, "parameters": [ { @@ -68795,10 +68126,7 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/git-ref" } ], "responses": { @@ -68807,22 +68135,14 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team" - } + "$ref": "#/components/schemas/license-content" }, "examples": { "default": { - "$ref": "#/components/examples/team-items" + "$ref": "#/components/examples/license-content" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, "404": { @@ -68832,22 +68152,22 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "repos" + "category": "licenses", + "subcategory": "licenses" } } }, - "/repos/{owner}/{repo}/topics": { - "get": { - "summary": "Get all repository topics", - "description": "", + "/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/get-all-topics", + "operationId": "repos/merge-upstream", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#get-all-repository-topics" + "url": "https://docs.github.com/rest/branches/branches#sync-a-fork-branch-with-the-upstream-repository" }, "parameters": [ { @@ -68855,51 +68175,76 @@ }, { "$ref": "#/components/parameters/repo" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per-page" } ], + "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": "Response", + "description": "The branch has been successfully synced with the upstream repository", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/topic" + "$ref": "#/components/schemas/merged-upstream" }, "examples": { "default": { - "$ref": "#/components/examples/topic" + "$ref": "#/components/examples/merged-upstream" } } } } }, - "404": { - "$ref": "#/components/responses/not_found" + "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": "repos", - "subcategory": "repos" + "category": "branches", + "subcategory": "branches" } - }, - "put": { - "summary": "Replace all repository topics", + } + }, + "/repos/{owner}/{repo}/merges": { + "post": { + "summary": "Merge a branch", "description": "", "tags": [ "repos" ], - "operationId": "repos/replace-all-topics", + "operationId": "repos/merge", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#replace-all-repository-topics" + "url": "https://docs.github.com/rest/branches/branches#merge-a-branch" }, "parameters": [ { @@ -68916,27 +68261,30 @@ "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` will be saved as lowercase.", - "items": { - "type": "string" - } + "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": [ - "names" + "base", + "head" ] }, "examples": { "default": { "value": { - "names": [ - "octocat", - "atom", - "electron", - "api" - ] + "base": "master", + "head": "cool_feature", + "commit_message": "Shipped cool_feature!" } } } @@ -68944,47 +68292,56 @@ } }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "Successful Response (The resulting merge commit)", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/topic" + "$ref": "#/components/schemas/commit" }, "examples": { "default": { - "$ref": "#/components/examples/topic" + "$ref": "#/components/examples/commit" } } } } }, + "204": { + "description": "Response when already merged" + }, "404": { - "$ref": "#/components/responses/not_found" + "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_simple" + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "repos" + "category": "branches", + "subcategory": "branches" } } }, - "/repos/{owner}/{repo}/traffic/clones": { + "/repos/{owner}/{repo}/milestones": { "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 milestones", + "description": "Lists milestones for a repository.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/get-clones", + "operationId": "issues/list-milestones", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/metrics/traffic#get-repository-clones" + "url": "https://docs.github.com/rest/issues/milestones#list-milestones" }, "parameters": [ { @@ -68994,7 +68351,53 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per" + "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" } ], "responses": { @@ -69003,39 +68406,45 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/clone-traffic" + "type": "array", + "items": { + "$ref": "#/components/schemas/milestone" + } }, "examples": { "default": { - "$ref": "#/components/examples/clone-traffic" + "$ref": "#/components/examples/milestone-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "metrics", - "subcategory": "traffic" + "category": "issues", + "subcategory": "milestones" } - } - }, - "/repos/{owner}/{repo}/traffic/popular/paths": { - "get": { - "summary": "Get top referral paths", - "description": "Get the top 10 popular contents over the last 14 days.", + }, + "post": { + "summary": "Create a milestone", + "description": "Creates a milestone.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/get-top-paths", + "operationId": "issues/create-milestone", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/metrics/traffic#get-top-referral-paths" + "url": "https://docs.github.com/rest/issues/milestones#create-a-milestone" }, "parameters": [ { @@ -69045,48 +68454,103 @@ "$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": { - "type": "array", - "items": { - "$ref": "#/components/schemas/content-traffic" - } + "$ref": "#/components/schemas/milestone" }, "examples": { "default": { - "$ref": "#/components/examples/content-traffic-items" + "$ref": "#/components/examples/milestone" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/milestones/1", + "schema": { + "type": "string" + } + } } }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "metrics", - "subcategory": "traffic" + "category": "issues", + "subcategory": "milestones" } } }, - "/repos/{owner}/{repo}/traffic/popular/referrers": { + "/repos/{owner}/{repo}/milestones/{milestone_number}": { "get": { - "summary": "Get top referral sources", - "description": "Get the top 10 referrers over the last 14 days.", + "summary": "Get a milestone", + "description": "Gets a milestone using the given milestone number.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/get-top-referrers", + "operationId": "issues/get-milestone", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/metrics/traffic#get-top-referral-sources" + "url": "https://docs.github.com/rest/issues/milestones#get-a-milestone" }, "parameters": [ { @@ -69094,6 +68558,9 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/milestone-number" } ], "responses": { @@ -69102,42 +68569,37 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/referrer-traffic" - } + "$ref": "#/components/schemas/milestone" }, "examples": { "default": { - "$ref": "#/components/examples/referrer-traffic-items" + "$ref": "#/components/examples/milestone" } } } } }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "metrics", - "subcategory": "traffic" + "category": "issues", + "subcategory": "milestones" } - } - }, - "/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.", + }, + "patch": { + "summary": "Update a milestone", + "description": "", "tags": [ - "repos" + "issues" ], - "operationId": "repos/get-views", + "operationId": "issues/update-milestone", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/metrics/traffic#get-page-views" + "url": "https://docs.github.com/rest/issues/milestones#update-a-milestone" }, "parameters": [ { @@ -69147,48 +68609,87 @@ "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/per" + "$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/view-traffic" + "$ref": "#/components/schemas/milestone" }, "examples": { "default": { - "$ref": "#/components/examples/view-traffic" + "$ref": "#/components/examples/milestone" } } } } - }, - "403": { - "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "metrics", - "subcategory": "traffic" + "category": "issues", + "subcategory": "milestones" } - } - }, - "/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/).", + }, + "delete": { + "summary": "Delete a milestone", + "description": "Deletes a milestone using the given milestone number.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/transfer", + "operationId": "issues/delete-milestone", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#transfer-a-repository" + "url": "https://docs.github.com/rest/issues/milestones#delete-a-milestone" }, "parameters": [ { @@ -69196,86 +68697,38 @@ }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/milestone-number" } ], - "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" - } - } - } - } + "204": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "repos" + "category": "issues", + "subcategory": "milestones" } } }, - "/repos/{owner}/{repo}/vulnerability-alerts": { + "/repos/{owner}/{repo}/milestones/{milestone_number}/labels": { "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)\".", + "summary": "List labels for issues in a milestone", + "description": "Lists labels for issues in a milestone.", "tags": [ - "repos" + "issues" ], - "operationId": "repos/check-vulnerability-alerts", + "operationId": "issues/list-labels-for-milestone", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#check-if-vulnerability-alerts-are-enabled-for-a-repository" + "url": "https://docs.github.com/rest/issues/labels#list-labels-for-issues-in-a-milestone" }, "parameters": [ { @@ -69283,98 +68736,62 @@ }, { "$ref": "#/components/parameters/repo" - } - ], - "responses": { - "204": { - "description": "Response if repository is enabled with vulnerability alerts" }, - "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" + "$ref": "#/components/parameters/milestone-number" }, { - "$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" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/repo" + "$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" + } + } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "repos" + "category": "issues", + "subcategory": "labels" } } }, - "/repos/{owner}/{repo}/zipball/{ref}": { + "/repos/{owner}/{repo}/notifications": { "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.", + "summary": "List repository notifications for the authenticated user", + "description": "Lists all notifications for the current user in the specified repository.", "tags": [ - "repos" + "activity" ], + "operationId": "activity/list-repo-notifications-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/contents#download-a-repository-archive-zip" + "url": "https://docs.github.com/rest/activity/notifications#list-repository-notifications-for-the-authenticated-user" }, - "operationId": "repos/download-zipball-archive", "parameters": [ { "$ref": "#/components/parameters/owner" @@ -69383,110 +68800,93 @@ "$ref": "#/components/parameters/repo" }, { - "name": "ref", - "in": "path", - "required": true, - "x-multi-segment": true, - "schema": { - "type": "string" - } + "$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" } ], "responses": { - "302": { + "200": { "description": "Response", - "headers": { - "Location": { - "example": "https://codeload.github.com/me/myprivate/legacy.zip/master?login=me&token=thistokenexpires", + "content": { + "application/json": { "schema": { - "type": "string" + "type": "array", + "items": { + "$ref": "#/components/schemas/thread" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/thread-items" + } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "contents" + "enabledForGitHubApps": false, + "category": "activity", + "subcategory": "notifications" } - } - }, - "/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.", + }, + "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": [ - "repos" + "activity" ], - "operationId": "repos/create-using-template", + "operationId": "activity/mark-repo-notifications-as-read", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#create-a-repository-using-a-template" + "url": "https://docs.github.com/rest/activity/notifications#mark-repository-notifications-as-read" }, "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" - } + "$ref": "#/components/parameters/owner" }, { - "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" - } + "$ref": "#/components/parameters/repo" } ], "requestBody": { - "required": true, + "required": false, "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": { + "last_read_at": { "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 + "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." } - }, - "required": [ - "name" - ] + } }, "examples": { "default": { "value": { - "owner": "octocat", - "name": "Hello-World", - "description": "This is your first repository", - "include_all_branches": false, - "private": false + "last_read_at": "2019-01-01T00:00:00Z" } } } @@ -69494,53 +68894,61 @@ } }, "responses": { - "201": { + "202": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/full-repository" + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "url": { + "type": "string" + } + } }, "examples": { "default": { - "$ref": "#/components/examples/full-repository" + "value": { + "message": "Unread notifications couldn't be marked in a single request. Notifications are being marked as read in the background." + } } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World", - "schema": { - "type": "string" - } - } } + }, + "205": { + "description": "Reset Content" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "repos" + "enabledForGitHubApps": false, + "category": "activity", + "subcategory": "notifications" } } }, - "/repositories": { + "/repos/{owner}/{repo}/pages": { "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.", + "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/list-public", + "operationId": "repos/get-pages", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#list-public-repositories" + "url": "https://docs.github.com/rest/pages/pages#get-a-apiname-pages-site" }, "parameters": [ { - "$ref": "#/components/parameters/since-repo" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" } ], "responses": { @@ -69549,60 +68957,44 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/minimal-repository" - } + "$ref": "#/components/schemas/page" }, "examples": { "default": { - "$ref": "#/components/examples/public-repository-items" + "$ref": "#/components/examples/page" } } } - }, - "headers": { - "Link": { - "example": "; rel=\"next\"", - "schema": { - "type": "string" - } - } } }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "304": { - "$ref": "#/components/responses/not_modified" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "repos" + "category": "pages", + "subcategory": "pages" } - } - }, - "/repositories/{repository_id}/issues/{issue_number}/issue-field-values": { + }, "post": { - "summary": "Add issue field values to an issue", - "description": "Add custom field values to an issue. You can set values for organization-level issue fields that have been defined for the repository's organization.\nAdding an empty array will clear all existing field values for the issue.\n\nThis endpoint supports the following field data types:\n- **`text`**: String values for text fields\n- **`single_select`**: Option names for single-select fields (must match an existing option name)\n- **`number`**: Numeric values for number fields\n- **`date`**: ISO 8601 date strings for date fields\n\nOnly users with push access to the repository can add issue field values. If you don't have the proper permissions, you'll receive a `403 Forbidden` response.\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).\"", + "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": [ - "issues" + "repos" ], - "operationId": "issues/add-issue-field-values", + "operationId": "repos/create-pages-site", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/issue-field-values#add-issue-field-values-to-an-issue" + "url": "https://docs.github.com/rest/pages/pages#create-a-apiname-pages-site" }, "parameters": [ { - "$ref": "#/components/parameters/repository-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/repo" } ], "requestBody": { @@ -69611,72 +69003,60 @@ "application/json": { "schema": { "type": "object", + "description": "The source branch and directory used to publish your Pages site.", + "nullable": true, "properties": { - "issue_field_values": { - "type": "array", - "description": "An array of issue field values to add to this issue. Each field value must include the field ID and the value to set.", - "items": { - "type": "object", - "properties": { - "field_id": { - "type": "integer", - "description": "The ID of the issue field to set", - "example": 123 - }, - "value": { - "oneOf": [ - { - "type": "string", - "description": "The value to set for text, single_select, or date fields" - }, - { - "type": "number", - "description": "The value to set for number fields" - } - ], - "description": "The value to set for the field. The type depends on the field's data type:\n- For text fields: provide a string value\n- For single_select fields: provide the option name as a string (must match an existing option)\n- For number fields: provide a numeric value\n- For date fields: provide an ISO 8601 date string", - "example": "Critical" - } + "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." }, - "required": [ - "field_id", - "value" - ], - "additionalProperties": false + "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": "/" + } }, - "maxItems": 25 + "required": [ + "branch" + ] } - } + }, + "anyOf": [ + { + "required": [ + "source" + ] + }, + { + "required": [ + "build_type" + ] + } + ] }, "examples": { "default": { - "summary": "Add multiple field values", - "value": { - "issue_field_values": [ - { - "field_id": 123, - "value": "Critical" - }, - { - "field_id": 456, - "value": 5 - }, - { - "field_id": 789, - "value": "2024-12-31" - } - ] - } - }, - "single-field": { - "summary": "Add a single field value", "value": { - "issue_field_values": [ - { - "field_id": 123, - "value": "High Priority" - } - ] + "source": { + "branch": "main", + "path": "/docs" + } } } } @@ -69684,66 +69064,52 @@ } }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "description": "The current issue field values for this issue after adding the new values", - "items": { - "$ref": "#/components/schemas/issue-field-value" - } + "$ref": "#/components/schemas/page" }, "examples": { "default": { - "$ref": "#/components/examples/issue-field-value-items" + "$ref": "#/components/examples/page" } } } } }, - "400": { - "$ref": "#/components/responses/bad_request" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, "422": { "$ref": "#/components/responses/validation_failed" }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "issue-field-values" + "category": "pages", + "subcategory": "pages" } }, "put": { - "summary": "Set issue field values for an issue", - "description": "Set custom field values for an issue, replacing any existing values. You can set values for organization-level issue fields that have been defined for the repository's organization.\n\nThis endpoint supports the following field data types:\n- **`text`**: String values for text fields\n- **`single_select`**: Option names for single-select fields (must match an existing option name)\n- **`number`**: Numeric values for number fields\n- **`date`**: ISO 8601 date strings for date fields\n\nThis operation will replace all existing field values with the provided ones. If you want to add field values without replacing existing ones, use the `POST` endpoint instead.\n\nOnly users with push access to the repository can set issue field values. If you don't have the proper permissions, you'll receive a `403 Forbidden` response.\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).\"", + "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": [ - "issues" + "repos" ], - "operationId": "issues/set-issue-field-values", + "operationId": "repos/update-information-about-pages-site", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/issue-field-values#set-issue-field-values-for-an-issue" + "url": "https://docs.github.com/rest/pages/pages#update-information-about-a-apiname-pages-site" }, "parameters": [ { - "$ref": "#/components/parameters/repository-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/repo" } ], "requestBody": { @@ -69753,220 +69119,181 @@ "schema": { "type": "object", "properties": { - "issue_field_values": { - "type": "array", - "description": "An array of issue field values to set for this issue. Each field value must include the field ID and the value to set. All existing field values will be replaced.", - "items": { - "type": "object", - "properties": { - "field_id": { - "type": "integer", - "description": "The ID of the issue field to set", - "example": 123 - }, - "value": { - "oneOf": [ - { - "type": "string", - "description": "The value to set for text, single_select, or date fields" - }, - { - "type": "number", - "description": "The value to set for number fields" - } - ], - "description": "The value to set for the field. The type depends on the field's data type:\n- For text fields: provide a string value\n- For single_select fields: provide the option name as a string (must match an existing option)\n- For number fields: provide a numeric value\n- For date fields: provide an ISO 8601 date string", - "example": "Critical" - } - }, - "required": [ - "field_id", - "value" - ], - "additionalProperties": false - }, - "maxItems": 25 - } - } - }, - "examples": { - "default": { - "summary": "Set multiple field values", - "value": { - "issue_field_values": [ - { - "field_id": 123, - "value": "Critical" - }, + "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": [ { - "field_id": 456, - "value": 5 + "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" + ] }, { - "field_id": 789, - "value": "2024-12-31" + "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" + ] } ] } }, - "single-field": { - "summary": "Set a single field value", - "value": { - "issue_field_values": [ - { - "field_id": 123, - "value": "High Priority" - } + "anyOf": [ + { + "required": [ + "build_type" + ] + }, + { + "required": [ + "source" + ] + }, + { + "required": [ + "cname" + ] + }, + { + "required": [ + "public" + ] + }, + { + "required": [ + "https_enforced" ] } + ] + }, + "examples": { + "default": { + "value": { + "cname": "octocatblog.com", + "source": { + "branch": "main", + "path": "/" + } + } } } } } }, "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "description": "The current issue field values for this issue after setting the new values", - "items": { - "$ref": "#/components/schemas/issue-field-value" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/issue-field-value-items" - } - } - } - } - }, - "400": { - "$ref": "#/components/responses/bad_request" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" + "204": { + "description": "Response" }, "422": { "$ref": "#/components/responses/validation_failed" }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "400": { + "$ref": "#/components/responses/bad_request" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "issue-field-values" + "category": "pages", + "subcategory": "pages" } - } - }, - "/repositories/{repository_id}/issues/{issue_number}/issue-field-values/{issue_field_id}": { + }, "delete": { - "summary": "Delete an issue field value from an issue", - "description": "Remove a specific custom field value from an issue.\n\nOnly users with push access to the repository can delete issue field values. If you don't have the proper permissions, you'll receive a `403 Forbidden` response.\n\nIf the specified field does not have a value set on the issue, this operation will return a `404` error.\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).\"", + "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": [ - "issues" + "repos" ], - "operationId": "issues/delete-issue-field-value", + "operationId": "repos/delete-pages-site", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/issue-field-values#delete-an-issue-field-value-from-an-issue" + "url": "https://docs.github.com/rest/pages/pages#delete-a-apiname-pages-site" }, "parameters": [ { - "$ref": "#/components/parameters/repository-id" - }, - { - "$ref": "#/components/parameters/issue-number" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/issue-field-id" + "$ref": "#/components/parameters/repo" } ], "responses": { "204": { - "description": "Issue field value deleted successfully" + "description": "Response" }, - "403": { - "$ref": "#/components/responses/forbidden" + "422": { + "$ref": "#/components/responses/validation_failed" }, "404": { "$ref": "#/components/responses/not_found" }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { - "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "issues", - "subcategory": "issue-field-values" + "category": "pages", + "subcategory": "pages" } } }, - "/search/code": { + "/repos/{owner}/{repo}/pages/builds": { "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\n> [!NOTE]\n> `repository.description`, `repository.owner.type`, and `repository.owner.node_id` are closing down on this endpoint and will return `null` in a future API version. Use the [Get a repository](https://docs.github.com/rest/repos/repos#get-a-repository) endpoint (`GET /repos/{owner}/{repo}`) to retrieve full repository metadata.\n\nThis endpoint requires you to authenticate and limits you to 10 requests per minute.", + "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": [ - "search" + "repos" ], - "operationId": "search/code", + "operationId": "repos/list-pages-builds", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/search/search#search-code" + "url": "https://docs.github.com/rest/pages/pages#list-apiname-pages-builds" }, "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" - } - }, - { - "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" - ] - } + "$ref": "#/components/parameters/owner" }, { - "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" - } + "$ref": "#/components/parameters/repo" }, { "$ref": "#/components/parameters/per-page" @@ -69981,206 +69308,94 @@ "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" - } - } + "type": "array", + "items": { + "$ref": "#/components/schemas/page-build" } }, "examples": { "default": { - "$ref": "#/components/examples/code-search-result-item-paginated" + "$ref": "#/components/examples/page-build-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "403": { - "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "search", - "subcategory": "search" + "category": "pages", + "subcategory": "pages" } - } - }, - "/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`", + }, + "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": [ - "search" + "repos" ], - "operationId": "search/commits", + "operationId": "repos/request-pages-build", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/search/search#search-commits" + "url": "https://docs.github.com/rest/pages/pages#request-a-apiname-pages-build" }, "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" - } - }, - { - "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" - ] - } - }, - { - "$ref": "#/components/parameters/order" - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" } ], "responses": { - "200": { + "201": { "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" - } - } - } + "$ref": "#/components/schemas/page-build-status" }, "examples": { "default": { - "$ref": "#/components/examples/commit-search-result-item-paginated" + "$ref": "#/components/examples/page-build-status" } } } } - }, - "304": { - "$ref": "#/components/responses/not_modified" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "search", - "subcategory": "search" + "category": "pages", + "subcategory": "pages" } } }, - "/search/issues": { + "/repos/{owner}/{repo}/pages/builds/latest": { "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).\"", + "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": [ - "search" + "repos" ], - "operationId": "search/issues-and-pull-requests", + "operationId": "repos/get-latest-pages-build", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/search/search#search-issues-and-pull-requests" + "url": "https://docs.github.com/rest/pages/pages#get-latest-pages-build" }, "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" - } - }, - { - "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" - ] - } - }, - { - "$ref": "#/components/parameters/order" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/issues-advanced-search" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/search-type" + "$ref": "#/components/parameters/repo" } ], "responses": { @@ -70189,140 +69404,51 @@ "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "incomplete_results", - "items", - "search_type" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "incomplete_results": { - "type": "boolean" - }, - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/issue-search-result-item" - } - }, - "search_type": { - "type": "string", - "description": "The type of search that was performed. Possible values are `lexical`, `semantic`, or `hybrid`.", - "enum": [ - "lexical", - "semantic", - "hybrid" - ] - }, - "lexical_fallback_reason": { - "type": "array", - "description": "When a semantic or hybrid search falls back to lexical search, this field contains the reasons for the fallback. Only present when a fallback occurred.", - "items": { - "type": "string", - "enum": [ - "no_text_terms", - "quoted_text", - "non_issue_target", - "or_boolean_not_supported", - "no_accessible_repos", - "server_error", - "only_non_semantic_fields_requested" - ] - } - } - } + "$ref": "#/components/schemas/page-build" }, "examples": { "default": { - "$ref": "#/components/examples/issue-search-result-item-paginated" - }, - "lexical-fallback": { - "$ref": "#/components/examples/issue-search-result-item-paginated-lexical-fallback" + "$ref": "#/components/examples/page-build" } } } } - }, - "503": { - "$ref": "#/components/responses/service_unavailable" - }, - "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, - "category": "search", - "subcategory": "search" + "category": "pages", + "subcategory": "pages" } } }, - "/search/labels": { + "/repos/{owner}/{repo}/pages/builds/{build_id}": { "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.", + "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": [ - "search" + "repos" ], - "operationId": "search/labels", + "operationId": "repos/get-pages-build", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/search/search#search-labels" + "url": "https://docs.github.com/rest/pages/pages#get-apiname-pages-build" }, "parameters": [ { - "name": "repository_id", - "description": "The id of the repository.", - "in": "query", - "required": true, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/owner" }, { - "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" - } + "$ref": "#/components/parameters/repo" }, { - "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, + "name": "build_id", + "in": "path", + "required": true, "schema": { - "type": "string", - "enum": [ - "created", - "updated" - ] + "type": "integer" } - }, - { - "$ref": "#/components/parameters/order" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" } ], "responses": { @@ -70331,183 +69457,149 @@ "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" - } - } - } + "$ref": "#/components/schemas/page-build" }, "examples": { "default": { - "$ref": "#/components/examples/label-search-result-item-paginated" + "$ref": "#/components/examples/page-build" } } } } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "search", - "subcategory": "search" + "category": "pages", + "subcategory": "pages" } } }, - "/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.", + "/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": [ - "search" + "repos" ], - "operationId": "search/repos", + "operationId": "repos/create-pages-deployment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/search/search#search-repositories" + "url": "https://docs.github.com/rest/pages/pages#create-a-github-pages-deployment" }, "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" - } - }, - { - "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" - ] - } - }, - { - "$ref": "#/components/parameters/order" - }, - { - "$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", + "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": { - "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" - } - } - } + "$ref": "#/components/schemas/page-deployment" }, "examples": { "default": { - "$ref": "#/components/examples/repo-search-result-item-paginated" + "$ref": "#/components/examples/page-deployment" } } } } }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "400": { + "$ref": "#/components/responses/bad_request" }, "422": { "$ref": "#/components/responses/validation_failed" }, - "304": { - "$ref": "#/components/responses/not_modified" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "search", - "subcategory": "search" + "category": "pages", + "subcategory": "pages" } } }, - "/search/topics": { + "/repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}": { "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.", + "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": [ - "search" + "repos" ], - "operationId": "search/topics", + "operationId": "repos/get-pages-deployment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/search/search#search-topics" + "url": "https://docs.github.com/rest/pages/pages#get-the-status-of-a-github-pages-deployment" }, "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" - } + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/pages-deployment-id" } ], "responses": { @@ -70516,91 +69608,85 @@ "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/pages-deployment-status" }, "examples": { "default": { - "$ref": "#/components/examples/topic-search-result-item-paginated" + "$ref": "#/components/examples/pages-deployment-status" } } } } }, - "304": { - "$ref": "#/components/responses/not_modified" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "search", - "subcategory": "search" + "category": "pages", + "subcategory": "pages" } } }, - "/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).\"", + "/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": [ - "search" + "repos" ], - "operationId": "search/users", + "operationId": "repos/cancel-pages-deployment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/search/search#search-users" + "url": "https://docs.github.com/rest/pages/pages#cancel-a-github-pages-deployment" }, "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" - } + "$ref": "#/components/parameters/owner" }, { - "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" - ] - } + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/order" + "$ref": "#/components/parameters/pages-deployment-id" + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/no_content" }, + "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/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" } ], "responses": { @@ -70609,250 +69695,281 @@ "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/pages-health-check" }, "examples": { "default": { - "$ref": "#/components/examples/user-search-result-item-paginated" + "$ref": "#/components/examples/pages-health-check" } } } } }, - "304": { - "$ref": "#/components/responses/not_modified" + "202": { + "description": "Empty response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/empty-object" + }, + "examples": { + "default": { + "value": null + } + } + } + } }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "400": { + "description": "Custom domains are not available for GitHub Pages" }, "422": { - "$ref": "#/components/responses/validation_failed" + "description": "There isn't a CNAME for this page" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "search", - "subcategory": "search" + "category": "pages", + "subcategory": "pages" } } }, - "/teams/{team_id}": { + "/repos/{owner}/{repo}/private-vulnerability-reporting": { "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.", + "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": [ - "teams" + "repos" ], - "operationId": "teams/get-legacy", + "operationId": "repos/check-private-vulnerability-reporting", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/teams#get-a-team-legacy" + "url": "https://docs.github.com/rest/repos/repos#check-if-private-vulnerability-reporting-is-enabled-for-a-repository" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" } ], "responses": { "200": { - "description": "Response", + "description": "Private vulnerability reporting status", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-full" + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether or not private vulnerability reporting is enabled for the repository." + } + }, + "required": [ + "enabled" + ] }, "examples": { "default": { - "$ref": "#/components/examples/team-full" + "value": { + "enabled": true + } } } } } }, - "404": { - "$ref": "#/components/responses/not_found" + "422": { + "$ref": "#/components/responses/bad_request" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "teams" + "category": "repos", + "subcategory": "repos" + } + }, + "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" }, - "deprecated": true + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "204": { + "$ref": "#/components/responses/no_content" + }, + "422": { + "$ref": "#/components/responses/bad_request" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" + } }, - "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`.", + "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": [ - "teams" + "repos" ], - "operationId": "teams/update-legacy", + "operationId": "repos/disable-private-vulnerability-reporting", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/teams#update-a-team-legacy" + "url": "https://docs.github.com/rest/repos/repos#disable-private-vulnerability-reporting-for-a-repository" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$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 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" - ] - }, - "examples": { - "default": { - "value": { - "name": "new team name", - "description": "new team description", - "privacy": "closed", - "notification_setting": "notifications_enabled" - } - } - } - } + "responses": { + "204": { + "$ref": "#/components/responses/no_content" + }, + "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" + }, + { + "$ref": "#/components/parameters/repo" + } + ], "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" - } - } - } - } - }, - "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-full" + "type": "array", + "items": { + "$ref": "#/components/schemas/custom-property-value" + } }, "examples": { "default": { - "$ref": "#/components/examples/team-full" + "$ref": "#/components/examples/custom-property-values" } } } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, "403": { "$ref": "#/components/responses/forbidden" + }, + "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 + "category": "repos", + "subcategory": "custom-properties" + } }, - "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.", + "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": [ - "teams" + "repos" ], - "operationId": "teams/delete-legacy", + "operationId": "repos/custom-properties-for-repos-create-or-update-repository-values", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/teams#delete-a-team-legacy" + "url": "https://docs.github.com/rest/repos/custom-properties#create-or-update-custom-property-values-for-a-repository" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" + }, + { + "$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" + ] + }, + "examples": { + "default": { + "$ref": "#/components/examples/create-or-update-custom-properties-values" + } + } + } + } + }, "responses": { "204": { - "description": "Response" + "description": "No Content when custom property values are successfully created or updated" + }, + "403": { + "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" @@ -70864,29 +69981,91 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "teams" - }, - "deprecated": true + "category": "repos", + "subcategory": "custom-properties" + } } }, - "/teams/{team_id}/invitations": { + "/repos/{owner}/{repo}/pulls": { "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`.", + "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": [ - "teams" + "pulls" ], - "operationId": "teams/list-pending-invitations-legacy", + "operationId": "pulls/list", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/members#list-pending-team-invitations-legacy" + "url": "https://docs.github.com/rest/pulls/pulls#list-pull-requests" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" + }, + { + "$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. `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" + } + }, + { + "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" + ] + } }, { "$ref": "#/components/parameters/per-page" @@ -70903,12 +70082,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/organization-invitation" + "$ref": "#/components/schemas/pull-request-simple" } }, "examples": { "default": { - "$ref": "#/components/examples/organization-invitation-items" + "$ref": "#/components/examples/pull-request-simple-items" } } } @@ -70918,50 +70097,190 @@ "$ref": "#/components/headers/link" } } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "members" + "category": "pulls", + "subcategory": "pulls" + } + }, + "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" }, - "deprecated": true + "parameters": [ + { + "$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 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" + } + } + } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "pulls" + } } }, - "/teams/{team_id}/members": { + "/repos/{owner}/{repo}/pulls/comments": { "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.", + "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": [ - "teams" + "pulls" ], - "operationId": "teams/list-members-legacy", + "operationId": "pulls/list-review-comments-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/members#list-team-members-legacy" + "url": "https://docs.github.com/rest/pulls/comments#list-review-comments-in-a-repository" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" }, { - "name": "role", - "description": "Filters members returned by their role in the team.", + "$ref": "#/components/parameters/repo" + }, + { + "name": "sort", "in": "query", "required": false, "schema": { "type": "string", "enum": [ - "member", - "maintainer", - "all" - ], - "default": "all" + "created", + "updated", + "created_at" + ] + } + }, + { + "name": "direction", + "description": "The direction to sort results. Ignored without `sort` parameter.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] } }, + { + "$ref": "#/components/parameters/since" + }, { "$ref": "#/components/parameters/per-page" }, @@ -70977,12 +70296,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/simple-user" + "$ref": "#/components/schemas/pull-request-review-comment" } }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/pull-request-review-comment-items" } } } @@ -70992,120 +70311,158 @@ "$ref": "#/components/headers/link" } } - }, - "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 + "category": "pulls", + "subcategory": "comments" + } } }, - "/teams/{team_id}/members/{username}": { + "/repos/{owner}/{repo}/pulls/comments/{comment_id}": { "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.", + "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": [ - "teams" + "pulls" ], - "operationId": "teams/get-member-legacy", + "operationId": "pulls/get-review-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/members#get-team-member-legacy" + "url": "https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/comment-id" } ], "responses": { - "204": { - "description": "if user is a member" - }, - "404": { - "description": "if user is not a member" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review-comment" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review-comment-2" + } + } + } + } + }, + "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 + "category": "pulls", + "subcategory": "comments" + } }, - "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).\"", + "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": [ - "teams" + "pulls" ], - "operationId": "teams/add-member-legacy", + "operationId": "pulls/update-review-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/members#add-team-member-legacy" + "url": "https://docs.github.com/rest/pulls/comments#update-a-review-comment-for-a-pull-request" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/repo" + }, + { + "$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": { - "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" + "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, - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "members" - }, - "deprecated": true + "category": "pulls", + "subcategory": "comments" + } }, "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/).\"", + "summary": "Delete a review comment for a pull request", + "description": "Deletes a review comment.", "tags": [ - "teams" + "pulls" ], - "operationId": "teams/remove-member-legacy", + "operationId": "pulls/delete-review-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/members#remove-team-member-legacy" + "url": "https://docs.github.com/rest/pulls/comments#delete-a-review-comment-for-a-pull-request" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/comment-id" } ], "responses": { @@ -71113,38 +70470,63 @@ "description": "Response" }, "404": { - "description": "Not Found if team synchronization is setup" + "$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 + "category": "pulls", + "subcategory": "comments" + } } }, - "/teams/{team_id}/memberships/{username}": { + "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions": { "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).", + "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": [ - "teams" + "reactions" ], - "operationId": "teams/get-membership-for-user-legacy", + "operationId": "reactions/list-for-pull-request-review-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/members#get-team-membership-for-a-user-legacy" + "url": "https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-pull-request-review-comment" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/username" + "$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 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" } ], "responses": { @@ -71153,14 +70535,22 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-membership" + "type": "array", + "items": { + "$ref": "#/components/schemas/reaction" + } }, "examples": { - "response-if-user-is-a-team-maintainer": { - "$ref": "#/components/examples/team-membership-response-if-user-is-a-team-maintainer" + "default": { + "$ref": "#/components/examples/reaction-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, "404": { @@ -71170,55 +70560,62 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "members" - }, - "deprecated": true + "category": "reactions", + "subcategory": "reactions" + } }, - "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.", + "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": [ - "teams" + "reactions" ], - "operationId": "teams/add-or-update-membership-for-user-legacy", + "operationId": "reactions/create-for-pull-request-review-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user-legacy" + "url": "https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-pull-request-review-comment" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/comment-id" } ], "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { "type": "object", "properties": { - "role": { + "content": { "type": "string", - "description": "The role that this user should have in the team.", + "description": "The [reaction type](https://docs.github.com/rest/reactions/reactions#about-reactions) to add to the pull request review comment.", "enum": [ - "member", - "maintainer" - ], - "default": "member" + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "rocket", + "eyes" + ] } - } + }, + "required": [ + "content" + ] }, "examples": { "default": { - "summary": "Assign the member role for a user in a team", "value": { - "role": "member" + "content": "heart" } } } @@ -71227,241 +70624,331 @@ }, "responses": { "200": { - "description": "Response", + "description": "Reaction exists", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-membership" + "$ref": "#/components/schemas/reaction" }, "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/reaction" } } } } }, - "403": { - "description": "Forbidden if team synchronization is set up" + "201": { + "description": "Reaction created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reaction" + }, + "examples": { + "default": { + "$ref": "#/components/examples/reaction" + } + } + } + } }, "422": { - "description": "Unprocessable Entity if you attempt to add an organization to a team" - }, - "404": { - "$ref": "#/components/responses/not_found" + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "removalDate": "2021-02-01", - "deprecationDate": "2020-01-21", - "category": "teams", - "subcategory": "members" - }, - "deprecated": true - }, + "category": "reactions", + "subcategory": "reactions" + } + } + }, + "/repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}": { "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/).\"", + "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": [ - "teams" + "reactions" ], - "operationId": "teams/remove-membership-for-user-legacy", + "operationId": "reactions/delete-for-pull-request-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user-legacy" + "url": "https://docs.github.com/rest/reactions/reactions#delete-a-pull-request-comment-reaction" }, "parameters": [ { - "$ref": "#/components/parameters/team-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/comment-id" + }, + { + "$ref": "#/components/parameters/reaction-id" } ], "responses": { "204": { "description": "Response" - }, - "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 + "category": "reactions", + "subcategory": "reactions" + } } }, - "/teams/{team_id}/repos": { + "/repos/{owner}/{repo}/pulls/{pull_number}": { "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.", + "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": [ - "teams" + "pulls" ], - "operationId": "teams/list-repos-legacy", + "operationId": "pulls/get", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/teams#list-team-repositories-legacy" + "url": "https://docs.github.com/rest/pulls/pulls#get-a-pull-request" }, "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/pull-number" } ], "responses": { "200": { - "description": "Response", + "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": { - "type": "array", - "items": { - "$ref": "#/components/schemas/minimal-repository" - } + "$ref": "#/components/schemas/pull-request" }, "examples": { "default": { - "$ref": "#/components/examples/minimal-repository-items" + "$ref": "#/components/examples/pull-request" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, + "304": { + "$ref": "#/components/responses/not_modified" + }, "404": { "$ref": "#/components/responses/not_found" + }, + "406": { + "$ref": "#/components/responses/unacceptable" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "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:", + "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": [ - "teams" + "pulls" ], - "operationId": "teams/check-permissions-for-repo-legacy", + "operationId": "pulls/update", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository-legacy" + "url": "https://docs.github.com/rest/pulls/pulls#update-a-pull-request" }, "parameters": [ - { - "$ref": "#/components/parameters/team-id" - }, { "$ref": "#/components/parameters/owner" }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/pull-number" } ], + "requestBody": { + "required": false, + "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://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": "Alternative response with extra repository information", + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/team-repository" + "$ref": "#/components/schemas/pull-request" }, "examples": { - "alternative-response-with-extra-repository-information": { - "$ref": "#/components/examples/team-repository-alternative-response-with-extra-repository-information" + "default": { + "$ref": "#/components/examples/pull-request" } } } } }, - "204": { - "description": "Response if repository is managed by this team" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "404": { - "description": "Not Found if repository is not managed by this team" + "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 - }, - "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).\"", + "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": [ - "teams" + "codespaces" ], - "operationId": "teams/add-or-update-repo-permissions-legacy", + "operationId": "codespaces/create-with-pr-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions-legacy" + "url": "https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-from-a-pull-request" }, "parameters": [ - { - "$ref": "#/components/parameters/team-id" - }, { "$ref": "#/components/parameters/owner" }, { "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/pull-number" } ], "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { "type": "object", + "nullable": true, "properties": { - "permission": { + "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", - "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" + "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" } } }, "examples": { "default": { - "summary": "Example of setting permission to pull", "value": { - "permission": "push" + "repository_id": 1, + "ref": "main" } } } @@ -71469,79 +70956,97 @@ } }, "responses": { - "204": { - "description": "Response" + "201": { + "description": "Response when the codespace was successfully created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/codespace" + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespace" + } + } + } + } + }, + "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" + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/requires_authentication" }, "403": { "$ref": "#/components/responses/forbidden" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "404": { + "$ref": "#/components/responses/not_found" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "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.", + "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": [ - "teams" + "pulls" ], - "operationId": "teams/remove-repo-legacy", + "operationId": "pulls/list-review-comments", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team-legacy" + "url": "https://docs.github.com/rest/pulls/comments#list-review-comments-on-a-pull-request" }, "parameters": [ - { - "$ref": "#/components/parameters/team-id" - }, { "$ref": "#/components/parameters/owner" }, { "$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" + "$ref": "#/components/parameters/pull-number" + }, + { + "$ref": "#/components/parameters/sort" + }, + { + "name": "direction", + "description": "The direction to sort results. Ignored without `sort` parameter.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + } + }, + { + "$ref": "#/components/parameters/since" }, { "$ref": "#/components/parameters/per-page" @@ -71552,18 +71057,18 @@ ], "responses": { "200": { - "description": "if child teams exist", + "description": "Response", "content": { "application/json": { "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/team" + "$ref": "#/components/schemas/pull-request-review-comment" } }, "examples": { - "response-if-child-teams-exist": { - "$ref": "#/components/examples/team-items-response-if-child-teams-exist" + "default": { + "$ref": "#/components/examples/pull-request-review-comment-items" } } } @@ -71573,157 +71078,212 @@ "$ref": "#/components/headers/link" } } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "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.", + "category": "pulls", + "subcategory": "comments" + } + }, + "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": [ - "users" + "pulls" ], - "operationId": "users/get-authenticated", + "operationId": "pulls/create-review-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/users#get-the-authenticated-user" + "url": "https://docs.github.com/rest/pulls/comments#create-a-review-comment-for-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", + "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" + ] + }, + "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" + } + } + } + } + } }, - "parameters": [], "responses": { - "200": { + "201": { "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" - } - } + "$ref": "#/components/schemas/pull-request-review-comment" }, "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" + "example-for-a-multi-line-comment": { + "$ref": "#/components/examples/pull-request-review-comment-example-for-a-multi-line-comment" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1", + "schema": { + "type": "string" + } + } } }, - "304": { - "$ref": "#/components/responses/not_modified" + "422": { + "$ref": "#/components/responses/validation_failed" }, "403": { "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" } }, "x-github": { + "triggersNotification": true, "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "users", - "subcategory": "users" + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "comments" } - }, - "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.", + } + }, + "/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": [ - "users" + "pulls" ], - "operationId": "users/update-authenticated", + "operationId": "pulls/create-reply-for-review-comment", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/users#update-the-authenticated-user" + "url": "https://docs.github.com/rest/pulls/comments#create-a-reply-for-a-review-comment" }, - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/pull-number" + }, + { + "$ref": "#/components/parameters/comment-id" + } + ], "requestBody": { - "required": false, + "required": true, "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.", + "body": { "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" + "description": "The text of the review comment." } - } + }, + "required": [ + "body" + ] }, "examples": { "default": { - "summary": "Example of updating blog and name", "value": { - "blog": "https://github.com/blog", - "name": "monalisa octocat" + "body": "Great stuff!" } } } @@ -71731,58 +71291,64 @@ } }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/private-user" + "$ref": "#/components/schemas/pull-request-review-comment" }, "examples": { "default": { - "$ref": "#/components/examples/private-user" + "$ref": "#/components/examples/pull-request-review-comment" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1", + "schema": { + "type": "string" + } + } } }, - "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": { + "triggersNotification": true, "githubCloudOnly": false, "enabledForGitHubApps": false, - "category": "users", - "subcategory": "users" + "category": "pulls", + "subcategory": "comments" } } }, - "/user/blocks": { + "/repos/{owner}/{repo}/pulls/{pull_number}/commits": { "get": { - "summary": "List users blocked by the authenticated user", - "description": "List the users you've blocked on your personal account.", + "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": [ - "users" + "pulls" ], - "operationId": "users/list-blocked-by-authenticated-user", + "operationId": "pulls/list-commits", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/blocking#list-users-blocked-by-the-authenticated-user" + "url": "https://docs.github.com/rest/pulls/pulls#list-commits-on-a-pull-request" }, "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/pull-number" + }, { "$ref": "#/components/parameters/per-page" }, @@ -71798,232 +71364,272 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/simple-user" + "$ref": "#/components/schemas/commit" } }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/commit-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" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "users", - "subcategory": "blocking" + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "pulls" } } }, - "/user/blocks/{username}": { + "/repos/{owner}/{repo}/pulls/{pull_number}/files": { "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.", + "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": [ - "users" + "pulls" ], - "operationId": "users/check-blocked", + "operationId": "pulls/list-files", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/blocking#check-if-a-user-is-blocked-by-the-authenticated-user" + "url": "https://docs.github.com/rest/pulls/pulls#list-pull-requests-files" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/pull-number" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "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" + "type": "array", + "items": { + "$ref": "#/components/schemas/diff-entry" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/diff-entry-items" + } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - "304": { - "$ref": "#/components/responses/not_modified" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "403": { - "$ref": "#/components/responses/forbidden" + "500": { + "$ref": "#/components/responses/internal_error" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "users", - "subcategory": "blocking" + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "pulls" } - }, - "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.", + } + }, + "/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": [ - "users" + "pulls" ], - "operationId": "users/block", + "operationId": "pulls/check-if-merged", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/blocking#block-a-user" + "url": "https://docs.github.com/rest/pulls/pulls#check-if-a-pull-request-has-been-merged" }, "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" + "$ref": "#/components/parameters/owner" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + { + "$ref": "#/components/parameters/repo" }, - "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" + "$ref": "#/components/parameters/pull-number" } ], "responses": { "204": { - "description": "Response" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "description": "Response if pull request has been merged" }, "404": { - "$ref": "#/components/responses/not_found" + "description": "Not Found if pull request has not been merged" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "users", - "subcategory": "blocking" + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "pulls" } - } - }, - "/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.", + }, + "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": [ - "codespaces" + "pulls" ], - "operationId": "codespaces/list-for-authenticated-user", + "operationId": "pulls/merge", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/codespaces#list-codespaces-for-the-authenticated-user" + "url": "https://docs.github.com/rest/pulls/pulls#merge-a-pull-request" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/repository-id-in-query" + "$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": "Response", + "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" + } + } + } + } + }, + "405": { + "description": "Method Not Allowed if merge cannot be performed", "content": { "application/json": { "schema": { "type": "object", - "required": [ - "total_count", - "codespaces" - ], "properties": { - "total_count": { - "type": "integer" + "message": { + "type": "string" }, - "codespaces": { - "type": "array", - "items": { - "$ref": "#/components/schemas/codespace" - } + "documentation_url": { + "type": "string" } } }, "examples": { - "default": { - "$ref": "#/components/examples/codespaces-list" + "response-if-merge-cannot-be-performed": { + "value": { + "message": "Pull Request is not mergeable" + } } } } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "500": { - "$ref": "#/components/responses/internal_error" + "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." + } + } + } + } + } }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "422": { + "$ref": "#/components/responses/validation_failed" }, "403": { "$ref": "#/components/responses/forbidden" @@ -72033,155 +71639,92 @@ } }, "x-github": { + "triggersNotification": true, "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "codespaces" + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "pulls" } - }, - "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.", + } + }, + "/repos/{owner}/{repo}/pulls/{pull_number}/merge-async": { + "put": { + "summary": "Merge a pull request asynchronously", + "description": "Merges a pull request into the base branch in the background. Merging in this way allows certain types of errors to be retried, and avoids the risk of timeouts for particularly complex merges.\n\nThis is the required method for merging stacked PRs, but also supports unstacked PRs. When using this endpoint to merge a stacked pull request, all pull requests in the stack up to and including the requested PR will be merged into the base branch.\n\nThe response includes a UUID that can be used to fetch the result of the merge. If another asynchronous merge request has already been made for this pull request, the UUID of that request will be returned instead with a 409 response status to indicate that the merge options may be different from those that were requested. If there isn't an existing asynchronous merge request, a 202 response status is used.\n\nIf the pull request is already merged, the merge commit OID will be returned immediately with a 200 status.\n\nIf the pull request cannot be merged (e.g. because it is closed, or still a draft) this result will be returned immediately with a 400 response status. Branch protection rules and repository rules are not run at this stage, only basic pull request state checks are performed.", "tags": [ - "codespaces" + "pulls" ], - "operationId": "codespaces/create-for-authenticated-user", + "operationId": "pulls/merge-async", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-for-the-authenticated-user" + "url": "https://docs.github.com/rest/pulls/pulls#merge-a-pull-request-asynchronously" + }, + "x-github": { + "triggersNotification": true, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "pulls" }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/pull-number" + } + ], "requestBody": { - "required": true, + "required": false, "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", + "nullable": true, + "properties": { + "commit_title": { + "type": "string", + "description": "Title for the automatic commit message." }, - { - "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" - } - } + "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. If not provided, the current head of the PR at the time of the request will be used; if the PR is pushed in between the merge being requested and being executed, the merge will be cancelled." + }, + "merge_method": { + "type": "string", + "description": "The merge method to use.", + "enum": [ + "merge", + "squash", + "rebase" + ] + }, + "merge_action": { + "type": "string", + "description": "The action that will be taken to merge the pull request. `direct_merge` merges the pull request directly without using a merge queue; `merge_queue` adds the pull request to a merge queue; `default` selects the most appropriate option.", + "enum": [ + "default", + "direct_merge", + "merge_queue" + ] } - ] + } }, "examples": { "default": { "value": { - "repository_id": 1, - "ref": "main", - "geo": "UsWest" + "commit_title": "Fix race condition", + "commit_message": "Avoids a race by trying to read the file and handling the exception if it does not exist.", + "sha": "6358cd125586d9def8c3e5943f23506202da81cc", + "merge_method": "squash", + "merge_action": "default" } } } @@ -72189,214 +71732,397 @@ } }, "responses": { - "201": { - "description": "Response when the codespace was successfully created", + "202": { + "description": "if the merge request was accepted and will run in the background", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/codespace" + "$ref": "#/components/schemas/pull-request-merge-async-result" }, "examples": { - "default": { - "$ref": "#/components/examples/codespace" + "response-if-merge-request-was-accepted": { + "summary": "Request accepted", + "value": { + "status": "pending", + "details": { + "message": "Merge request enqueued.", + "uuid": "630b9d5e-3f2a-4f7e-8b0c-2d5f9a8c1e42", + "merge_method": "merge", + "merge_action": "default", + "expected_head_sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + } + } } } } } }, - "202": { - "description": "Response when the codespace creation partially failed but is being retried in the background", + "200": { + "description": "if the pull request was already merged, or is already in a merge queue", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/codespace" + "$ref": "#/components/schemas/pull-request-merge-async-result" }, "examples": { - "default": { - "$ref": "#/components/examples/codespace" + "response-if-pull-request-was-already-merged": { + "summary": "Already merged", + "value": { + "status": "merged", + "details": { + "message": "Pull request is already merged.", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + } + } + }, + "response-if-pull-request-is-already-enqueued": { + "summary": "Already enqueued", + "value": { + "status": "enqueued", + "details": { + "message": "Pull request is already in the merge queue." + } + } } } } } }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "409": { + "description": "if there is an existing merge request already enqueued for this pull request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-merge-async-result" + }, + "examples": { + "response-if-a-merge-request-already-exists": { + "value": { + "status": "pending", + "details": { + "message": "A merge request already exists for this pull request.", + "uuid": "630b9d5e-3f2a-4f7e-8b0c-2d5f9a8c1e42", + "merge_method": "squash", + "merge_action": "default", + "expected_head_sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + } + } + } + } + } + } + }, + "400": { + "description": "if the pull request is not ready to be merged, e.g. because it is closed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-merge-async-result" + }, + "examples": { + "response-if-pull-request-is-not-ready-to-be-merged": { + "value": { + "status": "failed", + "details": { + "message": "Pull request is closed." + } + } + } + } + } + } + }, + "422": { + "$ref": "#/components/responses/validation_failed" }, "403": { "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "codespaces" } } }, - "/user/codespaces/secrets": { + "/repos/{owner}/{repo}/pulls/{pull_number}/merge-async/{uuid}": { "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.", + "summary": "Get the result of an asynchronous merge", + "description": "Fetches the current result of an asynchronous merge request, identified by the UUID that was returned when the merge was requested.\n\nWhile the merge is still queued, the response includes the UUID, merge method, and expected head SHA of the request. Once the merge has completed, the response reports whether it was merged, including the merge commit OID on success or a message describing why it could not be merged on failure.\n\nThe result of an asynchronous merge request is retained for 24 hours after its most recent update. After this window the request expires and this endpoint returns a `404` response for its UUID.", "tags": [ - "codespaces" + "pulls" ], - "operationId": "codespaces/list-secrets-for-authenticated-user", + "operationId": "pulls/get-merge-async-result", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/secrets#list-secrets-for-the-authenticated-user" + "url": "https://docs.github.com/rest/pulls/pulls#get-the-result-of-an-asynchronous-merge" + }, + "x-github": { + "triggersNotification": false, + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "pulls" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/pull-number" + }, + { + "name": "uuid", + "description": "The UUID of the asynchronous merge request, as returned when the merge was requested.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } } ], "responses": { "200": { - "description": "Response", + "description": "the current result of the asynchronous merge request", "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "secrets" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "secrets": { - "type": "array", - "items": { - "$ref": "#/components/schemas/codespaces-secret" - } - } - } + "$ref": "#/components/schemas/pull-request-merge-async-result" }, "examples": { - "default": { - "$ref": "#/components/examples/repo-codespaces-secret-paginated" + "response-if-the-merge-is-still-queued": { + "summary": "Still queued", + "value": { + "status": "pending", + "details": { + "message": "Merge request is in progress.", + "uuid": "630b9d5e-3f2a-4f7e-8b0c-2d5f9a8c1e42", + "merge_method": "merge", + "merge_action": "default", + "expected_head_sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + } + } + }, + "response-if-the-pull-request-is-enqueued": { + "summary": "Enqueued in the merge queue", + "value": { + "status": "enqueued", + "details": { + "message": "Pull request is in the merge queue." + } + } + }, + "response-if-the-merge-succeeded": { + "summary": "Merge succeeded", + "value": { + "status": "merged", + "details": { + "message": "Pull request was merged.", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + } + } + }, + "response-if-the-merge-failed": { + "summary": "Merge failed", + "value": { + "status": "failed", + "details": { + "message": "Merge conflict: the pull request could not be merged." + } + } } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "secrets" } } }, - "/user/codespaces/secrets/public-key": { + "/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers": { "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.", + "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": [ - "codespaces" + "pulls" ], - "operationId": "codespaces/get-public-key-for-authenticated-user", + "operationId": "pulls/list-requested-reviewers", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/secrets#get-public-key-for-the-authenticated-user" + "url": "https://docs.github.com/rest/pulls/review-requests#get-all-requested-reviewers-for-a-pull-request" }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/pull-number" + } + ], "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/codespaces-user-public-key" + "$ref": "#/components/schemas/pull-request-review-request" }, "examples": { "default": { - "$ref": "#/components/examples/codespaces-user-public-key" + "$ref": "#/components/examples/simple-pull-request-review-request" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "secrets" + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "review-requests" } - } - }, - "/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.", + }, + "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": [ - "codespaces" + "pulls" ], - "operationId": "codespaces/get-secret-for-authenticated-user", + "operationId": "pulls/request-reviewers", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/secrets#get-a-secret-for-the-authenticated-user" + "url": "https://docs.github.com/rest/pulls/review-requests#request-reviewers-for-a-pull-request" }, "parameters": [ { - "$ref": "#/components/parameters/secret-name" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$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": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/codespaces-secret" + "$ref": "#/components/schemas/pull-request-simple" }, "examples": { "default": { - "$ref": "#/components/examples/user-codespaces-secret" + "$ref": "#/components/examples/pull-request-review-request" } } } } + }, + "422": { + "description": "Unprocessable Entity if user is not a collaborator" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { + "triggersNotification": true, "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "secrets" + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "review-requests" } }, - "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.", + "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": [ - "codespaces" + "pulls" ], - "operationId": "codespaces/create-or-update-secret-for-authenticated-user", + "operationId": "pulls/remove-requested-reviewers", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/secrets#create-or-update-a-secret-for-the-authenticated-user" + "url": "https://docs.github.com/rest/pulls/review-requests#remove-requested-reviewers-from-a-pull-request" }, "parameters": [ { - "$ref": "#/components/parameters/secret-name" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/pull-number" } ], "requestBody": { @@ -72406,42 +72132,35 @@ "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." + "reviewers": { + "type": "array", + "description": "An array of user `login`s that will be removed.", + "items": { + "type": "string" + } }, - "selected_repository_ids": { + "team_reviewers": { "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.", + "description": "An array of team `slug`s that will be removed.", "items": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "string" - } - ] + "type": "string" } } }, "required": [ - "key_id" + "reviewers" ] }, "examples": { "default": { "value": { - "encrypted_value": "c2VjcmV0", - "key_id": "012345678912345678", - "selected_repository_ids": [ - "1234567", - "2345678" + "reviewers": [ + "octocat", + "hubot", + "other_user" + ], + "team_reviewers": [ + "justice-league" ] } } @@ -72450,176 +72169,195 @@ } }, "responses": { - "201": { - "description": "Response after successfully creating a secret", + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/empty-object" + "$ref": "#/components/schemas/pull-request-simple" }, "examples": { "default": { - "value": null + "$ref": "#/components/examples/pull-request-simple" } } } } }, - "204": { - "description": "Response after successfully updating a secret" - }, "422": { "$ref": "#/components/responses/validation_failed" - }, - "404": { - "$ref": "#/components/responses/not_found" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "secrets" - } - }, - "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" + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "review-requests" } } }, - "/user/codespaces/secrets/{secret_name}/repositories": { + "/repos/{owner}/{repo}/pulls/{pull_number}/reviews": { "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.", + "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": [ - "codespaces" + "pulls" ], - "operationId": "codespaces/list-repositories-for-secret-for-authenticated-user", + "operationId": "pulls/list-reviews", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/secrets#list-selected-repositories-for-a-user-secret" + "url": "https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request" }, "parameters": [ { - "$ref": "#/components/parameters/secret-name" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/pull-number" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { "200": { - "description": "Response", + "description": "The list of reviews returns in chronological order.", "content": { "application/json": { "schema": { - "type": "object", - "required": [ - "total_count", - "repositories" - ], - "properties": { - "total_count": { - "type": "integer" - }, - "repositories": { - "type": "array", - "items": { - "$ref": "#/components/schemas/minimal-repository" - } - } + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-review" } }, "examples": { "default": { - "$ref": "#/components/examples/minimal-repository-paginated" + "$ref": "#/components/examples/pull-request-review-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "500": { - "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "secrets" + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "reviews" } }, - "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.", + "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": [ - "codespaces" + "pulls" ], - "operationId": "codespaces/set-repositories-for-secret-for-authenticated-user", + "operationId": "pulls/create-review", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/secrets#set-selected-repositories-for-a-user-secret" + "url": "https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request" }, "parameters": [ { - "$ref": "#/components/parameters/secret-name" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/pull-number" } ], "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { "type": "object", "properties": { - "selected_repository_ids": { + "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": "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.", + "description": "Use the following table to specify the location, destination, and contents of the draft review comment.", "items": { - "type": "integer" + "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" + ] } } - }, - "required": [ - "selected_repository_ids" - ] + } }, "examples": { "default": { "value": { - "selected_repository_ids": [ - "1296269", - "1296280" + "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." + } ] } } @@ -72628,143 +72366,61 @@ } }, "responses": { - "204": { - "description": "No Content when repositories were added to the selected list" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "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" - }, - { - "name": "repository_id", - "in": "path", - "required": true, - "schema": { - "type": "integer" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/pull-request-review" + }, + "examples": { + "default": { + "$ref": "#/components/examples/pull-request-review" + } + } + } } - } - ], - "responses": { - "204": { - "description": "No Content when repository was added to the selected list" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "422": { + "$ref": "#/components/responses/validation_failed_simple" }, "403": { "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "500": { - "$ref": "#/components/responses/internal_error" } }, "x-github": { + "triggersNotification": true, "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "secrets" + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "reviews" } - }, - "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.", + } + }, + "/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": [ - "codespaces" + "pulls" ], - "operationId": "codespaces/remove-repository-for-secret-for-authenticated-user", + "operationId": "pulls/get-review", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/secrets#remove-a-selected-repository-from-a-user-secret" + "url": "https://docs.github.com/rest/pulls/reviews#get-a-review-for-a-pull-request" }, "parameters": [ { - "$ref": "#/components/parameters/secret-name" + "$ref": "#/components/parameters/owner" }, { - "name": "repository_id", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } - } - ], - "responses": { - "204": { - "description": "No Content when repository was removed from the selected list" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "$ref": "#/components/parameters/repo" }, - "404": { - "$ref": "#/components/responses/not_found" + { + "$ref": "#/components/parameters/pull-number" }, - "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" + "$ref": "#/components/parameters/review-id" } ], "responses": { @@ -72773,83 +72429,72 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/codespace" + "$ref": "#/components/schemas/pull-request-review" }, "examples": { "default": { - "$ref": "#/components/examples/codespace" + "$ref": "#/components/examples/pull-request-review-4" } } } } }, - "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, - "category": "codespaces", - "subcategory": "codespaces" + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "reviews" } }, - "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.", + "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": [ - "codespaces" + "pulls" ], - "operationId": "codespaces/update-for-authenticated-user", + "operationId": "pulls/update-review", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/codespaces#update-a-codespace-for-the-authenticated-user" + "url": "https://docs.github.com/rest/pulls/reviews#update-a-review-for-a-pull-request" }, "parameters": [ { - "$ref": "#/components/parameters/codespace-name" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/pull-number" + }, + { + "$ref": "#/components/parameters/review-id" } ], "requestBody": { - "required": false, + "required": true, "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" - } + "body": { + "type": "string", + "description": "The body text of the pull request review." } - } + }, + "required": [ + "body" + ] }, "examples": { "default": { "value": { - "machine": "standardLinux" + "body": "This is close to perfect! Please address the suggested inline change. And add more about this." } } } @@ -72862,64 +72507,70 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/codespace" + "$ref": "#/components/schemas/pull-request-review" }, "examples": { "default": { - "$ref": "#/components/examples/codespace" + "$ref": "#/components/examples/pull-request-review-5" } } } } }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "codespaces" + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "reviews" } }, "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.", + "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": [ - "codespaces" + "pulls" ], - "operationId": "codespaces/delete-for-authenticated-user", + "operationId": "pulls/delete-pending-review", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/codespaces#delete-a-codespace-for-the-authenticated-user" + "url": "https://docs.github.com/rest/pulls/reviews#delete-a-pending-review-for-a-pull-request" }, "parameters": [ { - "$ref": "#/components/parameters/codespace-name" - } - ], - "responses": { - "202": { - "$ref": "#/components/responses/accepted" + "$ref": "#/components/parameters/owner" }, - "304": { - "$ref": "#/components/responses/not_modified" + { + "$ref": "#/components/parameters/repo" }, - "500": { - "$ref": "#/components/responses/internal_error" + { + "$ref": "#/components/parameters/pull-number" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + { + "$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" + } + } + } + } }, - "403": { - "$ref": "#/components/responses/forbidden" + "422": { + "$ref": "#/components/responses/validation_failed_simple" }, "404": { "$ref": "#/components/responses/not_found" @@ -72927,100 +72578,151 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "codespaces" + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "reviews" } } }, - "/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.", + "/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": [ - "codespaces" + "pulls" ], - "operationId": "codespaces/export-for-authenticated-user", + "operationId": "pulls/list-comments-for-review", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/codespaces#export-a-codespace-for-the-authenticated-user" + "url": "https://docs.github.com/rest/pulls/reviews#list-comments-for-a-pull-request-review" }, "parameters": [ { - "$ref": "#/components/parameters/codespace-name" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/pull-number" + }, + { + "$ref": "#/components/parameters/review-id" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { - "202": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/codespace-export-details" + "type": "array", + "items": { + "$ref": "#/components/schemas/review-comment" + } }, "examples": { "default": { - "$ref": "#/components/examples/user-export-details" + "$ref": "#/components/examples/review-comment-items" } } } + }, + "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": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "codespaces" + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "reviews" } } }, - "/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.", + "/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": [ - "codespaces" + "pulls" ], - "operationId": "codespaces/get-export-details-for-authenticated-user", + "operationId": "pulls/dismiss-review", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/codespaces#get-details-about-a-codespace-export" + "url": "https://docs.github.com/rest/pulls/reviews#dismiss-a-review-for-a-pull-request" }, "parameters": [ { - "$ref": "#/components/parameters/codespace-name" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/export-id" + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/pull-number" + }, + { + "$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" + } + } + } + } + } + }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/codespace-export-details" + "$ref": "#/components/schemas/pull-request-review" }, "examples": { "default": { - "$ref": "#/components/examples/user-export-details" + "$ref": "#/components/examples/pull-request-review-3" } } } @@ -73028,128 +72730,156 @@ }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "codespaces" + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "reviews" } } }, - "/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.", + "/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": [ - "codespaces" + "pulls" ], - "operationId": "codespaces/codespace-machines-for-authenticated-user", + "operationId": "pulls/submit-review", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/machines#list-machine-types-for-a-codespace" + "url": "https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request" }, "parameters": [ { - "$ref": "#/components/parameters/codespace-name" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/pull-number" + }, + { + "$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" + } + } + } + } + } + }, "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" - } - } - } + "$ref": "#/components/schemas/pull-request-review" }, "examples": { "default": { - "$ref": "#/components/examples/codespace-machines-list" + "$ref": "#/components/examples/pull-request-review-4" } } } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "500": { - "$ref": "#/components/responses/internal_error" + "404": { + "$ref": "#/components/responses/not_found" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "422": { + "$ref": "#/components/responses/validation_failed_simple" }, "403": { "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "machines" + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "reviews" } } }, - "/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.", + "/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": [ - "codespaces" + "pulls" ], - "operationId": "codespaces/publish-for-authenticated-user", + "operationId": "pulls/update-branch", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/codespaces#create-a-repository-from-an-unpublished-codespace" + "url": "https://docs.github.com/rest/pulls/pulls#update-a-pull-request-branch" }, "parameters": [ { - "$ref": "#/components/parameters/codespace-name" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/pull-number" } ], "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { "type": "object", + "nullable": true, "properties": { - "name": { - "description": "A name for the new repository.", - "type": "string" - }, - "private": { - "description": "Whether the new repository should be private.", - "type": "boolean", - "default": false + "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." } } }, "examples": { "default": { "value": { - "repository": "monalisa-octocat-hello-world-g4wpq6h95q", - "private": false + "expected_head_sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" } } } @@ -73157,56 +72887,74 @@ } }, "responses": { - "201": { + "202": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/codespace-with-full-repository" + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "url": { + "type": "string" + } + } }, "examples": { "default": { - "$ref": "#/components/examples/codespace-with-full-repository" + "value": { + "message": "Updating pull request branch.", + "url": "https://github.com/repos/octocat/Hello-World/pulls/53" + } } } } } }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "422": { + "$ref": "#/components/responses/validation_failed" }, "403": { "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "category": "codespaces", - "subcategory": "codespaces" + "enabledForGitHubApps": false, + "category": "pulls", + "subcategory": "pulls" } } }, - "/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.", + "/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": [ - "codespaces" + "repos" ], - "operationId": "codespaces/start-for-authenticated-user", + "operationId": "repos/get-readme", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/codespaces#start-a-codespace-for-the-authenticated-user" + "url": "https://docs.github.com/rest/repos/contents#get-a-repository-readme" }, "parameters": [ { - "$ref": "#/components/parameters/codespace-name" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "name": "ref", + "description": "The name of the commit/branch/tag. Default: the repository’s default branch.", + "in": "query", + "required": false, + "schema": { + "type": "string" + } } ], "responses": { @@ -73215,11 +72963,11 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/codespace" + "$ref": "#/components/schemas/content-file" }, "examples": { "default": { - "$ref": "#/components/examples/codespace" + "$ref": "#/components/examples/content-file" } } } @@ -73228,58 +72976,58 @@ "304": { "$ref": "#/components/responses/not_modified" }, - "500": { - "$ref": "#/components/responses/internal_error" - }, - "400": { - "$ref": "#/components/responses/bad_request" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "402": { - "description": "Payment required", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/basic-error" - } - } - } - }, - "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": false, - "category": "codespaces", - "subcategory": "codespaces" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "contents" } } }, - "/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.", + "/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": [ - "codespaces" + "repos" ], - "operationId": "codespaces/stop-for-authenticated-user", + "operationId": "repos/get-readme-in-directory", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/codespaces/codespaces#stop-a-codespace-for-the-authenticated-user" + "url": "https://docs.github.com/rest/repos/contents#get-a-repository-readme-for-a-directory" }, "parameters": [ { - "$ref": "#/components/parameters/codespace-name" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "name": "dir", + "description": "The alternate path to look for a README file", + "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": { @@ -73288,49 +73036,57 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/codespace" + "$ref": "#/components/schemas/content-file" }, "examples": { "default": { - "$ref": "#/components/examples/codespace" + "$ref": "#/components/examples/content-file" } } } } }, - "500": { - "$ref": "#/components/responses/internal_error" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, "404": { "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "codespaces", - "subcategory": "codespaces" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "contents" } } }, - "/user/docker/conflicts": { + "/repos/{owner}/{repo}/releases": { "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.", + "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": [ - "packages" + "repos" ], - "operationId": "packages/list-docker-migration-conflicting-packages-for-authenticated-user", + "operationId": "repos/list-releases", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#get-list-of-conflicting-packages-during-docker-migration-for-authenticated-user" + "url": "https://docs.github.com/rest/releases/releases#list-releases" }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + } + ], "responses": { "200": { "description": "Response", @@ -73339,64 +73095,119 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/package" + "$ref": "#/components/schemas/release" } }, "examples": { "default": { - "$ref": "#/components/examples/packages-for-user" + "$ref": "#/components/examples/release-items" } } } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "releases" } - } - }, - "/user/email/visibility": { - "patch": { - "summary": "Set primary email visibility for the authenticated user", - "description": "Sets the visibility for your primary email addresses.", + }, + "post": { + "summary": "Create a release", + "description": "Users with push access to the repository can create a release.\n\n> [!NOTE]\n> If the commit identified by `target_commitish` (or, when `target_commitish` is omitted, the latest commit on the default branch) adds or modifies any file under `.github/workflows/` relative to the repository's default branch, the authenticating token must be authorized to modify workflows. Otherwise, this endpoint returns `404 Not Found`; some authentication paths surface `403 Resource not accessible by integration` instead.\n\nOAuth app tokens and personal access tokens (classic) need the `workflow` scope when the resolved target commit modifies workflow files. Fine-grained access tokens and GitHub App installation tokens also need the \"Workflows\" repository permission (write). The `GITHUB_TOKEN` available to GitHub Actions cannot be authorized for this; for more information, see \"[Automatic token authentication](https://docs.github.com/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token)\".\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": [ - "users" + "repos" ], - "operationId": "users/set-primary-email-visibility-for-authenticated-user", + "operationId": "repos/create-release", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/emails#set-primary-email-visibility-for-the-authenticated-user" + "url": "https://docs.github.com/rest/releases/releases#create-a-release" }, - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + } + ], "requestBody": { "required": true, "content": { "application/json": { "schema": { + "type": "object", "properties": { - "visibility": { - "description": "Denotes whether an email is publicly visible.", + "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": [ - "public", - "private" - ] + "true", + "false", + "legacy" + ], + "default": "true" } }, "required": [ - "visibility" - ], - "type": "object" + "tag_name" + ] }, "examples": { "default": { - "summary": "Example setting the primary email address to private", "value": { - "visibility": "private" + "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 } } } @@ -73404,66 +73215,73 @@ } }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/email" - } + "$ref": "#/components/schemas/release" }, "examples": { "default": { - "$ref": "#/components/examples/email-items-3" + "$ref": "#/components/examples/release" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/releases/1", + "schema": { + "type": "string" + } + } } }, - "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 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": false, - "category": "users", - "subcategory": "emails" + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "releases" } } }, - "/user/emails": { + "/repos/{owner}/{repo}/releases/assets/{asset_id}": { "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.", + "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": [ - "users" + "repos" ], - "operationId": "users/list-emails-for-authenticated-user", + "operationId": "repos/get-release-asset", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/emails#list-email-addresses-for-the-authenticated-user" + "url": "https://docs.github.com/rest/releases/assets#get-a-release-asset" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/asset-id" } ], "responses": { @@ -73472,108 +73290,78 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/email" - } + "$ref": "#/components/schemas/release-asset" }, "examples": { "default": { - "$ref": "#/components/examples/email-items-2" + "$ref": "#/components/examples/release-asset" } } } - }, - "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" + "302": { + "$ref": "#/components/responses/found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "users", - "subcategory": "emails" + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "assets" } }, - "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.", + "patch": { + "summary": "Update a release asset", + "description": "Users with push access to the repository can edit a release asset.", "tags": [ - "users" + "repos" ], - "operationId": "users/add-email-for-authenticated-user", + "operationId": "repos/update-release-asset", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/emails#add-an-email-address-for-the-authenticated-user" + "url": "https://docs.github.com/rest/releases/assets#update-a-release-asset" }, - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/asset-id" + } + ], "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" - ] - } + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The file name of the asset." }, - { - "type": "array", - "items": { - "type": "string", - "example": "username@example.com" - }, - "minItems": 1 + "label": { + "type": "string", + "description": "An alternate short description of the asset. Used in place of the filename." }, - { - "type": "string" + "state": { + "type": "string", + "example": "\"uploaded\"" } - ] + } }, "examples": { "default": { - "summary": "Example adding multiple email addresses", "value": { - "emails": [ - "octocat@github.com", - "mona@github.com", - "octocat@octocat.org" - ] + "name": "foo-1.0.0-osx.zip", + "label": "Mac binary" } } } @@ -73581,109 +73369,122 @@ } }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/email" - } + "$ref": "#/components/schemas/release-asset" }, "examples": { "default": { - "$ref": "#/components/examples/email-items" + "$ref": "#/components/examples/release-asset" } } } } - }, - "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, - "category": "users", - "subcategory": "emails" + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "assets" } }, "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.", + "summary": "Delete a release asset", + "description": "", "tags": [ - "users" + "repos" ], - "operationId": "users/delete-email-for-authenticated-user", + "operationId": "repos/delete-release-asset", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/emails#delete-an-email-address-for-the-authenticated-user" + "url": "https://docs.github.com/rest/releases/assets#delete-a-release-asset" }, - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/asset-id" + } + ], + "responses": { + "204": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "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" + }, + { + "$ref": "#/components/parameters/repo" + } + ], "requestBody": { + "required": true, "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": "object", + "properties": { + "tag_name": { + "type": "string", + "description": "The tag name for the release. This can be an existing tag or a new one." }, - { - "type": "array", - "items": { - "type": "string", - "example": "username@example.com" - }, - "minItems": 1 + "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." }, - { - "type": "string" + "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" ] }, "examples": { "default": { - "summary": "Example deleting multiple email accounts", "value": { - "emails": [ - "octocat@github.com", - "mona@github.com" - ] + "tag_name": "v1.0.0", + "target_commitish": "main", + "previous_tag_name": "v0.9.2", + "configuration_file_path": ".github/custom_release_config.yml" } } } @@ -73691,51 +73492,51 @@ } }, "responses": { - "204": { - "description": "Response" - }, - "304": { - "$ref": "#/components/responses/not_modified" + "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" + } + } + } + } }, "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, - "category": "users", - "subcategory": "emails" + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "releases" } } }, - "/user/followers": { + "/repos/{owner}/{repo}/releases/latest": { "get": { - "summary": "List followers of the authenticated user", - "description": "Lists the people following the authenticated user.", + "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": [ - "users" + "repos" ], - "operationId": "users/list-followers-for-authenticated-user", + "operationId": "repos/get-latest-release", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/followers#list-followers-of-the-authenticated-user" + "url": "https://docs.github.com/rest/releases/releases#get-the-latest-release" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" } ], "responses": { @@ -73744,60 +73545,56 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "$ref": "#/components/schemas/release" }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/release" } } } - }, - "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, - "category": "users", - "subcategory": "followers" + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "releases" } } }, - "/user/following": { + "/repos/{owner}/{repo}/releases/tags/{tag}": { "get": { - "summary": "List the people the authenticated user follows", - "description": "Lists the people who the authenticated user follows.", + "summary": "Get a release by tag name", + "description": "Get a published release with the specified tag.", "tags": [ - "users" + "repos" ], - "operationId": "users/list-followed-by-authenticated-user", + "operationId": "repos/get-release-by-tag", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/followers#list-the-people-the-authenticated-user-follows" + "url": "https://docs.github.com/rest/releases/releases#get-a-release-by-tag-name" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" + }, + { + "name": "tag", + "description": "tag parameter", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "x-multi-segment": true } ], "responses": { @@ -73806,187 +73603,256 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "$ref": "#/components/schemas/release" }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/release" } } } - }, - "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, - "category": "users", - "subcategory": "followers" + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "releases" } } }, - "/user/following/{username}": { + "/repos/{owner}/{repo}/releases/{release_id}": { "get": { - "summary": "Check if a person is followed by the authenticated user", - "description": "", + "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": [ - "users" + "repos" ], - "operationId": "users/check-person-is-followed-by-authenticated", + "operationId": "repos/get-release", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/followers#check-if-a-person-is-followed-by-the-authenticated-user" + "url": "https://docs.github.com/rest/releases/releases#get-a-release" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/release-id" } ], "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": "**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/basic-error" + "$ref": "#/components/schemas/release" + }, + "examples": { + "default": { + "$ref": "#/components/examples/release" + } } } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, "401": { - "$ref": "#/components/responses/requires_authentication" + "description": "Unauthorized" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "users", - "subcategory": "followers" + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "releases" } }, - "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.", + "patch": { + "summary": "Update a release", + "description": "Users with push access to the repository can edit a release.\n\n> [!NOTE]\n> If the resolved target commit (the new value of `target_commitish` if you are changing it, otherwise the existing target) adds or modifies any file under `.github/workflows/` relative to the repository's default branch, the authenticating token must be authorized to modify workflows. Otherwise, this endpoint returns `404 Not Found`; some authentication paths surface `403 Resource not accessible by integration` instead.\n\nOAuth app tokens and personal access tokens (classic) need the `workflow` scope when the resolved target commit modifies workflow files. Fine-grained access tokens and GitHub App installation tokens also need the \"Workflows\" repository permission (write). The `GITHUB_TOKEN` available to GitHub Actions cannot be authorized for this; for more information, see \"[Automatic token authentication](https://docs.github.com/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token)\".", "tags": [ - "users" + "repos" ], - "operationId": "users/follow", + "operationId": "repos/update-release", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/followers#follow-a-user" + "url": "https://docs.github.com/rest/releases/releases#update-a-release" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$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 + } + } + } + } + } + }, "responses": { - "204": { - "description": "Response" - }, - "304": { - "$ref": "#/components/responses/not_modified" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/release" + }, + "examples": { + "default": { + "$ref": "#/components/examples/release" + } + } + } + } }, "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "description": "Not Found if the discussion category name is invalid", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "users", - "subcategory": "followers" + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "releases" } }, "delete": { - "summary": "Unfollow a user", - "description": "OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint.", + "summary": "Delete a release", + "description": "Users with push access to the repository can delete a release.", "tags": [ - "users" + "repos" ], - "operationId": "users/unfollow", + "operationId": "repos/delete-release", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/followers#unfollow-a-user" + "url": "https://docs.github.com/rest/releases/releases#delete-a-release" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/release-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, - "category": "users", - "subcategory": "followers" + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "releases" } } }, - "/user/gpg_keys": { + "/repos/{owner}/{repo}/releases/{release_id}/assets": { "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.", + "summary": "List release assets", + "description": "", "tags": [ - "users" + "repos" ], - "operationId": "users/list-gpg-keys-for-authenticated-user", + "operationId": "repos/list-release-assets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/gpg-keys#list-gpg-keys-for-the-authenticated-user" + "url": "https://docs.github.com/rest/releases/assets#list-release-assets" }, "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/release-id" + }, { "$ref": "#/components/parameters/per-page" }, @@ -74002,12 +73868,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/gpg-key" + "$ref": "#/components/schemas/release-asset" } }, "examples": { "default": { - "$ref": "#/components/examples/gpg-key-items" + "$ref": "#/components/examples/release-asset-items" } } } @@ -74017,65 +73883,70 @@ "$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, - "category": "users", - "subcategory": "gpg-keys" + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "assets" } }, "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", + "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": [ - "users" + "repos" ], + "operationId": "repos/upload-release-asset", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/gpg-keys#create-a-gpg-key-for-the-authenticated-user" + "url": "https://docs.github.com/rest/releases/assets#upload-a-release-asset" }, - "parameters": [], + "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" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/release-id" + }, + { + "name": "name", + "in": "query", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "label", + "in": "query", + "schema": { + "type": "string" + } + } + ], "requestBody": { - "required": true, + "required": false, "content": { - "application/json": { + "application/octet-stream": { "schema": { - "properties": { - "name": { - "description": "A descriptive name for the new key.", - "type": "string" - }, - "armored_public_key": { - "description": "A GPG key in ASCII-armored format.", - "type": "string" - } - }, - "type": "object", - "required": [ - "armored_public_key" - ] + "type": "string", + "format": "binary", + "description": "The raw file data" }, "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-----" - } + "value": "@example.zip" } } } @@ -74083,59 +73954,76 @@ }, "responses": { "201": { - "description": "Response", + "description": "Response for successful upload", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/gpg-key" + "$ref": "#/components/schemas/release-asset" }, "examples": { - "default": { - "$ref": "#/components/examples/gpg-key" + "response-for-successful-upload": { + "$ref": "#/components/examples/release-asset-response-for-successful-upload" } } } } }, "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" + "description": "Response if you upload an asset with the same filename as another uploaded asset" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "users", - "subcategory": "gpg-keys" + "enabledForGitHubApps": true, + "category": "releases", + "subcategory": "assets" } } }, - "/user/gpg_keys/{gpg_key_id}": { + "/repos/{owner}/{repo}/releases/{release_id}/reactions": { "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.", + "summary": "List reactions for a release", + "description": "List the reactions to a [release](https://docs.github.com/rest/releases/releases#get-a-release).", "tags": [ - "users" + "reactions" ], - "operationId": "users/get-gpg-key-for-authenticated-user", + "operationId": "reactions/list-for-release", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/gpg-keys#get-a-gpg-key-for-the-authenticated-user" + "url": "https://docs.github.com/rest/reactions/reactions#list-reactions-for-a-release" }, "parameters": [ { - "$ref": "#/components/parameters/gpg-key-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/release-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 release.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "+1", + "laugh", + "heart", + "hooray", + "rocket", + "eyes" + ] + } + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -74144,93 +74032,195 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/gpg-key" + "type": "array", + "items": { + "$ref": "#/components/schemas/reaction" + } }, "examples": { "default": { - "$ref": "#/components/examples/gpg-key" + "$ref": "#/components/examples/reaction-items" } } } + }, + "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": false, - "category": "users", - "subcategory": "gpg-keys" + "enabledForGitHubApps": true, + "category": "reactions", + "subcategory": "reactions" } }, - "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.", + "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": [ - "users" + "reactions" ], - "operationId": "users/delete-gpg-key-for-authenticated-user", + "operationId": "reactions/create-for-release", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/gpg-keys#delete-a-gpg-key-for-the-authenticated-user" + "url": "https://docs.github.com/rest/reactions/reactions#create-reaction-for-a-release" }, "parameters": [ { - "$ref": "#/components/parameters/gpg-key-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$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" + ] + }, + "examples": { + "default": { + "value": { + "content": "heart" + } + } + } + } + } + }, "responses": { - "204": { - "description": "Response" + "200": { + "description": "Reaction exists", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/reaction" + }, + "examples": { + "default": { + "$ref": "#/components/examples/reaction" + } + } + } + } }, - "404": { - "$ref": "#/components/responses/not_found" + "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": 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" }, - "304": { - "$ref": "#/components/responses/not_modified" + { + "$ref": "#/components/parameters/repo" }, - "403": { - "$ref": "#/components/responses/forbidden" + { + "$ref": "#/components/parameters/release-id" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + { + "$ref": "#/components/parameters/reaction-id" + } + ], + "responses": { + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "users", - "subcategory": "gpg-keys" + "enabledForGitHubApps": true, + "category": "reactions", + "subcategory": "reactions" } } }, - "/user/installations": { + "/repos/{owner}/{repo}/rules/branches/{branch}": { "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.", + "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": [ - "apps" + "repos" ], - "operationId": "apps/list-installations-for-authenticated-user", + "operationId": "repos/get-branch-rules", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/apps/installations#list-app-installations-accessible-to-the-user-access-token" + "url": "https://docs.github.com/rest/repos/rules#get-rules-for-a-branch" }, "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/branch" + }, { "$ref": "#/components/parameters/per-page" }, @@ -74240,298 +74230,210 @@ ], "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" - } - } + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-rule-detailed" } }, "examples": { "default": { - "$ref": "#/components/examples/base-installation-for-auth-user-paginated" + "$ref": "#/components/examples/repository-rule-items" } } } - }, - "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" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "rules" } } }, - "/user/installations/{installation_id}/repositories": { + "/repos/{owner}/{repo}/rulesets": { "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.", + "summary": "Get all repository rulesets", + "description": "Get all the rulesets for a repository.", "tags": [ - "apps" + "repos" ], - "operationId": "apps/list-installation-repos-for-authenticated-user", + "operationId": "repos/get-repo-rulesets", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/apps/installations#list-repositories-accessible-to-the-user-access-token" + "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/installation-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" }, { "$ref": "#/components/parameters/per-page" }, { "$ref": "#/components/parameters/page" + }, + { + "name": "includes_parents", + "description": "Include rulesets configured at higher levels that apply to this repository", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "default": true + } + }, + { + "$ref": "#/components/parameters/ruleset-targets" } ], "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" - }, - "repositories": { - "type": "array", - "items": { - "allOf": [ - { - "$ref": "#/components/schemas/repository" - } - ] - } - } + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-ruleset" } }, "examples": { "default": { - "$ref": "#/components/examples/repository-paginated" + "$ref": "#/components/examples/repository-ruleset-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, "404": { "$ref": "#/components/responses/not_found" }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "304": { - "$ref": "#/components/responses/not_modified" + "500": { + "$ref": "#/components/responses/internal_error" } - }, - "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.", + }, + "post": { + "summary": "Create a repository ruleset", + "description": "Create a ruleset for a repository.", "tags": [ - "apps" + "repos" ], - "operationId": "apps/add-repo-to-installation-for-authenticated-user", + "operationId": "repos/create-repo-ruleset", "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" - }, - { - "$ref": "#/components/parameters/repository-id" - } - ], - "responses": { - "204": { - "description": "Response" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "404": { - "$ref": "#/components/responses/not_found" - } + "url": "https://docs.github.com/rest/repos/rules#create-a-repository-ruleset" }, "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" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "rules" }, "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" - }, - "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" - } - } - } - } - }, - "204": { - "description": "Response when there are no restrictions" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "interactions", - "subcategory": "user" - } - }, - "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": { + "description": "Request body", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/interaction-limit" + "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": { - "limit": "collaborators_only", - "expiry": "one_month" + "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" + } + } + ] } } } @@ -74539,125 +74441,66 @@ } }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/interaction-limit-response" + "$ref": "#/components/schemas/repository-ruleset" }, "examples": { "default": { - "$ref": "#/components/examples/interaction-limit-user" + "$ref": "#/components/examples/repository-ruleset" } } } } }, + "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": "interactions", - "subcategory": "user" - } - }, - "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" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "interactions", - "subcategory": "user" } } }, - "/user/issues": { + "/repos/{owner}/{repo}/rulesets/rule-suites": { "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`.", + "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": [ - "issues" + "repos" ], - "operationId": "issues/list-for-authenticated-user", + "operationId": "repos/get-repo-rule-suites", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/issues/issues#list-user-account-issues-assigned-to-the-authenticated-user" + "url": "https://docs.github.com/rest/repos/rule-suites#list-repository-rule-suites" }, "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" - } + "$ref": "#/components/parameters/owner" }, { - "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/repo" }, { - "$ref": "#/components/parameters/labels" + "$ref": "#/components/parameters/ref-in-query" }, { - "name": "sort", - "description": "What to sort results by.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "created", - "updated", - "comments" - ], - "default": "created" - } + "$ref": "#/components/parameters/time-period" }, { - "$ref": "#/components/parameters/direction" + "$ref": "#/components/parameters/actor-name-in-query" }, { - "$ref": "#/components/parameters/since" + "$ref": "#/components/parameters/rule-suite-result" + }, + { + "$ref": "#/components/parameters/evaluate-status" }, { "$ref": "#/components/parameters/per-page" @@ -74672,57 +74515,52 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/issue" - } + "$ref": "#/components/schemas/rule-suites" }, "examples": { "default": { - "$ref": "#/components/examples/issue-with-repo-items" + "$ref": "#/components/examples/rule-suite-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, "404": { "$ref": "#/components/responses/not_found" }, - "304": { - "$ref": "#/components/responses/not_modified" + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "issues", - "subcategory": "issues" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "rule-suites" } } }, - "/user/keys": { + "/repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}": { "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.", + "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": [ - "users" + "repos" ], - "operationId": "users/list-public-ssh-keys-for-authenticated-user", + "operationId": "repos/get-repo-rule-suite", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/keys#list-public-ssh-keys-for-the-authenticated-user" + "url": "https://docs.github.com/rest/repos/rule-suites#get-a-repository-rule-suite" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/rule-suite-id" } ], "responses": { @@ -74731,157 +74569,227 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/key" - } + "$ref": "#/components/schemas/rule-suite" }, "examples": { "default": { - "$ref": "#/components/examples/key-items" + "$ref": "#/components/examples/rule-suite" } } } - }, - "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" + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "users", - "subcategory": "keys" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "rule-suites" } - }, - "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", + } + }, + "/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": [ - "users" + "repos" ], + "operationId": "repos/get-repo-ruleset", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/keys#create-a-public-ssh-key-for-the-authenticated-user" + "url": "https://docs.github.com/rest/repos/rules#get-a-repository-ruleset" }, - "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.", - "type": "string", - "pattern": "^ssh-(rsa|dss|ed25519) |^ecdsa-sha2-nistp(256|384|521) " - } - }, - "required": [ - "key" - ], - "type": "object" - }, - "examples": { - "default": { - "value": { - "title": "ssh-rsa AAAAB3NzaC1yc2EAAA", - "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234" - } - } - } + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "rules" + }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "name": "ruleset_id", + "description": "The ID of the ruleset.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "includes_parents", + "description": "Include rulesets configured at higher levels that apply to this repository", + "in": "query", + "required": false, + "schema": { + "type": "boolean", + "default": true } } - }, + ], "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/key" + "$ref": "#/components/schemas/repository-ruleset" }, "examples": { "default": { - "$ref": "#/components/examples/key" + "$ref": "#/components/examples/repository-ruleset" } } } } }, - "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" + "500": { + "$ref": "#/components/responses/internal_error" } - }, - "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.", + }, + "put": { + "summary": "Update a repository ruleset", + "description": "Update a ruleset for a repository.", "tags": [ - "users" + "repos" ], - "operationId": "users/get-public-ssh-key-for-authenticated-user", + "operationId": "repos/update-repo-ruleset", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/keys#get-a-public-ssh-key-for-the-authenticated-user" + "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/key-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "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/key" + "$ref": "#/components/schemas/repository-ruleset" }, "examples": { "default": { - "$ref": "#/components/examples/key" + "$ref": "#/components/examples/repository-ruleset" } } } @@ -74890,82 +74798,94 @@ "404": { "$ref": "#/components/responses/not_found" }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "500": { + "$ref": "#/components/responses/internal_error" } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "users", - "subcategory": "keys" } }, "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.", + "summary": "Delete a repository ruleset", + "description": "Delete a ruleset for a repository.", "tags": [ - "users" + "repos" ], - "operationId": "users/delete-public-ssh-key-for-authenticated-user", + "operationId": "repos/delete-repo-ruleset", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/keys#delete-a-public-ssh-key-for-the-authenticated-user" + "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/key-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "name": "ruleset_id", + "description": "The ID of the ruleset.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "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" + "500": { + "$ref": "#/components/responses/internal_error" } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "users", - "subcategory": "keys" } } }, - "/user/marketplace_purchases": { + "/repos/{owner}/{repo}/rulesets/{ruleset_id}/history": { "get": { - "summary": "List subscriptions for the authenticated user", - "description": "Lists the active subscriptions for the authenticated user.", + "summary": "Get repository ruleset history", + "description": "Get the history of a repository ruleset.", "tags": [ - "apps" + "repos" ], - "operationId": "apps/list-subscriptions-for-authenticated-user", + "operationId": "repos/get-repo-ruleset-history", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/apps/marketplace#list-subscriptions-for-the-authenticated-user" + "url": "https://docs.github.com/rest/repos/rules#get-repository-ruleset-history" }, "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, { "$ref": "#/components/parameters/per-page" }, { "$ref": "#/components/parameters/page" + }, + { + "name": "ruleset_id", + "description": "The ID of the ruleset.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { @@ -74976,58 +74896,68 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/user-marketplace-purchase" + "$ref": "#/components/schemas/ruleset-version" } }, "examples": { "default": { - "$ref": "#/components/examples/user-marketplace-purchase-items" + "$ref": "#/components/examples/ruleset-history" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, "404": { "$ref": "#/components/responses/not_found" + }, + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "apps", - "subcategory": "marketplace" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "rules" } } }, - "/user/marketplace_purchases/stubbed": { + "/repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}": { "get": { - "summary": "List subscriptions for the authenticated user (stubbed)", - "description": "Lists the active subscriptions for the authenticated user.", + "summary": "Get repository ruleset version", + "description": "Get a version of a repository ruleset.", "tags": [ - "apps" + "repos" ], - "operationId": "apps/list-subscriptions-for-authenticated-user-stubbed", + "operationId": "repos/get-repo-ruleset-version", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/apps/marketplace#list-subscriptions-for-the-authenticated-user-stubbed" + "url": "https://docs.github.com/rest/repos/rules#get-repository-ruleset-version" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" + }, + { + "name": "ruleset_id", + "description": "The ID of the ruleset.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "version_id", + "description": "The ID of the version", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { @@ -75036,70 +74966,109 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/user-marketplace-purchase" - } + "$ref": "#/components/schemas/ruleset-version-with-state" }, "examples": { "default": { - "$ref": "#/components/examples/user-marketplace-purchase-items" + "$ref": "#/components/examples/repository-ruleset-version-with-state" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "304": { - "$ref": "#/components/responses/not_modified" + "404": { + "$ref": "#/components/responses/not_found" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "apps", - "subcategory": "marketplace" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "rules" } } }, - "/user/memberships/orgs": { + "/repos/{owner}/{repo}/secret-scanning/alerts": { "get": { - "summary": "List organization memberships for the authenticated user", - "description": "Lists all of the authenticated user's organization memberships.", + "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": [ - "orgs" + "secret-scanning" ], - "operationId": "orgs/list-memberships-for-authenticated-user", + "operationId": "secret-scanning/list-alerts-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/members#list-organization-memberships-for-the-authenticated-user" + "url": "https://docs.github.com/rest/secret-scanning/secret-scanning#list-secret-scanning-alerts-for-a-repository" }, "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" - ] - } + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-state" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-secret-type" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-exclude-secret-types" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-exclude-providers" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-providers" + }, + { + "$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" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-bypassed" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-included-metadata" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-owner-email-hash" } ], "responses": { @@ -75110,58 +75079,56 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/org-membership" + "$ref": "#/components/schemas/secret-scanning-alert" } }, "examples": { "default": { - "$ref": "#/components/examples/org-membership-items" + "$ref": "#/components/examples/secret-scanning-alert-list" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "404": { + "description": "Repository is public or secret scanning is disabled for the repository" }, - "422": { - "$ref": "#/components/responses/validation_failed" + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "members" + "category": "secret-scanning", + "subcategory": "secret-scanning" } } }, - "/user/memberships/orgs/{org}": { + "/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}": { "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.", + "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": [ - "orgs" + "secret-scanning" ], - "operationId": "orgs/get-membership-for-authenticated-user", + "operationId": "secret-scanning/get-alert", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/members#get-an-organization-membership-for-the-authenticated-user" + "url": "https://docs.github.com/rest/secret-scanning/secret-scanning#get-a-secret-scanning-alert" }, "parameters": [ { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/alert-number" + }, + { + "$ref": "#/components/parameters/secret-scanning-alert-hide-secret" } ], "responses": { @@ -75170,44 +75137,53 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/org-membership" + "$ref": "#/components/schemas/secret-scanning-alert-with-metadata" }, "examples": { "default": { - "$ref": "#/components/examples/org-membership" + "$ref": "#/components/examples/secret-scanning-alert-open" } } } } }, - "403": { - "$ref": "#/components/responses/forbidden" + "304": { + "$ref": "#/components/responses/not_modified" }, "404": { - "$ref": "#/components/responses/not_found" + "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, - "category": "orgs", - "subcategory": "members" + "category": "secret-scanning", + "subcategory": "secret-scanning" } }, "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.", + "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": [ - "orgs" + "secret-scanning" ], - "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" + "url": "https://docs.github.com/rest/secret-scanning/secret-scanning#update-a-secret-scanning-alert" }, "parameters": [ { - "$ref": "#/components/parameters/org" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/alert-number" } ], "requestBody": { @@ -75218,21 +75194,62 @@ "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" + }, + "validity": { "type": "string", - "description": "The state that the membership should be in. Only `\"active\"` will be accepted.", + "nullable": true, "enum": [ - "active" - ] + "active", + "inactive" + ], + "description": "Sets the validity of the secret scanning alert. Can be `active`, `inactive`, or `null` to clear the override." } }, - "required": [ - "state" + "anyOf": [ + { + "required": [ + "state" + ] + }, + { + "required": [ + "assignee" + ] + }, + { + "required": [ + "validity" + ] + } ] }, "examples": { "default": { "value": { - "state": "active" + "state": "resolved", + "resolution": "false_positive" + } + }, + "assign": { + "summary": "Assign alert to a user", + "value": { + "assignee": "octocat" + } + }, + "unassign": { + "summary": "Unassign alert", + "value": { + "assignee": null } } } @@ -75245,52 +75262,67 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/org-membership" + "$ref": "#/components/schemas/secret-scanning-alert-with-metadata" }, "examples": { "default": { - "$ref": "#/components/examples/org-membership-2" + "$ref": "#/components/examples/secret-scanning-alert-resolved" } } } } }, + "400": { + "description": "Bad request, resolution comment is invalid or the resolution was not changed." + }, "403": { - "$ref": "#/components/responses/forbidden" + "description": "Delegated alert dismissal is enabled and the authenticated user is not a valid reviewer." }, "404": { - "$ref": "#/components/responses/not_found" + "description": "Repository is public, or secret scanning is disabled for the repository, or the resource is not found" }, "422": { - "$ref": "#/components/responses/validation_failed" + "description": "State does not match the resolution or resolution comment, assignee does not have write access to the repository, or the requested validity change could not be applied to this alert" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { - "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "members" + "githubCloudOnly": false, + "category": "secret-scanning", + "subcategory": "secret-scanning" } } }, - "/user/migrations": { + "/repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations": { "get": { - "summary": "List user migrations", - "description": "Lists all migrations a user has started.", + "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": [ - "migrations" + "secret-scanning" ], - "operationId": "migrations/list-for-authenticated-user", + "operationId": "secret-scanning/list-locations-for-alert", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/migrations/users#list-user-migrations" + "url": "https://docs.github.com/rest/secret-scanning/secret-scanning#list-locations-for-a-secret-scanning-alert" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/alert-number" }, { "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/per-page" } ], "responses": { @@ -75300,13 +75332,14 @@ "application/json": { "schema": { "type": "array", + "description": "List of locations where the secret was detected", "items": { - "$ref": "#/components/schemas/migration" + "$ref": "#/components/schemas/secret-scanning-location" } }, "examples": { "default": { - "$ref": "#/components/examples/migration-items" + "$ref": "#/components/examples/secret-scanning-location-list" } } } @@ -75317,547 +75350,589 @@ } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "description": "Repository is public, or secret scanning is disabled for the repository, or the resource is not found" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "migrations", - "subcategory": "users" + "enabledForGitHubApps": true, + "category": "secret-scanning", + "subcategory": "secret-scanning" } - }, - "post": { - "summary": "Start a user migration", - "description": "Initiates the generation of a user migration archive.", + } + }, + "/repos/{owner}/{repo}/secret-scanning/custom-patterns": { + "get": { + "summary": "List repository custom patterns", + "description": "Lists secret scanning custom patterns for a repository.\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": [ - "migrations" + "secret-scanning" ], - "operationId": "migrations/start-for-authenticated-user", + "operationId": "secret-scanning/list-repo-custom-patterns", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/migrations/users#start-a-user-migration" + "url": "https://docs.github.com/rest/secret-scanning/custom-patterns#list-repository-custom-patterns" }, - "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" - } - }, - "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 - } - } - } - } - } + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "secret-scanning", + "subcategory": "custom-patterns" }, + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/secret-scanning-custom-pattern-state" + }, + { + "$ref": "#/components/parameters/secret-scanning-custom-pattern-push-protection" + }, + { + "$ref": "#/components/parameters/secret-scanning-custom-pattern-sort" + }, + { + "$ref": "#/components/parameters/direction" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/per-page" + } + ], "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/migration" + "type": "array", + "items": { + "$ref": "#/components/schemas/secret-scanning-custom-pattern" + } }, "examples": { "default": { - "$ref": "#/components/examples/migration-2" + "$ref": "#/components/examples/secret-scanning-custom-pattern-list" } } } + }, + "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": false, - "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/migrations/users#download-a-user-migration-archive).", + }, + "post": { + "summary": "Bulk create repository custom patterns", + "description": "Bulk creates secret scanning custom patterns for a repository.\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": [ - "migrations" + "secret-scanning" ], - "operationId": "migrations/get-status-for-authenticated-user", + "operationId": "secret-scanning/bulk-create-repo-custom-patterns", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/migrations/users#get-a-user-migration-status" + "url": "https://docs.github.com/rest/secret-scanning/custom-patterns#bulk-create-repository-custom-patterns" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "secret-scanning", + "subcategory": "custom-patterns" }, "parameters": [ { - "$ref": "#/components/parameters/migration-id" + "$ref": "#/components/parameters/owner" }, { - "name": "exclude", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" + "$ref": "#/components/parameters/repo" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "patterns" + ], + "properties": { + "patterns": { + "type": "array", + "description": "The list of custom patterns to create.", + "items": { + "$ref": "#/components/schemas/secret-scanning-custom-pattern-to-create" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/secret-scanning-custom-pattern-bulk-create-request" + } } } } - ], + }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "All patterns created successfully.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/migration" + "type": "object", + "properties": { + "created_patterns": { + "type": "array", + "description": "The list of successfully created custom patterns.", + "items": { + "$ref": "#/components/schemas/secret-scanning-custom-pattern" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/migration" + "$ref": "#/components/examples/secret-scanning-custom-pattern-bulk-create-response" } } } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "304": { - "$ref": "#/components/responses/not_modified" + "400": { + "$ref": "#/components/responses/bad_request" }, "403": { "$ref": "#/components/responses/forbidden" }, - "401": { - "$ref": "#/components/responses/requires_authentication" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "migrations", - "subcategory": "users" - } - } - }, - "/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" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "$ref": "#/components/responses/not_found" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "422": { + "description": "Validation failed for one or more patterns.", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "message": { + "type": "string", + "description": "A summary message describing the error." + }, + "validation_errors": { + "type": "object", + "description": "A map of validation errors keyed by the zero-based index of the pattern that failed.", + "additionalProperties": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "description": "List of validation errors for this pattern.", + "items": { + "$ref": "#/components/schemas/secret-scanning-custom-pattern-validation-error" + } + } + } + } + } + } + } + } + } } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "migrations", - "subcategory": "users" } }, "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.", + "summary": "Bulk delete repository custom patterns", + "description": "Bulk deletes secret scanning custom patterns for a repository.\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": [ - "migrations" + "secret-scanning" ], - "operationId": "migrations/delete-archive-for-authenticated-user", + "operationId": "secret-scanning/bulk-delete-repo-custom-patterns", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/migrations/users#delete-a-user-migration-archive" + "url": "https://docs.github.com/rest/secret-scanning/custom-patterns#bulk-delete-repository-custom-patterns" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "secret-scanning", + "subcategory": "custom-patterns" }, "parameters": [ { - "$ref": "#/components/parameters/migration-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "patterns" + ], + "properties": { + "patterns": { + "type": "array", + "description": "The list of custom patterns to delete.", + "maxItems": 500, + "items": { + "$ref": "#/components/schemas/secret-scanning-custom-pattern-to-delete" + } + }, + "post_delete_action": { + "type": "string", + "description": "What to do with alerts associated with the deleted patterns.\n`delete_alerts` permanently removes the alerts.\n`resolve_alerts` resolves the alerts as \"pattern deleted\".\nDefaults to `delete_alerts` when not specified.", + "enum": [ + "delete_alerts", + "resolve_alerts" + ], + "default": "delete_alerts" + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/secret-scanning-custom-pattern-bulk-delete-request" + } + } + } + } + }, "responses": { "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" + "description": "All patterns deleted successfully." }, - "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" + }, + "412": { + "$ref": "#/components/responses/precondition_failed" } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "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/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.", + "/repos/{owner}/{repo}/secret-scanning/custom-patterns/{pattern_id}": { + "patch": { + "summary": "Update a repository custom pattern", + "description": "Updates a secret scanning custom pattern for a repository.\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": [ - "migrations" + "secret-scanning" ], - "operationId": "migrations/unlock-repo-for-authenticated-user", + "operationId": "secret-scanning/update-repo-custom-pattern", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/migrations/users#unlock-a-user-repository" + "url": "https://docs.github.com/rest/secret-scanning/custom-patterns#update-a-repository-custom-pattern" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "secret-scanning", + "subcategory": "custom-patterns" }, "parameters": [ { - "$ref": "#/components/parameters/migration-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/repo-name" + "$ref": "#/components/parameters/repo" + }, + { + "name": "pattern_id", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "description": "The ID of the custom pattern." } ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/secret-scanning-custom-pattern-to-update" + }, + "examples": { + "default": { + "$ref": "#/components/examples/secret-scanning-custom-pattern-update-request" + } + } + } + } + }, "responses": { - "204": { - "description": "Response" + "200": { + "description": "Pattern updated successfully.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/secret-scanning-custom-pattern" + }, + "examples": { + "default": { + "$ref": "#/components/examples/secret-scanning-custom-pattern" + } + } + } + } }, - "304": { - "$ref": "#/components/responses/not_modified" + "400": { + "$ref": "#/components/responses/bad_request" + }, + "403": { + "$ref": "#/components/responses/forbidden" }, "404": { "$ref": "#/components/responses/not_found" }, - "403": { - "$ref": "#/components/responses/forbidden" + "412": { + "$ref": "#/components/responses/precondition_failed" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "422": { + "$ref": "#/components/responses/validation_failed" } - }, - "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.", + "/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": [ - "migrations" + "secret-scanning" ], - "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" + "url": "https://docs.github.com/rest/secret-scanning/secret-scanning#create-a-push-protection-bypass" }, "parameters": [ { - "$ref": "#/components/parameters/migration-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": { + "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": { - "type": "array", - "items": { - "$ref": "#/components/schemas/minimal-repository" - } + "$ref": "#/components/schemas/secret-scanning-push-protection-bypass" }, "examples": { "default": { - "$ref": "#/components/examples/minimal-repository-items" + "$ref": "#/components/examples/secret-scanning-push-protection-bypass" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, + "403": { + "description": "User does not have enough permissions to perform this action." + }, "404": { - "$ref": "#/components/responses/not_found" + "description": "Placeholder ID not found, or push protection is disabled on this repository." + }, + "422": { + "description": "Bad request, input data missing or incorrect." + }, + "503": { + "$ref": "#/components/responses/service_unavailable" } }, "x-github": { + "enabledForGitHubApps": true, "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "migrations", - "subcategory": "users" - }, - "x-github-breaking-changes": [ - { - "changeset": "restrict_repo_fields_in_migration_resource", - "patch": { - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/simple-repository" - } - } - } - } - } - } - }, - "version": "2026-03-10" - }, - { - "changeset": "restrict_repo_fields_in_migration_resource", - "patch": { - "responses": { - "200": { - "content": { - "application/json": { - "examples": null - } - } - } - } - }, - "version": "2026-03-10" - } - ] + "category": "secret-scanning", + "subcategory": "secret-scanning" + } } }, - "/user/orgs": { + "/repos/{owner}/{repo}/secret-scanning/scan-history": { "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.", + "summary": "Get secret scanning scan history for a repository", + "description": "Lists the latest default incremental and backfill scans by type for a repository.\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": [ - "orgs" + "secret-scanning" ], - "operationId": "orgs/list-for-authenticated-user", + "operationId": "secret-scanning/get-scan-history", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/orgs#list-organizations-for-the-authenticated-user" + "url": "https://docs.github.com/rest/secret-scanning/secret-scanning#get-secret-scanning-scan-history-for-a-repository" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" } ], "responses": { + "404": { + "description": "Repository does not have GitHub Advanced Security or secret scanning enabled" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" + }, "200": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/organization-simple" - } + "$ref": "#/components/schemas/secret-scanning-scan-history" }, "examples": { "default": { - "$ref": "#/components/examples/organization-simple-items" + "$ref": "#/components/examples/secret-scanning-scan-history" } } } - }, - "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": "orgs", - "subcategory": "orgs" + "enabledForGitHubApps": true, + "category": "secret-scanning", + "subcategory": "secret-scanning" } } }, - "/user/packages": { + "/repos/{owner}/{repo}/security-advisories": { "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).\"", + "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": [ - "packages" + "security-advisories" ], - "operationId": "packages/list-packages-for-authenticated-user", + "operationId": "security-advisories/list-repository-advisories", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#list-packages-for-the-authenticated-users-namespace" + "url": "https://docs.github.com/rest/security-advisories/repository-advisories#list-repository-security-advisories" }, "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.", + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/direction" + }, + { + "name": "sort", + "description": "The property to sort the results by.", "in": "query", - "required": true, + "required": false, "schema": { "type": "string", "enum": [ - "npm", - "maven", - "rubygems", - "docker", - "nuget", - "container" - ] + "created", + "updated", + "published" + ], + "default": "created" } }, { - "$ref": "#/components/parameters/package-visibility" + "$ref": "#/components/parameters/pagination-before" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/pagination-after" }, { - "$ref": "#/components/parameters/per-page" + "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 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": { @@ -75868,263 +75943,289 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/package" + "$ref": "#/components/schemas/repository-advisory" } }, "examples": { "default": { - "$ref": "#/components/examples/packages-for-user" + "$ref": "#/components/examples/list-repository-advisories" } } } } }, "400": { - "$ref": "#/components/responses/package_es_list_error" + "$ref": "#/components/responses/bad_request" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "enabledForGitHubApps": true, + "category": "security-advisories", + "subcategory": "repository-advisories" } - } - }, - "/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).\"", + }, + "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": [ - "packages" + "security-advisories" ], - "operationId": "packages/get-package-for-authenticated-user", + "operationId": "security-advisories/create-repository-advisory", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#get-a-package-for-the-authenticated-user" + "url": "https://docs.github.com/rest/security-advisories/repository-advisories#create-a-repository-security-advisory" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/package-name" + "$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": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/package" + "$ref": "#/components/schemas/repository-advisory" }, "examples": { "default": { - "$ref": "#/components/examples/package-user" + "$ref": "#/components/examples/repository-advisory" } } } } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" - } - }, - "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" }, - { - "$ref": "#/components/parameters/package-name" - } - ], - "responses": { - "204": { - "description": "Response" + "403": { + "$ref": "#/components/responses/forbidden" }, "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, - "category": "packages", - "subcategory": "packages" + "enabledForGitHubApps": true, + "category": "security-advisories", + "subcategory": "repository-advisories" } } }, - "/user/packages/{package_type}/{package_name}/restore": { + "/repos/{owner}/{repo}/security-advisories/reports": { "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).\"", + "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": [ - "packages" + "security-advisories" ], - "operationId": "packages/restore-package-for-authenticated-user", + "operationId": "security-advisories/create-private-vulnerability-report", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#restore-a-package-for-the-authenticated-user" + "url": "https://docs.github.com/rest/security-advisories/repository-advisories#privately-report-a-security-vulnerability" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" - }, - { - "$ref": "#/components/parameters/package-name" + "$ref": "#/components/parameters/owner" }, { - "name": "token", - "description": "package token", - "schema": { - "type": "string" - }, - "required": false, - "in": "query" - } - ], - "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "$ref": "#/components/parameters/repo" } - }, - "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" - }, - { - "$ref": "#/components/parameters/package-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" + "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": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/package-version" - } + "$ref": "#/components/schemas/repository-advisory" }, "examples": { "default": { - "$ref": "#/components/examples/package-versions-for-authenticated-user" + "$ref": "#/components/examples/repository-advisory-pvr" } } } } }, - "404": { - "$ref": "#/components/responses/not_found" - }, "403": { "$ref": "#/components/responses/forbidden" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "enabledForGitHubApps": true, + "category": "security-advisories", + "subcategory": "repository-advisories" } } }, - "/user/packages/{package_type}/{package_name}/versions/{package_version_id}": { + "/repos/{owner}/{repo}/security-advisories/{ghsa_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).\"", + "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": [ - "packages" + "security-advisories" ], - "operationId": "packages/get-package-version-for-authenticated-user", + "operationId": "security-advisories/get-repository-advisory", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#get-a-package-version-for-the-authenticated-user" + "url": "https://docs.github.com/rest/security-advisories/repository-advisories#get-a-repository-security-advisory" }, "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/ghsa_id" } ], "responses": { @@ -76133,260 +76234,311 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/package-version" + "$ref": "#/components/schemas/repository-advisory" }, "examples": { "default": { - "$ref": "#/components/examples/package-version-authenticated-user" + "$ref": "#/components/examples/repository-advisory" } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "enabledForGitHubApps": true, + "category": "security-advisories", + "subcategory": "repository-advisories" } }, - "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).\"", + "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": [ - "packages" + "security-advisories" ], - "operationId": "packages/delete-package-version-for-authenticated-user", + "operationId": "security-advisories/update-repository-advisory", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#delete-a-package-version-for-the-authenticated-user" + "url": "https://docs.github.com/rest/security-advisories/repository-advisories#update-a-repository-security-advisory" }, "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/ghsa_id" } ], - "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" + "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" + } + } + } + } }, "403": { "$ref": "#/components/responses/forbidden" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "404": { + "$ref": "#/components/responses/not_found" + }, + "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." + } + } + } + } + } } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "enabledForGitHubApps": true, + "category": "security-advisories", + "subcategory": "repository-advisories" } } }, - "/user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { + "/repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve": { "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).\"", + "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": [ - "packages" + "security-advisories" ], - "operationId": "packages/restore-package-version-for-authenticated-user", + "operationId": "security-advisories/create-repository-advisory-cve-request", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#restore-a-package-version-for-the-authenticated-user" + "url": "https://docs.github.com/rest/security-advisories/repository-advisories#request-a-cve-for-a-repository-security-advisory" }, "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/ghsa_id" } ], "responses": { - "204": { - "description": "Response" + "202": { + "$ref": "#/components/responses/accepted" }, - "404": { - "$ref": "#/components/responses/not_found" + "400": { + "$ref": "#/components/responses/bad_request" }, "403": { "$ref": "#/components/responses/forbidden" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "enabledForGitHubApps": true, + "category": "security-advisories", + "subcategory": "repository-advisories" } } }, - "/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.", + "/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": [ - "users" + "security-advisories" ], - "operationId": "users/list-public-emails-for-authenticated-user", + "operationId": "security-advisories/create-fork", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/emails#list-public-email-addresses-for-the-authenticated-user" + "url": "https://docs.github.com/rest/security-advisories/repository-advisories#create-a-temporary-private-fork" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/ghsa_id" } ], "responses": { - "200": { + "202": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/email" - } + "$ref": "#/components/schemas/full-repository" }, "examples": { "default": { - "$ref": "#/components/examples/email-items-2" + "$ref": "#/components/examples/full-repository" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "304": { - "$ref": "#/components/responses/not_modified" + "400": { + "$ref": "#/components/responses/bad_request" }, - "404": { - "$ref": "#/components/responses/not_found" + "422": { + "$ref": "#/components/responses/validation_failed" }, "403": { "$ref": "#/components/responses/forbidden" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "users", - "subcategory": "emails" + "enabledForGitHubApps": true, + "category": "security-advisories", + "subcategory": "repository-advisories" } } }, - "/user/repos": { + "/repos/{owner}/{repo}/stacks": { "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 pull request stacks", + "description": "Lists pull request stacks in a repository.", "tags": [ - "repos" + "pulls" ], - "operationId": "repos/list-for-authenticated-user", + "operationId": "pull-request-stacks/list", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#list-repositories-for-the-authenticated-user" + "url": "https://docs.github.com/rest/pulls/stacks#list-pull-request-stacks" }, "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" - } - }, - { - "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" - } - }, - { - "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" - } + "$ref": "#/components/parameters/owner" }, { - "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" - } + "$ref": "#/components/parameters/repo" }, { - "name": "direction", - "description": "The order to sort by. Default: `asc` when using `full_name`, otherwise `desc`.", + "name": "pull_request", + "description": "Filter to the stack containing this repository pull request number.", "in": "query", "required": false, "schema": { - "type": "string", - "enum": [ - "asc", - "desc" - ] + "type": "integer" } }, { @@ -76394,12 +76546,6 @@ }, { "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/since-repo-date" - }, - { - "$ref": "#/components/parameters/before-repo-date" } ], "responses": { @@ -76410,211 +76556,113 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/repository" + "$ref": "#/components/schemas/pull-request-stack-minimal" } }, "examples": { "default": { - "$ref": "#/components/examples/repository-items-default-response" + "value": [ + { + "id": 9876543, + "number": 42, + "node_id": "S_kwDOABCDEF4AAAAA", + "url": "https://api.github.com/repos/octocat/hello-world/stacks/42", + "base": { + "ref": "main" + }, + "pull_requests": [ + { + "number": 101, + "state": "open", + "draft": false, + "merged_at": null, + "head": { + "ref": "user-model", + "sha": "aaa1111aaa1111aaa1111aaa1111aaa1111aaa11" + } + }, + { + "number": 102, + "state": "open", + "draft": false, + "merged_at": null, + "head": { + "ref": "user-api", + "sha": "bbb2222bbb2222bbb2222bbb2222bbb2222bbb22" + } + } + ], + "open": true, + "created_at": "2026-04-15T10:00:00Z" + } + ] } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, + "404": { + "$ref": "#/components/responses/not_found" + }, "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": "repos", - "subcategory": "repos" + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "stacks" } }, "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.", + "summary": "Create a pull request stack", + "description": "Creates a stack from an ordered list of pull request numbers. Provide the pull\nrequest numbers from the bottom of the stack to the top. Each pull request's\nbase ref must match the previous pull request's head ref.", "tags": [ - "repos" + "pulls" ], - "operationId": "repos/create-for-authenticated-user", + "operationId": "pull-request-stacks/create", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#create-a-repository-for-the-authenticated-user" + "url": "https://docs.github.com/rest/pulls/stacks#create-a-pull-request-stack" }, - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + } + ], "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 - } - }, + "type": "object", "required": [ - "name" + "pull_requests" ], - "type": "object" + "properties": { + "pull_requests": { + "type": "array", + "description": "An ordered list of pull request numbers forming the stack from bottom to top.", + "items": { + "type": "integer" + }, + "minItems": 2, + "maxItems": 100 + } + } }, "examples": { "default": { "value": { - "name": "Hello-World", - "description": "This is your first repo!", - "homepage": "https://github.com", - "private": false, - "is_template": true + "pull_requests": [ + 101, + 102, + 103 + ] } } } @@ -76627,242 +76675,326 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/full-repository" + "type": "object", + "required": [ + "id", + "number", + "node_id", + "url", + "base", + "open", + "created_at", + "pull_requests" + ], + "properties": { + "id": { + "type": "integer" + }, + "number": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "base": { + "type": "object", + "required": [ + "ref" + ], + "properties": { + "ref": { + "type": "string" + } + } + }, + "open": { + "type": "boolean", + "description": "Whether the stack has any open pull request. False when all pull requests are merged or closed." + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "pull_requests": { + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-stack-pull-request" + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/full-repository" + "value": { + "id": 9876543, + "number": 42, + "node_id": "S_kwDOABCDEF4AAAAA", + "url": "https://api.github.com/repos/octocat/hello-world/stacks/42", + "base": { + "ref": "main" + }, + "open": true, + "created_at": "2026-04-15T10:00:00Z", + "pull_requests": [ + { + "id": 100001, + "node_id": "PR_kwDOABCDEF4AAAAA", + "title": "Add user model", + "state": "open", + "merged_at": null, + "draft": false, + "html_url": "https://github.com/octocat/hello-world/pull/101", + "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, + "user_view_type": "public" + }, + "number": 101, + "url": "https://api.github.com/repos/octocat/hello-world/pulls/101", + "head": { + "ref": "user-model", + "sha": "aaa1111aaa1111aaa1111aaa1111aaa1111aaa11", + "repo": { + "id": 1296269, + "url": "https://api.github.com/repos/octocat/hello-world", + "name": "hello-world" + } + }, + "base": { + "ref": "main", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "repo": { + "id": 1296269, + "url": "https://api.github.com/repos/octocat/hello-world", + "name": "hello-world" + } + } + }, + { + "id": 100002, + "node_id": "PR_kwDOABCDEF4AAAAB", + "title": "Add user API", + "state": "open", + "merged_at": null, + "draft": true, + "html_url": "https://github.com/octocat/hello-world/pull/102", + "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, + "user_view_type": "public" + }, + "number": 102, + "url": "https://api.github.com/repos/octocat/hello-world/pulls/102", + "head": { + "ref": "user-api", + "sha": "bbb2222bbb2222bbb2222bbb2222bbb2222bbb22", + "repo": { + "id": 1296269, + "url": "https://api.github.com/repos/octocat/hello-world", + "name": "hello-world" + } + }, + "base": { + "ref": "user-model", + "sha": "aaa1111aaa1111aaa1111aaa1111aaa1111aaa11", + "repo": { + "id": 1296269, + "url": "https://api.github.com/repos/octocat/hello-world", + "name": "hello-world" + } + } + } + ] + } } } } - }, - "headers": { - "Location": { - "example": "https://api.github.com/repos/octocat/Hello-World", - "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" - }, "422": { - "$ref": "#/components/responses/validation_failed" - }, - "400": { - "$ref": "#/components/responses/bad_request" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "repos", - "subcategory": "repos" - }, - "x-github-breaking-changes": [ - { - "changeset": "change_create_repo_trade_compliance_response_status", - "patch": { - "responses": { - "451": { - "$ref": "#/components/responses/validation_failed" - } - } - }, - "version": "2026-03-10" - } - ] - } - }, - "/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" - }, - { - "$ref": "#/components/parameters/page" - } - ], - "responses": { - "200": { - "description": "Response", + "description": "Validation failed. Returned when the request references pull requests that\ndon't exist in the repository, or when the pull requests can't form a\nvalid stack.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/repository-invitation" + "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": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + } + ] + } + } + } + } } }, "examples": { - "default": { - "$ref": "#/components/examples/repository-invitation-items" + "missing_pull_requests": { + "summary": "One or more pull request numbers don't exist in the repository", + "value": { + "message": "Validation Failed", + "documentation_url": "https://docs.github.com/rest/pulls/stacks#create-a-pull-request-stack", + "errors": [ + { + "resource": "Stack", + "field": "pull_requests", + "code": "missing", + "value": [ + 123 + ] + } + ] + } + }, + "not_a_linear_stack": { + "summary": "The pull requests don't form a linear stack", + "value": { + "message": "Pull requests must form a stack, where each PR's base ref is the previous PR's head ref", + "documentation_url": "https://docs.github.com/rest/pulls/stacks#create-a-pull-request-stack" + } + }, + "already_stacked": { + "summary": "A pull request already belongs to a stack", + "value": { + "message": "Pull request #123 is already part of a stack", + "documentation_url": "https://docs.github.com/rest/pulls/stacks#create-a-pull-request-stack" + } } } } - }, - "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, - "category": "collaborators", - "subcategory": "invitations" + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "stacks" } } }, - "/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" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "409": { - "$ref": "#/components/responses/conflict" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "304": { - "$ref": "#/components/responses/not_modified" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "collaborators", - "subcategory": "invitations" - }, - "x-github-breaking-changes": [ - { - "changeset": "change_accept_repository_invitation_response_status", - "patch": { - "responses": { - "451": { - "$ref": "#/components/responses/validation_failed" - } - } - }, - "version": "2026-03-10" - } - ] - }, - "delete": { - "summary": "Decline a repository invitation", - "description": "", + "/repos/{owner}/{repo}/stacks/{stack_number}": { + "get": { + "summary": "Get a pull request stack", + "description": "Gets a pull request stack by providing its stack number.", "tags": [ - "repos" + "pulls" ], - "operationId": "repos/decline-invitation-for-authenticated-user", + "operationId": "pull-request-stacks/get", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/collaborators/invitations#decline-a-repository-invitation" + "url": "https://docs.github.com/rest/pulls/stacks#get-a-pull-request-stack" }, "parameters": [ { - "$ref": "#/components/parameters/invitation-id" - } - ], - "responses": { - "204": { - "description": "Response" - }, - "409": { - "$ref": "#/components/responses/conflict" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "404": { - "$ref": "#/components/responses/not_found" + "$ref": "#/components/parameters/owner" }, - "403": { - "$ref": "#/components/responses/forbidden" - } - }, - "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" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/page" + "name": "stack_number", + "description": "The number that identifies the pull request stack.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { @@ -76871,90 +77003,246 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/social-account" + "type": "object", + "required": [ + "id", + "number", + "node_id", + "url", + "base", + "open", + "created_at", + "pull_requests" + ], + "properties": { + "id": { + "type": "integer" + }, + "number": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "base": { + "type": "object", + "required": [ + "ref" + ], + "properties": { + "ref": { + "type": "string" + } + } + }, + "open": { + "type": "boolean", + "description": "Whether the stack has any open pull request. False when all pull requests are merged or closed." + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "pull_requests": { + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-stack-pull-request" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/social-account-items" + "value": { + "id": 9876543, + "number": 42, + "node_id": "S_kwDOABCDEF4AAAAA", + "url": "https://api.github.com/repos/octocat/hello-world/stacks/42", + "base": { + "ref": "main" + }, + "open": true, + "created_at": "2026-04-15T10:00:00Z", + "pull_requests": [ + { + "id": 100001, + "node_id": "PR_kwDOABCDEF4AAAAA", + "title": "Add user model", + "state": "open", + "merged_at": null, + "draft": false, + "html_url": "https://github.com/octocat/hello-world/pull/101", + "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, + "user_view_type": "public" + }, + "number": 101, + "url": "https://api.github.com/repos/octocat/hello-world/pulls/101", + "head": { + "ref": "user-model", + "sha": "aaa1111aaa1111aaa1111aaa1111aaa1111aaa11", + "repo": { + "id": 1296269, + "url": "https://api.github.com/repos/octocat/hello-world", + "name": "hello-world" + } + }, + "base": { + "ref": "main", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "repo": { + "id": 1296269, + "url": "https://api.github.com/repos/octocat/hello-world", + "name": "hello-world" + } + } + }, + { + "id": 100002, + "node_id": "PR_kwDOABCDEF4AAAAB", + "title": "Add user API", + "state": "open", + "merged_at": null, + "draft": true, + "html_url": "https://github.com/octocat/hello-world/pull/102", + "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, + "user_view_type": "public" + }, + "number": 102, + "url": "https://api.github.com/repos/octocat/hello-world/pulls/102", + "head": { + "ref": "user-api", + "sha": "bbb2222bbb2222bbb2222bbb2222bbb2222bbb22", + "repo": { + "id": 1296269, + "url": "https://api.github.com/repos/octocat/hello-world", + "name": "hello-world" + } + }, + "base": { + "ref": "user-model", + "sha": "aaa1111aaa1111aaa1111aaa1111aaa1111aaa11", + "repo": { + "id": 1296269, + "url": "https://api.github.com/repos/octocat/hello-world", + "name": "hello-world" + } + } + } + ] + } } } } - }, - "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, - "category": "users", - "subcategory": "social-accounts" + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "stacks" } - }, + } + }, + "/repos/{owner}/{repo}/stacks/{stack_number}/add": { "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.", + "summary": "Add pull requests to a pull request stack", + "description": "Appends an ordered list of pull request numbers onto the top of an existing\nstack. Provide only the pull requests you want to add, from the current top of\nthe stack upward. The first new pull request's base ref must match the current\ntop pull request's head ref.", "tags": [ - "users" + "pulls" ], - "operationId": "users/add-social-account-for-authenticated-user", + "operationId": "pull-request-stacks/add", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/social-accounts#add-social-accounts-for-the-authenticated-user" + "url": "https://docs.github.com/rest/pulls/stacks#add-pull-requests-to-a-pull-request-stack" }, - "parameters": [], + "parameters": [ + { + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" + }, + { + "name": "stack_number", + "description": "The number that identifies the pull request stack.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", + "required": [ + "pull_requests" + ], "properties": { - "account_urls": { - "description": "Full URLs for the social media profiles to add.", + "pull_requests": { "type": "array", + "description": "An ordered list of pull request numbers to append to the stack, from the current top upward.", "items": { - "type": "string", - "example": "https://twitter.com/github" + "type": "integer" }, - "example": [] + "minItems": 1, + "maxItems": 100 } - }, - "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" + "pull_requests": [ + 104, + 102 ] } } @@ -76963,146 +77251,351 @@ } }, "responses": { - "201": { + "200": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/social-account" + "type": "object", + "required": [ + "id", + "number", + "node_id", + "url", + "base", + "open", + "created_at", + "pull_requests" + ], + "properties": { + "id": { + "type": "integer" + }, + "number": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "base": { + "type": "object", + "required": [ + "ref" + ], + "properties": { + "ref": { + "type": "string" + } + } + }, + "open": { + "type": "boolean", + "description": "Whether the stack has any open pull request. False when all pull requests are merged or closed." + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "pull_requests": { + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-stack-pull-request" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/social-account-items" - } - } - } - } - }, - "422": { - "$ref": "#/components/responses/validation_failed" - }, - "304": { - "$ref": "#/components/responses/not_modified" + "value": { + "id": 9876543, + "number": 42, + "node_id": "S_kwDOABCDEF4AAAAA", + "url": "https://api.github.com/repos/octocat/hello-world/stacks/42", + "base": { + "ref": "main" + }, + "open": true, + "created_at": "2026-04-15T10:00:00Z", + "pull_requests": [ + { + "id": 100001, + "node_id": "PR_kwDOABCDEF4AAAAA", + "title": "Add user model", + "state": "open", + "merged_at": null, + "draft": false, + "html_url": "https://github.com/octocat/hello-world/pull/101", + "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, + "user_view_type": "public" + }, + "number": 101, + "url": "https://api.github.com/repos/octocat/hello-world/pulls/101", + "head": { + "ref": "user-model", + "sha": "aaa1111aaa1111aaa1111aaa1111aaa1111aaa11", + "repo": { + "id": 1296269, + "url": "https://api.github.com/repos/octocat/hello-world", + "name": "hello-world" + } + }, + "base": { + "ref": "main", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "repo": { + "id": 1296269, + "url": "https://api.github.com/repos/octocat/hello-world", + "name": "hello-world" + } + } + }, + { + "id": 100002, + "node_id": "PR_kwDOABCDEF4AAAAB", + "title": "Add user API", + "state": "open", + "merged_at": null, + "draft": true, + "html_url": "https://github.com/octocat/hello-world/pull/102", + "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, + "user_view_type": "public" + }, + "number": 102, + "url": "https://api.github.com/repos/octocat/hello-world/pulls/102", + "head": { + "ref": "user-api", + "sha": "bbb2222bbb2222bbb2222bbb2222bbb2222bbb22", + "repo": { + "id": 1296269, + "url": "https://api.github.com/repos/octocat/hello-world", + "name": "hello-world" + } + }, + "base": { + "ref": "user-model", + "sha": "aaa1111aaa1111aaa1111aaa1111aaa1111aaa11", + "repo": { + "id": 1296269, + "url": "https://api.github.com/repos/octocat/hello-world", + "name": "hello-world" + } + } + } + ] + } + } + } + } + } }, "404": { "$ref": "#/components/responses/not_found" }, - "403": { - "$ref": "#/components/responses/forbidden" + "409": { + "description": "Conflict. Returned when the stack is being modified by another request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + }, + "examples": { + "being_modified": { + "summary": "Another request is currently modifying the stack", + "value": { + "message": "Stack is currently being modified", + "documentation_url": "https://docs.github.com/rest/pulls/stacks#add-pull-requests-to-a-pull-request-stack", + "status": "409" + } + } + } + } + } }, - "401": { - "$ref": "#/components/responses/requires_authentication" - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "users", - "subcategory": "social-accounts" - } - }, - "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" + "422": { + "description": "Validation failed. Returned when the request references pull requests that\ndon't exist in the repository, or when the pull requests can't be appended\nto the stack.", + "content": { + "application/json": { + "schema": { + "title": "Validation Error", + "description": "Validation Error", + "type": "object", + "required": [ + "message", + "documentation_url" + ], + "properties": { + "message": { + "type": "string" }, - "example": [] + "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": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ] + } + } + ] + } + } + } + } } }, - "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" - ] + "examples": { + "missing_pull_requests": { + "summary": "One or more pull request numbers don't exist in the repository", + "value": { + "message": "Validation Failed", + "documentation_url": "https://docs.github.com/rest/pulls/stacks#add-pull-requests-to-a-pull-request-stack", + "errors": [ + { + "resource": "Stack", + "field": "pull_requests", + "code": "missing", + "value": [ + 123 + ] + } + ] + } + }, + "not_a_linear_stack": { + "summary": "The pull requests don't continue the stack linearly", + "value": { + "message": "Pull requests must form a stack, where each PR's base ref is the previous PR's head ref", + "documentation_url": "https://docs.github.com/rest/pulls/stacks#add-pull-requests-to-a-pull-request-stack" + } + }, + "already_stacked": { + "summary": "A pull request already belongs to a stack", + "value": { + "message": "Pull request #123 is already part of a stack", + "documentation_url": "https://docs.github.com/rest/pulls/stacks#add-pull-requests-to-a-pull-request-stack" + } } } } } } }, - "responses": { - "204": { - "description": "Response" - }, - "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, - "category": "users", - "subcategory": "social-accounts" + "category": "pulls", + "subcategory": "stacks" } } }, - "/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.", + "/repos/{owner}/{repo}/stacks/{stack_number}/unstack": { + "post": { + "summary": "Remove pull requests from a pull request stack", + "description": "Removes the unmerged pull requests from a stack. Pull requests that cannot be\nunstacked (for example, those that are queued for merge) are left in place. When pull requests remain in the stack, the updated\nstack is returned with a `200`. When no pull requests remain, the stack is\ndissolved and a `204` is returned.", "tags": [ - "users" + "pulls" ], - "operationId": "users/list-ssh-signing-keys-for-authenticated-user", + "operationId": "pull-request-stacks/unstack", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/ssh-signing-keys#list-ssh-signing-keys-for-the-authenticated-user" + "url": "https://docs.github.com/rest/pulls/stacks#remove-pull-requests-from-a-pull-request-stack" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" + }, + { + "name": "stack_number", + "description": "The number that identifies the pull request stack.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } } ], "responses": { @@ -77111,242 +77604,200 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ssh-signing-key" + "type": "object", + "required": [ + "id", + "number", + "node_id", + "url", + "base", + "open", + "created_at", + "pull_requests" + ], + "properties": { + "id": { + "type": "integer" + }, + "number": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "base": { + "type": "object", + "required": [ + "ref" + ], + "properties": { + "ref": { + "type": "string" + } + } + }, + "open": { + "type": "boolean", + "description": "Whether the stack has any open pull request. False when all pull requests are merged or closed." + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "pull_requests": { + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-stack-pull-request" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/ssh-signing-key-items" + "value": { + "id": 9876543, + "number": 42, + "node_id": "S_kwDOABCDEF4AAAAA", + "url": "https://api.github.com/repos/octocat/hello-world/stacks/42", + "base": { + "ref": "main" + }, + "open": true, + "created_at": "2026-04-15T10:00:00Z", + "pull_requests": [ + { + "id": 100001, + "node_id": "PR_kwDOABCDEF4AAAAA", + "title": "Add user model", + "state": "open", + "merged_at": null, + "draft": false, + "html_url": "https://github.com/octocat/hello-world/pull/101", + "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, + "user_view_type": "public" + }, + "number": 101, + "url": "https://api.github.com/repos/octocat/hello-world/pulls/101", + "head": { + "ref": "user-model", + "sha": "aaa1111aaa1111aaa1111aaa1111aaa1111aaa11", + "repo": { + "id": 1296269, + "url": "https://api.github.com/repos/octocat/hello-world", + "name": "hello-world" + } + }, + "base": { + "ref": "main", + "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "repo": { + "id": 1296269, + "url": "https://api.github.com/repos/octocat/hello-world", + "name": "hello-world" + } + } + } + ] + } } } } - }, - "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": "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", + "409": { + "description": "Conflict. Returned when the stack is being modified by another request.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ssh-signing-key" + "$ref": "#/components/schemas/basic-error" }, "examples": { - "default": { - "$ref": "#/components/examples/ssh-signing-key" + "being_modified": { + "summary": "Another request is currently modifying the stack", + "value": { + "message": "Stack is currently being modified", + "documentation_url": "https://docs.github.com/rest/pulls/stacks#remove-pull-requests-from-a-pull-request-stack", + "status": "409" + } } } } } }, "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, - "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", + "description": "Validation failed. Returned when the stack can't be unstacked because every\npull request in it is locked and cannot be removed.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ssh-signing-key" + "$ref": "#/components/schemas/validation-error" }, "examples": { - "default": { - "$ref": "#/components/examples/ssh-signing-key" + "cannot_be_removed": { + "summary": "Every pull request in the stack is locked and can't be removed", + "value": { + "message": "Pull requests in this stack cannot be removed", + "documentation_url": "https://docs.github.com/rest/pulls/stacks#remove-pull-requests-from-a-pull-request-stack" + } } } } } }, - "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, - "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" - }, - "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" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "users", - "subcategory": "ssh-signing-keys" + "enabledForGitHubApps": true, + "category": "pulls", + "subcategory": "stacks" } } }, - "/user/starred": { + "/repos/{owner}/{repo}/stargazers": { "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.", + "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-repos-starred-by-authenticated-user", + "operationId": "activity/list-stargazers-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/activity/starring#list-repositories-starred-by-the-authenticated-user" + "url": "https://docs.github.com/rest/activity/starring#list-stargazers" }, "parameters": [ { - "$ref": "#/components/parameters/sort-starred" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/direction" + "$ref": "#/components/parameters/repo" }, { "$ref": "#/components/parameters/per-page" @@ -77361,27 +77812,27 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/repository" - } + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + { + "type": "array", + "items": { + "$ref": "#/components/schemas/stargazer" + } + } + ] }, "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" - } - }, - "examples": { + "$ref": "#/components/examples/simple-user-items-default-response" + }, "alternative-response-with-star-creation-timestamps": { - "$ref": "#/components/examples/starred-repository-items-alternative-response-with-star-creation-timestamps" + "$ref": "#/components/examples/stargazer-items-alternative-response-with-star-creation-timestamps" } } } @@ -77392,35 +77843,29 @@ } } }, - "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, + "enabledForGitHubApps": true, "category": "activity", "subcategory": "starring" } } }, - "/user/starred/{owner}/{repo}": { + "/repos/{owner}/{repo}/stats/code_frequency": { "get": { - "summary": "Check if a repository is starred by the authenticated user", - "description": "Whether the authenticated user has starred the repository.", + "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": [ - "activity" + "repos" ], - "operationId": "activity/check-repo-is-starred-by-authenticated-user", + "operationId": "repos/get-code-frequency-stats", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/activity/starring#check-if-a-repository-is-starred-by-the-authenticated-user" + "url": "https://docs.github.com/rest/metrics/statistics#get-the-weekly-commit-activity" }, "parameters": [ { @@ -77431,89 +77876,53 @@ } ], "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": "Returns a weekly aggregate of the number of additions and deletions pushed to a repository.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/basic-error" + "type": "array", + "items": { + "$ref": "#/components/schemas/code-frequency-stat" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/code-frequency-stat-items" + } } } } }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "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" + "202": { + "$ref": "#/components/responses/accepted" }, - { - "$ref": "#/components/parameters/repo" - } - ], - "responses": { "204": { - "description": "Response" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "$ref": "#/components/responses/no_content" }, - "304": { - "$ref": "#/components/responses/not_modified" + "422": { + "description": "Repository contains more than 10,000 commits" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "activity", - "subcategory": "starring" + "enabledForGitHubApps": true, + "category": "metrics", + "subcategory": "statistics" } - }, - "delete": { - "summary": "Unstar a repository for the authenticated user", - "description": "Unstar a repository that the authenticated user has previously starred.", + } + }, + "/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": [ - "activity" + "repos" ], - "operationId": "activity/unstar-repo-for-authenticated-user", + "operationId": "repos/get-commit-activity-stats", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/activity/starring#unstar-a-repository-for-the-authenticated-user" + "url": "https://docs.github.com/rest/metrics/statistics#get-the-last-year-of-commit-activity" }, "parameters": [ { @@ -77524,48 +77933,57 @@ } ], "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/commit-activity" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/commit-activity-items" + } + } + } + } }, - "304": { - "$ref": "#/components/responses/not_modified" + "202": { + "$ref": "#/components/responses/accepted" }, - "403": { - "$ref": "#/components/responses/forbidden" + "204": { + "$ref": "#/components/responses/no_content" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "activity", - "subcategory": "starring" + "enabledForGitHubApps": true, + "category": "metrics", + "subcategory": "statistics" } } }, - "/user/subscriptions": { + "/repos/{owner}/{repo}/stats/contributors": { "get": { - "summary": "List repositories watched by the authenticated user", - "description": "Lists repositories the authenticated user is watching.", + "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": [ - "activity" + "repos" ], - "operationId": "activity/list-watched-repos-for-authenticated-user", + "operationId": "repos/get-contributors-stats", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/activity/watching#list-repositories-watched-by-the-authenticated-user" + "url": "https://docs.github.com/rest/metrics/statistics#get-all-contributor-commit-activity" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" } ], "responses": { @@ -77576,217 +77994,204 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/minimal-repository" + "$ref": "#/components/schemas/contributor-activity" } }, "examples": { "default": { - "$ref": "#/components/examples/minimal-repository-items" + "$ref": "#/components/examples/contributor-activity-items" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "202": { + "$ref": "#/components/responses/accepted" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "204": { + "$ref": "#/components/responses/no_content" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "activity", - "subcategory": "watching" + "enabledForGitHubApps": true, + "category": "metrics", + "subcategory": "statistics" } } }, - "/user/teams": { + "/repos/{owner}/{repo}/stats/participation": { "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.", + "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": [ - "teams" + "repos" ], - "operationId": "teams/list-for-authenticated-user", + "operationId": "repos/get-participation-stats", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/teams/teams#list-teams-for-the-authenticated-user" + "url": "https://docs.github.com/rest/metrics/statistics#get-the-weekly-commit-count" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" } ], "responses": { "200": { - "description": "Response", + "description": "The array order is oldest week (index 0) to most recent week.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team-full" - } + "$ref": "#/components/schemas/participation-stats" }, "examples": { "default": { - "$ref": "#/components/examples/team-full-items" + "$ref": "#/components/examples/participation-stats" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, - "304": { - "$ref": "#/components/responses/not_modified" - }, "404": { "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "teams", - "subcategory": "teams" + "enabledForGitHubApps": true, + "category": "metrics", + "subcategory": "statistics" } } }, - "/user/{account_id}": { + "/repos/{owner}/{repo}/stats/punch_card": { "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).", + "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": [ - "users" + "repos" ], - "operationId": "users/get-by-id", + "operationId": "repos/get-punch-card-stats", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/users#get-a-user-using-their-id" + "url": "https://docs.github.com/rest/metrics/statistics#get-the-hourly-commit-count-for-each-day" }, "parameters": [ { - "$ref": "#/components/parameters/account-id" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" } ], "responses": { "200": { - "description": "Response", + "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": { - "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" - } + "type": "array", + "items": { + "$ref": "#/components/schemas/code-frequency-stat" } }, "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/code-frequency-stat-items-2" } } } } }, - "404": { - "$ref": "#/components/responses/not_found" + "204": { + "$ref": "#/components/responses/no_content" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "users", - "subcategory": "users" + "category": "metrics", + "subcategory": "statistics" } } }, - "/user/{user_id}/projectsV2/{project_number}/drafts": { + "/repos/{owner}/{repo}/statuses/{sha}": { "post": { - "summary": "Create draft item for user owned project", - "description": "Create draft issue item for the specified user owned project.", + "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": [ - "projects" + "repos" ], - "operationId": "projects/create-draft-item-for-authenticated-user", + "operationId": "repos/create-commit-status", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/drafts#create-draft-item-for-user-owned-project" + "url": "https://docs.github.com/rest/commits/statuses#create-a-commit-status" }, "parameters": [ { - "$ref": "#/components/parameters/user-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/project-number" + "$ref": "#/components/parameters/repo" + }, + { + "name": "sha", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "x-multi-segment": true } ], "requestBody": { "required": true, - "description": "Details of the draft item to create in the project.", "content": { "application/json": { "schema": { "type": "object", "properties": { - "title": { + "state": { "type": "string", - "description": "The title of the draft issue item to create in the project." + "description": "The state of the status.", + "enum": [ + "error", + "failure", + "pending", + "success" + ] }, - "body": { + "target_url": { "type": "string", - "description": "The body content of the draft issue item to create in the project." + "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": [ - "title" + "state" ] }, "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", + "default": { "value": { - "title": "Sample Draft Issue Title", - "body": "This is the body content of the draft issue." + "state": "success", + "target_url": "https://example.com/build/status", + "description": "The build succeeded!", + "context": "continuous-integration/jenkins" } } } @@ -77799,52 +78204,57 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/projects-v2-item-simple" + "$ref": "#/components/schemas/status" }, "examples": { - "draft_issue": { - "$ref": "#/components/examples/projects-v2-item-simple" + "default": { + "$ref": "#/components/examples/status" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } + } } - }, - "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": "drafts" + "category": "commits", + "subcategory": "statuses" } } }, - "/users": { + "/repos/{owner}/{repo}/subscribers": { "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.", + "summary": "List watchers", + "description": "Lists the people watching the specified repository.", "tags": [ - "users" + "activity" ], - "operationId": "users/list", + "operationId": "activity/list-watchers-for-repo", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/users#list-users" + "url": "https://docs.github.com/rest/activity/watching#list-watchers" }, "parameters": [ { - "$ref": "#/components/parameters/since-user" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" }, { "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -77867,123 +78277,110 @@ }, "headers": { "Link": { - "example": "; rel=\"next\"", - "schema": { - "type": "string" - } + "$ref": "#/components/headers/link" } } - }, - "304": { - "$ref": "#/components/responses/not_modified" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "users", - "subcategory": "users" + "category": "activity", + "subcategory": "watching" } } }, - "/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.", + "/repos/{owner}/{repo}/subscription": { + "get": { + "summary": "Get a repository subscription", + "description": "Gets information about whether the authenticated user is subscribed to the repository.", "tags": [ - "projects" + "activity" ], - "operationId": "projects/create-view-for-user", + "operationId": "activity/get-repo-subscription", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/views#create-a-view-for-a-user-owned-project" + "url": "https://docs.github.com/rest/activity/watching#get-a-repository-subscription" }, "parameters": [ { - "$ref": "#/components/parameters/user-id" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/project-number" + "$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" + } + } + } + } + }, + "404": { + "description": "Not Found if you don't subscribe to the repository" + }, + "403": { + "$ref": "#/components/responses/forbidden" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "activity", + "subcategory": "watching" + } + }, + "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" + }, + { + "$ref": "#/components/parameters/repo" } ], "requestBody": { - "required": true, + "required": false, "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" + "subscribed": { + "type": "boolean", + "description": "Determines if notifications should be received from this repository." }, - "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 + "ignored": { + "type": "boolean", + "description": "Determines if all notifications should be blocked from this repository." + } + } }, "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", + "default": { "value": { - "name": "Product Roadmap", - "layout": "roadmap" + "subscribed": true, + "ignored": false } } } @@ -77991,489 +78388,219 @@ } }, "responses": { - "201": { - "description": "Response for creating a view in a user-owned project.", + "200": { + "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/projects-v2-view" + "$ref": "#/components/schemas/repository-subscription" }, "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" - } + "default": { + "$ref": "#/components/examples/repository-subscription" } } } } - }, - "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": false, - "category": "projects", - "subcategory": "views" + "category": "activity", + "subcategory": "watching" } - } - }, - "/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).", + }, + "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": [ - "users" + "activity" ], - "operationId": "users/get-by-username", + "operationId": "activity/delete-repo-subscription", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/users#get-a-user" + "url": "https://docs.github.com/rest/activity/watching#delete-a-repository-subscription" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" } ], "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" - } - } - } - } - }, - "404": { - "$ref": "#/components/responses/not_found" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "users", - "subcategory": "users" + "enabledForGitHubApps": false, + "category": "activity", + "subcategory": "watching" } } }, - "/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).", + "/repos/{owner}/{repo}/tags": { + "get": { + "summary": "List repository tags", + "description": "", "tags": [ - "users" + "repos" ], - "operationId": "users/list-attestations-bulk", + "operationId": "repos/list-tags", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/attestations#list-attestations-by-bulk-subject-digests" + "url": "https://docs.github.com/rest/repos/repos#list-repository-tags" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/pagination-before" + "$ref": "#/components/parameters/repo" }, { - "$ref": "#/components/parameters/pagination-after" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/page" } ], - "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": { "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." - } + "type": "array", + "items": { + "$ref": "#/components/schemas/tag" } }, "examples": { "default": { - "$ref": "#/components/examples/list-attestations-bulk" - } - } - } - } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "users", - "subcategory": "attestations" - }, - "x-github-breaking-changes": [ - { - "changeset": "remove_bundle", - "patch": { - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "properties": { - "attestations_subject_digests": { - "additionalProperties": { - "items": { - "properties": { - "bundle": null - } - } - } - } - } - } - } + "$ref": "#/components/examples/tag-items" } } } }, - "version": "2026-03-10" - } - ] - } - }, - "/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." - }, - "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 - ] - } - } + "headers": { + "Link": { + "$ref": "#/components/headers/link" } } } }, - "responses": { - "200": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" - } - }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "users", - "subcategory": "attestations" + "category": "repos", + "subcategory": "repos" } } }, - "/users/{username}/attestations/digest/{subject_digest}": { - "delete": { - "summary": "Delete attestations by subject digest", - "description": "Delete an artifact attestation by subject digest.", + "/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": [ - "users" + "repos" ], - "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" + "url": "https://docs.github.com/rest/repos/contents#download-a-repository-archive-tar" }, + "operationId": "repos/download-tarball-archive", "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" }, { - "name": "subject_digest", - "description": "Subject Digest", + "$ref": "#/components/parameters/repo" + }, + { + "name": "ref", "in": "path", "required": true, + "x-multi-segment": true, "schema": { "type": "string" - }, - "x-multi-segment": true + } } ], "responses": { - "200": { - "description": "Response" - }, - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" + "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": "users", - "subcategory": "attestations" + "category": "repos", + "subcategory": "contents" } } }, - "/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.", + "/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": [ - "users" + "repos" ], - "operationId": "users/delete-attestations-by-id", + "operationId": "repos/list-teams", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/attestations#delete-attestations-by-id" + "url": "https://docs.github.com/rest/repos/repos#list-repository-teams" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" }, { - "name": "attestation_id", - "description": "Attestation ID", - "in": "path", - "required": true, - "schema": { - "type": "integer" - } + "$ref": "#/components/parameters/repo" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { "200": { - "description": "Response" - }, - "204": { - "description": "Response" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/team" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } }, "404": { "$ref": "#/components/responses/not_found" @@ -78482,54 +78609,35 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "users", - "subcategory": "attestations" + "category": "repos", + "subcategory": "repos" } } }, - "/users/{username}/attestations/{subject_digest}": { + "/repos/{owner}/{repo}/topics": { "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).", + "summary": "Get all repository topics", + "description": "", "tags": [ - "users" + "repos" ], - "operationId": "users/list-attestations", + "operationId": "repos/get-all-topics", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/attestations#list-attestations" + "url": "https://docs.github.com/rest/repos/repos#get-all-repository-topics" }, "parameters": [ { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/pagination-before" - }, - { - "$ref": "#/components/parameters/pagination-after" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/repo" }, { - "name": "subject_digest", - "description": "Subject Digest", - "in": "path", - "required": true, - "schema": { - "type": "string" - }, - "x-multi-segment": true + "$ref": "#/components/parameters/page" }, { - "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" - } + "$ref": "#/components/parameters/per-page" } ], "responses": { @@ -78538,72 +78646,16 @@ "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" - } - } - } - } - }, - "201": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/empty-object" + "$ref": "#/components/schemas/topic" }, "examples": { "default": { - "value": null + "$ref": "#/components/examples/topic" } } } } }, - "204": { - "description": "Response" - }, "404": { "$ref": "#/components/responses/not_found" } @@ -78611,110 +78663,115 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "users", - "subcategory": "attestations" - }, - "x-github-breaking-changes": [ - { - "changeset": "remove_bundle", - "patch": { - "responses": { - "200": { - "content": { - "application/json": { - "schema": { - "properties": { - "attestations": { - "items": { - "properties": { - "bundle": null - } - } - } - } - } - } - } - } - } - }, - "version": "2026-03-10" - } - ] - } - }, - "/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.", + "category": "repos", + "subcategory": "repos" + } + }, + "put": { + "summary": "Replace all repository topics", + "description": "", "tags": [ - "packages" + "repos" ], - "operationId": "packages/list-docker-migration-conflicting-packages-for-user", + "operationId": "repos/replace-all-topics", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#get-list-of-conflicting-packages-during-docker-migration-for-user" + "url": "https://docs.github.com/rest/repos/repos#replace-all-repository-topics" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" + }, + { + "$ref": "#/components/parameters/repo" } ], + "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` will be saved as lowercase.", + "items": { + "type": "string" + } + } + }, + "required": [ + "names" + ] + }, + "examples": { + "default": { + "value": { + "names": [ + "octocat", + "atom", + "electron", + "api" + ] + } + } + } + } + } + }, "responses": { "200": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/package" - } + "$ref": "#/components/schemas/topic" }, "examples": { "default": { - "$ref": "#/components/examples/packages-for-user" + "$ref": "#/components/examples/topic" } } } } }, - "403": { - "$ref": "#/components/responses/forbidden" + "404": { + "$ref": "#/components/responses/not_found" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "422": { + "$ref": "#/components/responses/validation_failed_simple" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" } } }, - "/users/{username}/events": { + "/repos/{owner}/{repo}/traffic/clones": { "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.", + "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": [ - "activity" + "repos" ], - "operationId": "activity/list-events-for-authenticated-user", + "operationId": "repos/get-clones", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/activity/events#list-events-for-the-authenticated-user" + "url": "https://docs.github.com/rest/metrics/traffic#get-repository-clones" }, "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/per" } ], "responses": { @@ -78723,52 +78780,46 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/event" - } + "$ref": "#/components/schemas/clone-traffic" }, "examples": { "default": { - "$ref": "#/components/examples/user-events-items" + "$ref": "#/components/examples/clone-traffic" } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "activity", - "subcategory": "events" + "category": "metrics", + "subcategory": "traffic" } } }, - "/users/{username}/events/orgs/{org}": { + "/repos/{owner}/{repo}/traffic/popular/paths": { "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.", + "summary": "Get top referral paths", + "description": "Get the top 10 popular contents over the last 14 days.", "tags": [ - "activity" + "repos" ], - "operationId": "activity/list-org-events-for-authenticated-user", + "operationId": "repos/get-top-paths", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/activity/events#list-organization-events-for-the-authenticated-user" + "url": "https://docs.github.com/rest/metrics/traffic#get-top-referral-paths" }, "parameters": [ { - "$ref": "#/components/parameters/username" - }, - { - "$ref": "#/components/parameters/org" - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" } ], "responses": { @@ -78779,47 +78830,47 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/event" + "$ref": "#/components/schemas/content-traffic" } }, "examples": { "default": { - "$ref": "#/components/examples/user-org-events-items" + "$ref": "#/components/examples/content-traffic-items" } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "activity", - "subcategory": "events" + "enabledForGitHubApps": true, + "category": "metrics", + "subcategory": "traffic" } } }, - "/users/{username}/events/public": { + "/repos/{owner}/{repo}/traffic/popular/referrers": { "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.", + "summary": "Get top referral sources", + "description": "Get the top 10 referrers over the last 14 days.", "tags": [ - "activity" + "repos" ], - "operationId": "activity/list-public-events-for-user", + "operationId": "repos/get-top-referrers", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/activity/events#list-public-events-for-a-user" + "url": "https://docs.github.com/rest/metrics/traffic#get-top-referral-sources" }, "parameters": [ { - "$ref": "#/components/parameters/username" - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" } ], "responses": { @@ -78830,47 +78881,50 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/event" + "$ref": "#/components/schemas/referrer-traffic" } }, "examples": { "default": { - "$ref": "#/components/examples/user-public-events-items" + "$ref": "#/components/examples/referrer-traffic-items" } } } } + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "activity", - "subcategory": "events" + "category": "metrics", + "subcategory": "traffic" } } }, - "/users/{username}/followers": { + "/repos/{owner}/{repo}/traffic/views": { "get": { - "summary": "List followers of a user", - "description": "Lists the people following the specified user.", + "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": [ - "users" + "repos" ], - "operationId": "users/list-followers-for-user", + "operationId": "repos/get-views", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/followers#list-followers-of-a-user" + "url": "https://docs.github.com/rest/metrics/traffic#get-page-views" }, "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/per" } ], "responses": { @@ -78879,383 +78933,391 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "$ref": "#/components/schemas/view-traffic" }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/view-traffic" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "users", - "subcategory": "followers" + "category": "metrics", + "subcategory": "traffic" } } }, - "/users/{username}/following": { - "get": { - "summary": "List the people a user follows", - "description": "Lists the people who the specified user follows.", + "/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": [ - "users" + "repos" ], - "operationId": "users/list-following-for-user", + "operationId": "repos/transfer", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/followers#list-the-people-a-user-follows" + "url": "https://docs.github.com/rest/repos/repos#transfer-a-repository" }, "parameters": [ { - "$ref": "#/components/parameters/username" - }, - { - "$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": { + "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": { - "200": { + "202": { "description": "Response", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "$ref": "#/components/schemas/minimal-repository" }, "examples": { "default": { - "$ref": "#/components/examples/simple-user-items" + "$ref": "#/components/examples/minimal-repository" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "users", - "subcategory": "followers" + "category": "repos", + "subcategory": "repos" } } }, - "/users/{username}/following/{target_user}": { + "/repos/{owner}/{repo}/vulnerability-alerts": { "get": { - "summary": "Check if a user follows another user", - "description": "", + "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": [ - "users" + "repos" ], - "operationId": "users/check-following-for-user", + "operationId": "repos/check-vulnerability-alerts", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/followers#check-if-a-user-follows-another-user" + "url": "https://docs.github.com/rest/repos/repos#check-if-vulnerability-alerts-are-enabled-for-a-repository" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/owner" }, { - "name": "target_user", - "in": "path", - "required": true, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/repo" } ], "responses": { "204": { - "description": "if the user follows the target user" + "description": "Response if repository is enabled with vulnerability alerts" }, "404": { - "description": "if the user does not follow the target user" + "description": "Not Found if repository is not enabled with vulnerability alerts" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "users", - "subcategory": "followers" + "category": "repos", + "subcategory": "repos" } - } - }, - "/users/{username}/gists": { - "get": { - "summary": "List gists for a user", - "description": "Lists public gists for the specified user:", + }, + "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": [ - "gists" + "repos" ], - "operationId": "gists/list-for-user", + "operationId": "repos/enable-vulnerability-alerts", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/gists/gists#list-gists-for-a-user" + "url": "https://docs.github.com/rest/repos/repos#enable-vulnerability-alerts" }, "parameters": [ { - "$ref": "#/components/parameters/username" - }, - { - "$ref": "#/components/parameters/since" - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" } ], "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/base-gist" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/base-gist-items" - } - } - } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } - }, - "422": { - "$ref": "#/components/responses/validation_failed" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "gists", - "subcategory": "gists" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" } - } - }, - "/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.", + }, + "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": [ - "users" + "repos" ], - "operationId": "users/list-gpg-keys-for-user", + "operationId": "repos/disable-vulnerability-alerts", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/gpg-keys#list-gpg-keys-for-a-user" + "url": "https://docs.github.com/rest/repos/repos#disable-vulnerability-alerts" }, "parameters": [ { - "$ref": "#/components/parameters/username" - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" } ], "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" - } - } + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "users", - "subcategory": "gpg-keys" + "category": "repos", + "subcategory": "repos" } } }, - "/users/{username}/hovercard": { + "/repos/{owner}/{repo}/zipball/{ref}": { "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.", + "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": [ - "users" + "repos" ], - "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" + "url": "https://docs.github.com/rest/repos/contents#download-a-repository-archive-zip" }, + "operationId": "repos/download-zipball-archive", "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, + "name": "ref", + "in": "path", + "required": true, + "x-multi-segment": true, "schema": { "type": "string" } } ], "responses": { - "200": { + "302": { "description": "Response", - "content": { - "application/json": { + "headers": { + "Location": { + "example": "https://codeload.github.com/me/myprivate/legacy.zip/master?login=me&token=thistokenexpires", "schema": { - "$ref": "#/components/schemas/hovercard" - }, - "examples": { - "default": { - "$ref": "#/components/examples/hovercard" - } + "type": "string" } } } - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "users", - "subcategory": "users" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "contents" } } }, - "/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/{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": [ - "apps" + "repos" ], - "operationId": "apps/get-user-installation", + "operationId": "repos/create-using-template", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/apps/apps#get-a-user-installation-for-the-authenticated-app" + "url": "https://docs.github.com/rest/repos/repos#create-a-repository-using-a-template" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "name": "template_owner", + "description": "The account owner of the template repository. The name is not case sensitive.", + "in": "path", + "required": true, + "schema": { + "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 + } + } + } + } + } + }, "responses": { - "200": { + "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/installation" + "$ref": "#/components/schemas/full-repository" }, "examples": { "default": { - "$ref": "#/components/examples/installation" + "$ref": "#/components/examples/full-repository" } } } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World", + "schema": { + "type": "string" + } + } } } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "apps", - "subcategory": "apps" + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" } } }, - "/users/{username}/keys": { + "/repositories": { "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 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": [ - "users" + "repos" ], - "operationId": "users/list-public-keys-for-user", + "operationId": "repos/list-public", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/keys#list-public-keys-for-a-user" + "url": "https://docs.github.com/rest/repos/repos#list-public-repositories" }, "parameters": [ { - "$ref": "#/components/parameters/username" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/since-repo" } ], "responses": { @@ -79266,46 +79328,89 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/key-simple" + "$ref": "#/components/schemas/minimal-repository" } }, "examples": { "default": { - "$ref": "#/components/examples/key-simple-items" + "$ref": "#/components/examples/public-repository-items" } } } }, "headers": { "Link": { - "$ref": "#/components/headers/link" + "example": "; rel=\"next\"", + "schema": { + "type": "string" + } } } + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "304": { + "$ref": "#/components/responses/not_modified" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "users", - "subcategory": "keys" + "category": "repos", + "subcategory": "repos" } } }, - "/users/{username}/orgs": { + "/search/code": { "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.", + "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": [ - "orgs" + "search" ], - "operationId": "orgs/list-for-user", + "operationId": "search/code", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/orgs/orgs#list-organizations-for-a-user" + "url": "https://docs.github.com/rest/search/search#search-code" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "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" + } + }, + { + "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" + ] + } + }, + { + "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" + } }, { "$ref": "#/components/parameters/per-page" @@ -79320,74 +79425,99 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/organization-simple" + "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/organization-simple-items" + "$ref": "#/components/examples/code-search-result-item-paginated" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "503": { + "$ref": "#/components/responses/service_unavailable" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "orgs", - "subcategory": "orgs" + "category": "search", + "subcategory": "search" } } }, - "/users/{username}/packages": { + "/search/commits": { "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).\"", + "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": [ - "packages" + "search" ], - "operationId": "packages/list-packages-for-user", + "operationId": "search/commits", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#list-packages-for-a-user" + "url": "https://docs.github.com/rest/search/search#search-commits" }, "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.", + "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" + } + }, + { + "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": [ - "npm", - "maven", - "rubygems", - "docker", - "nuget", - "container" + "author-date", + "committer-date" ] } }, { - "$ref": "#/components/parameters/package-visibility" + "$ref": "#/components/parameters/order" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/per-page" }, { "$ref": "#/components/parameters/page" - }, - { - "$ref": "#/components/parameters/per-page" } ], "responses": { @@ -79396,58 +79526,105 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/package" + "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/packages-for-user" + "$ref": "#/components/examples/commit-search-result-item-paginated" } } } } }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, - "400": { - "$ref": "#/components/responses/package_es_list_error" + "304": { + "$ref": "#/components/responses/not_modified" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "enabledForGitHubApps": true, + "category": "search", + "subcategory": "search" } } }, - "/users/{username}/packages/{package_type}/{package_name}": { + "/search/issues": { "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).\"", + "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": [ - "packages" + "search" ], - "operationId": "packages/get-package-for-user", + "operationId": "search/issues-and-pull-requests", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#get-a-package-for-a-user" + "url": "https://docs.github.com/rest/search/search#search-issues-and-pull-requests" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" + "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" + } }, { - "$ref": "#/components/parameters/package-name" + "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" + ] + } }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/order" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/issues-advanced-search" + }, + { + "$ref": "#/components/parameters/search-type" } ], "responses": { @@ -79456,52 +79633,73 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/package" + "type": "object", + "required": [ + "total_count", + "incomplete_results", + "items", + "search_type" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "incomplete_results": { + "type": "boolean" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/issue-search-result-item" + } + }, + "search_type": { + "type": "string", + "description": "The type of search that was performed. Possible values are `lexical`, `semantic`, or `hybrid`.", + "enum": [ + "lexical", + "semantic", + "hybrid" + ] + }, + "lexical_fallback_reason": { + "type": "array", + "description": "When a semantic or hybrid search falls back to lexical search, this field contains the reasons for the fallback. Only present when a fallback occurred.", + "items": { + "type": "string", + "enum": [ + "no_text_terms", + "quoted_text", + "non_issue_target", + "or_boolean_not_supported", + "no_accessible_repos", + "server_error", + "only_non_semantic_fields_requested", + "service_unavailable" + ] + } + } + } }, "examples": { "default": { - "$ref": "#/components/examples/package-user" + "$ref": "#/components/examples/issue-search-result-item-paginated" + }, + "lexical-fallback": { + "$ref": "#/components/examples/issue-search-result-item-paginated-lexical-fallback" } } } } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" - } - }, - "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" }, - { - "$ref": "#/components/parameters/package-name" + "503": { + "$ref": "#/components/responses/service_unavailable" }, - { - "$ref": "#/components/parameters/username" - } - ], - "responses": { - "204": { - "description": "Response" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "404": { - "$ref": "#/components/responses/not_found" + "304": { + "$ref": "#/components/responses/not_modified" }, "403": { "$ref": "#/components/responses/forbidden" @@ -79512,87 +79710,64 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "enabledForGitHubApps": true, + "category": "search", + "subcategory": "search" } } }, - "/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).\"", + "/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": [ - "packages" + "search" ], - "operationId": "packages/restore-package-for-user", + "operationId": "search/labels", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#restore-a-package-for-a-user" + "url": "https://docs.github.com/rest/search/search#search-labels" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" - }, - { - "$ref": "#/components/parameters/package-name" - }, - { - "$ref": "#/components/parameters/username" + "name": "repository_id", + "description": "The id of the repository.", + "in": "query", + "required": true, + "schema": { + "type": "integer" + } }, { - "name": "token", - "description": "package token", + "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" - }, - "required": false, - "in": "query" - } - ], - "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" + } }, - "403": { - "$ref": "#/components/responses/forbidden" + { + "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" + ] + } }, - "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" + "$ref": "#/components/parameters/order" }, { - "$ref": "#/components/parameters/package-name" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/page" } ], "responses": { @@ -79601,61 +79776,101 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/package-version" + "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/package-versions-for-user" + "$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" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "enabledForGitHubApps": true, + "category": "search", + "subcategory": "search" } } }, - "/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}": { + "/search/repositories": { "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).\"", + "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": [ - "packages" + "search" ], - "operationId": "packages/get-package-version-for-user", + "operationId": "search/repos", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#get-a-package-version-for-a-user" + "url": "https://docs.github.com/rest/search/search#search-repositories" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" + "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" + } }, { - "$ref": "#/components/parameters/package-name" + "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" + ] + } }, { - "$ref": "#/components/parameters/package-version-id" + "$ref": "#/components/parameters/order" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -79664,152 +79879,173 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/package-version" + "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/package-version-user" + "$ref": "#/components/examples/repo-search-result-item-paginated" } } } } - } - }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" - } - }, - "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" - }, - { - "$ref": "#/components/parameters/package-name" - }, - { - "$ref": "#/components/parameters/username" - }, - { - "$ref": "#/components/parameters/package-version-id" - } - ], - "responses": { - "204": { - "description": "Response" }, - "404": { - "$ref": "#/components/responses/not_found" + "503": { + "$ref": "#/components/responses/service_unavailable" }, - "403": { - "$ref": "#/components/responses/forbidden" + "422": { + "$ref": "#/components/responses/validation_failed" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "304": { + "$ref": "#/components/responses/not_modified" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "enabledForGitHubApps": true, + "category": "search", + "subcategory": "search" } } }, - "/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).\"", + "/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": [ - "packages" + "search" ], - "operationId": "packages/restore-package-version-for-user", + "operationId": "search/topics", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/packages/packages#restore-package-version-for-a-user" + "url": "https://docs.github.com/rest/search/search#search-topics" }, "parameters": [ { - "$ref": "#/components/parameters/package-type" - }, - { - "$ref": "#/components/parameters/package-name" + "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" + } }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/package-version-id" + "$ref": "#/components/parameters/page" } ], "responses": { - "204": { - "description": "Response" - }, - "404": { - "$ref": "#/components/responses/not_found" - }, - "403": { - "$ref": "#/components/responses/forbidden" + "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" + } + } + } + } }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "304": { + "$ref": "#/components/responses/not_modified" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": false, - "category": "packages", - "subcategory": "packages" + "enabledForGitHubApps": true, + "category": "search", + "subcategory": "search" } } }, - "/users/{username}/projectsV2": { + "/search/users": { "get": { - "summary": "List projects for user", - "description": "List all projects owned by a specific user accessible by the authenticated user.", + "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": [ - "projects" + "search" ], - "operationId": "projects/list-for-user", + "operationId": "search/users", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/projects#list-projects-for-user" + "url": "https://docs.github.com/rest/search/search#search-users" }, "parameters": [ - { - "$ref": "#/components/parameters/username" - }, { "name": "q", - "description": "Limit results to projects of the specified type.", + "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": false, + "required": true, "schema": { "type": "string" } }, { - "$ref": "#/components/parameters/pagination-before" + "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" + ] + } }, { - "$ref": "#/components/parameters/pagination-after" + "$ref": "#/components/parameters/order" }, { "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -79818,60 +80054,68 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/projects-v2" + "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/projects-v2" + "$ref": "#/components/examples/user-search-result-item-paginated" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } } }, "304": { "$ref": "#/components/responses/not_modified" }, - "403": { - "$ref": "#/components/responses/forbidden" + "503": { + "$ref": "#/components/responses/service_unavailable" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "projects", - "subcategory": "projects" + "category": "search", + "subcategory": "search" } } }, - "/users/{username}/projectsV2/{project_number}": { + "/teams/{team_id}": { "get": { - "summary": "Get project for user", - "description": "Get a specific user-owned project.", + "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": [ - "projects" + "teams" ], - "operationId": "projects/get-for-user", + "operationId": "teams/get-legacy", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/projects#get-project-for-user" + "url": "https://docs.github.com/rest/teams/teams#get-a-team-legacy" }, "parameters": [ { - "$ref": "#/components/parameters/project-number" - }, - { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/team-id" } ], "responses": { @@ -79880,126 +80124,44 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/projects-v2" + "$ref": "#/components/schemas/team-full" }, "examples": { "default": { - "$ref": "#/components/examples/projects-v2" + "$ref": "#/components/examples/team-full" } } } - }, - "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, - "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" - }, - { - "$ref": "#/components/parameters/username" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/pagination-before" - }, - { - "$ref": "#/components/parameters/pagination-after" - } - ], - "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" - } - } - }, - "304": { - "$ref": "#/components/responses/not_modified" - }, - "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" - } + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "teams" }, - "x-github": { - "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "projects", - "subcategory": "fields" - } + "deprecated": true }, - "post": { - "summary": "Add field to user owned project", - "description": "Add a field to a specified user owned project.", + "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": [ - "projects" + "teams" ], - "operationId": "projects/add-field-for-user", + "operationId": "teams/update-legacy", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/fields#add-field-to-user-owned-project" + "url": "https://docs.github.com/rest/teams/teams#update-a-team-legacy" }, "parameters": [ { - "$ref": "#/components/parameters/username" - }, - { - "$ref": "#/components/parameters/project-number" + "$ref": "#/components/parameters/team-id" } ], "requestBody": { @@ -80007,154 +80169,143 @@ "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 team." }, - { - "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 + "description": { + "type": "string", + "description": "The description of the team." }, - { - "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" + "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" ], - "additionalProperties": false + "default": "pull" + }, + "parent_team_id": { + "type": "integer", + "description": "The ID of a team to set as the parent team.", + "nullable": true + }, + "parent_team_slug": { + "type": "string", + "description": "The slug of a team to set as the parent team. Ignored when `parent_team_id` is also provided.", + "nullable": true } + }, + "required": [ + "name" ] }, "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", + "default": { "value": { - "name": "Due date", - "data_type": "date" + "name": "new team name", + "description": "new team description", + "privacy": "closed", + "notification_setting": "notifications_enabled" } - }, - "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 when the updated information already exists", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/team-full" + }, + "examples": { + "default": { + "$ref": "#/components/examples/team-full" + } + } + } + } + }, "201": { "description": "Response", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/projects-v2-field" + "$ref": "#/components/schemas/team-full" }, "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" + "default": { + "$ref": "#/components/examples/team-full" } } } } }, - "304": { - "$ref": "#/components/responses/not_modified" + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" }, "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" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "404": { + "$ref": "#/components/responses/not_found" }, "422": { "$ref": "#/components/responses/validation_failed" @@ -80163,32 +80314,35 @@ "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "projects", - "subcategory": "fields" - } + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "teams" + }, + "deprecated": true } }, - "/users/{username}/projectsV2/{project_number}/fields/{field_id}": { + "/teams/{team_id}/invitations": { "get": { - "summary": "Get project field for user", - "description": "Get a specific field for a user-owned project.", + "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": [ - "projects" + "teams" ], - "operationId": "projects/get-field-for-user", + "operationId": "teams/list-pending-invitations-legacy", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/fields#get-project-field-for-user" + "url": "https://docs.github.com/rest/teams/members#list-pending-team-invitations-legacy" }, "parameters": [ { - "$ref": "#/components/parameters/project-number" + "$ref": "#/components/parameters/team-id" }, { - "$ref": "#/components/parameters/field-id" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/page" } ], "responses": { @@ -80197,11 +80351,14 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/projects-v2-field" + "type": "array", + "items": { + "$ref": "#/components/schemas/organization-invitation" + } }, "examples": { "default": { - "$ref": "#/components/examples/projects-v2-field" + "$ref": "#/components/examples/organization-invitation-items" } } } @@ -80211,81 +80368,55 @@ "$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": "fields" - } + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true } }, - "/users/{username}/projectsV2/{project_number}/items": { + "/teams/{team_id}/members": { "get": { - "summary": "List items for a user owned project", - "description": "List all items for a specific user-owned project accessible by the authenticated user.", + "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.\n\nEach member includes their `role` on the team (`member` or `maintainer`) and an `inherited` flag indicating whether the membership is inherited from a child team (`true`) or is a direct membership (`false`).", "tags": [ - "projects" + "teams" ], - "operationId": "projects/list-items-for-user", + "operationId": "teams/list-members-legacy", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/items#list-items-for-a-user-owned-project" + "url": "https://docs.github.com/rest/teams/members#list-team-members-legacy" }, "parameters": [ { - "$ref": "#/components/parameters/project-number" - }, - { - "$ref": "#/components/parameters/username" - }, - { - "$ref": "#/components/parameters/pagination-before" - }, - { - "$ref": "#/components/parameters/pagination-after" - }, - { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/team-id" }, { - "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.", + "name": "role", + "description": "Filters members returned by their role in the team.", "in": "query", "required": false, "schema": { - "type": "string" + "type": "string", + "enum": [ + "member", + "maintainer", + "all" + ], + "default": "all" } }, { - "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/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], "responses": { @@ -80296,12 +80427,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/projects-v2-item-with-content" + "$ref": "#/components/schemas/team-member" } }, "examples": { "default": { - "$ref": "#/components/examples/projects-v2-item-with-content" + "$ref": "#/components/examples/team-member-items" } } } @@ -80312,227 +80443,158 @@ } } }, - "304": { - "$ref": "#/components/responses/not_modified" + "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" }, - "403": { - "$ref": "#/components/responses/forbidden" + { + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "if user is a member" }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "404": { + "description": "if user is not a member" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "projects", - "subcategory": "items" - } + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true }, - "post": { - "summary": "Add item to user owned project", - "description": "Add an issue or pull request item to the specified user owned project.", + "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": [ - "projects" + "teams" ], - "operationId": "projects/add-item-for-user", + "operationId": "teams/add-member-legacy", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/items#add-item-to-user-owned-project" + "url": "https://docs.github.com/rest/teams/members#add-team-member-legacy" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/team-id" }, { - "$ref": "#/components/parameters/project-number" + "$ref": "#/components/parameters/username" } ], - "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" - ] - } - ] - }, - "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": { - "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" - } - } - } - } - } + "204": { + "description": "Response" }, - "304": { - "$ref": "#/components/responses/not_modified" + "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" - }, - "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.", + "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": [ - "projects" + "teams" ], - "operationId": "projects/get-user-item", + "operationId": "teams/remove-member-legacy", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/items#get-an-item-for-a-user-owned-project" + "url": "https://docs.github.com/rest/teams/members#remove-team-member-legacy" }, "parameters": [ { - "$ref": "#/components/parameters/project-number" + "$ref": "#/components/parameters/team-id" }, { "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "Response" }, + "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/item-id" + "$ref": "#/components/parameters/team-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" - } - } - ] - } + "$ref": "#/components/parameters/username" } ], "responses": { @@ -80541,156 +80603,72 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/projects-v2-item-with-content" + "$ref": "#/components/schemas/team-membership" }, "examples": { - "default": { - "$ref": "#/components/examples/projects-v2-item-with-content" + "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" - } } }, - "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, - "category": "projects", - "subcategory": "items" - } + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true }, - "patch": { - "summary": "Update project item for user", - "description": "Update a specific item in a user-owned project.", + "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": [ - "projects" + "teams" ], - "operationId": "projects/update-item-for-user", + "operationId": "teams/add-or-update-membership-for-user-legacy", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/items#update-project-item-for-user" + "url": "https://docs.github.com/rest/teams/members#add-or-update-team-membership-for-a-user-legacy" }, "parameters": [ { - "$ref": "#/components/parameters/project-number" + "$ref": "#/components/parameters/team-id" }, { "$ref": "#/components/parameters/username" - }, - { - "$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.", + "required": false, "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" - ] - } + "role": { + "type": "string", + "description": "The role that this user should have in the team.", + "enum": [ + "member", + "maintainer" + ], + "default": "member" } - }, - "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", + "default": { + "summary": "Assign the member role for a user in a team", "value": { - "fields": [ - { - "id": 1011, - "value": "866ee5b8" - } - ] + "role": "member" } } } @@ -80703,68 +80681,53 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/projects-v2-item-with-content" + "$ref": "#/components/schemas/team-membership" }, "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" + "response-if-users-membership-with-team-is-now-pending": { + "$ref": "#/components/examples/team-membership-response-if-users-membership-with-team-is-now-pending" } } } } }, - "401": { - "$ref": "#/components/responses/requires_authentication" - }, "403": { - "$ref": "#/components/responses/forbidden" + "description": "Forbidden if team synchronization is set up" + }, + "422": { + "description": "Unprocessable Entity if you attempt to add an organization to a team" }, "404": { "$ref": "#/components/responses/not_found" - }, - "422": { - "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "projects", - "subcategory": "items" - } + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true }, "delete": { - "summary": "Delete project item for user", - "description": "Delete a specific item from a user-owned project.", + "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": [ - "projects" + "teams" ], - "operationId": "projects/delete-item-for-user", + "operationId": "teams/remove-membership-for-user-legacy", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/items#delete-project-item-for-user" + "url": "https://docs.github.com/rest/teams/members#remove-team-membership-for-a-user-legacy" }, "parameters": [ { - "$ref": "#/components/parameters/project-number" + "$ref": "#/components/parameters/team-id" }, { "$ref": "#/components/parameters/username" - }, - { - "$ref": "#/components/parameters/item-id" } ], "responses": { @@ -80772,70 +80735,41 @@ "description": "Response" }, "403": { - "$ref": "#/components/responses/forbidden" - }, - "401": { - "$ref": "#/components/responses/requires_authentication" + "description": "if team synchronization is set up" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "projects", - "subcategory": "items" - } + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "members" + }, + "deprecated": true } }, - "/users/{username}/projectsV2/{project_number}/views/{view_number}/items": { + "/teams/{team_id}/repos": { "get": { - "summary": "List items for a user project view", - "description": "List items in a user project with the saved view's filter applied.", + "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": [ - "projects" + "teams" ], - "operationId": "projects/list-view-items-for-user", + "operationId": "teams/list-repos-legacy", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/projects/items#list-items-for-a-user-project-view" + "url": "https://docs.github.com/rest/teams/teams#list-team-repositories-legacy" }, "parameters": [ { - "$ref": "#/components/parameters/project-number" - }, - { - "$ref": "#/components/parameters/username" - }, - { - "$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": { - "type": "string" - } - } - ] - } - }, - { - "$ref": "#/components/parameters/pagination-before" + "$ref": "#/components/parameters/team-id" }, { - "$ref": "#/components/parameters/pagination-after" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/page" } ], "responses": { @@ -80846,12 +80780,12 @@ "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/projects-v2-item-with-content" + "$ref": "#/components/schemas/minimal-repository" } }, "examples": { "default": { - "$ref": "#/components/examples/projects-v2-item-with-content" + "$ref": "#/components/examples/minimal-repository-items" } } } @@ -80862,188 +80796,202 @@ } } }, - "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, - "category": "projects", - "subcategory": "items" - } + "enabledForGitHubApps": true, + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "teams" + }, + "deprecated": true } }, - "/users/{username}/received_events": { + "/teams/{team_id}/repos/{owner}/{repo}": { "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.", + "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": [ - "activity" + "teams" ], - "operationId": "activity/list-received-events-for-user", + "operationId": "teams/check-permissions-for-repo-legacy", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/activity/events#list-events-received-by-the-authenticated-user" + "url": "https://docs.github.com/rest/teams/teams#check-team-permissions-for-a-repository-legacy" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/team-id" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" } ], "responses": { "200": { - "description": "Response", + "description": "Alternative response with extra repository information", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/event" - } + "$ref": "#/components/schemas/team-repository" }, "examples": { - "default": { - "$ref": "#/components/examples/user-received-events-items" + "alternative-response-with-extra-repository-information": { + "$ref": "#/components/examples/team-repository-alternative-response-with-extra-repository-information" } } } } + }, + "204": { + "description": "Response if repository is managed by this team" + }, + "404": { + "description": "Not Found if repository is not managed by this team" } }, "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.", + "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": [ - "activity" + "teams" ], - "operationId": "activity/list-received-public-events-for-user", + "operationId": "teams/add-or-update-repo-permissions-legacy", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/activity/events#list-public-events-received-by-a-user" + "url": "https://docs.github.com/rest/teams/teams#add-or-update-team-repository-permissions-legacy" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/team-id" }, { - "$ref": "#/components/parameters/per-page" + "$ref": "#/components/parameters/owner" }, { - "$ref": "#/components/parameters/page" + "$ref": "#/components/parameters/repo" } ], - "responses": { - "200": { - "description": "Response", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/event" + "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": { - "$ref": "#/components/examples/user-received-public-events-items" + } + }, + "examples": { + "default": { + "summary": "Example of setting permission to pull", + "value": { + "permission": "push" } } } } } }, + "responses": { + "204": { + "description": "Response" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + } + }, "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.", + "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": [ - "repos" + "teams" ], - "operationId": "repos/list-for-user", + "operationId": "teams/remove-repo-legacy", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/repos/repos#list-repositories-for-a-user" + "url": "https://docs.github.com/rest/teams/teams#remove-a-repository-from-a-team-legacy" }, "parameters": [ { - "$ref": "#/components/parameters/username" + "$ref": "#/components/parameters/team-id" }, { - "name": "type", - "description": "Limit results to repositories of the specified type.", - "in": "query", - "required": false, - "schema": { - "type": "string", - "enum": [ - "all", - "owner", - "member" - ], - "default": "owner" - } + "$ref": "#/components/parameters/owner" }, { - "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" - } - }, + "$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": [ { - "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/team-id" }, { "$ref": "#/components/parameters/per-page" @@ -81054,18 +81002,18 @@ ], "responses": { "200": { - "description": "Response", + "description": "if child teams exist", "content": { "application/json": { "schema": { "type": "array", "items": { - "$ref": "#/components/schemas/minimal-repository" + "$ref": "#/components/schemas/team" } }, "examples": { - "default": { - "$ref": "#/components/examples/minimal-repository-items" + "response-if-child-teams-exist": { + "$ref": "#/components/examples/team-items-response-if-child-teams-exist" } } } @@ -81075,267 +81023,416 @@ "$ref": "#/components/headers/link" } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, "enabledForGitHubApps": true, - "category": "repos", - "subcategory": "repos" - } + "removalDate": "2021-02-01", + "deprecationDate": "2020-01-21", + "category": "teams", + "subcategory": "teams" + }, + "deprecated": true } }, - "/users/{username}/settings/billing/premium_request/usage": { + "/user": { "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.", + "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": [ - "billing" + "users" ], - "operationId": "billing/get-github-billing-premium-request-usage-report-user", + "operationId": "users/get-authenticated", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/billing/usage#get-billing-premium-request-usage-report-for-a-user" + "url": "https://docs.github.com/rest/users/users#get-the-authenticated-user" }, - "parameters": [ - { - "$ref": "#/components/parameters/username" - }, - { - "$ref": "#/components/parameters/billing-usage-report-year" - }, - { - "$ref": "#/components/parameters/billing-usage-report-month-default" + "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" + } + } + } + } }, - { - "$ref": "#/components/parameters/billing-usage-report-day" + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "$ref": "#/components/parameters/billing-usage-report-model" + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "$ref": "#/components/parameters/billing-usage-report-product" + "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": { - "$ref": "#/components/responses/billing_premium_request_usage_report_user" - }, - "400": { - "$ref": "#/components/responses/bad_request" + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/private-user" + }, + "examples": { + "default": { + "$ref": "#/components/examples/private-user" + } + } + } + } }, - "403": { - "$ref": "#/components/responses/forbidden" + "304": { + "$ref": "#/components/responses/not_modified" }, "404": { "$ref": "#/components/responses/not_found" }, - "500": { - "$ref": "#/components/responses/internal_error" + "403": { + "$ref": "#/components/responses/forbidden" }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "billing", - "subcategory": "usage" + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "users" } } }, - "/users/{username}/settings/billing/usage": { + "/user/blocks": { "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.", + "summary": "List users blocked by the authenticated user", + "description": "List the users you've blocked on your personal account.", "tags": [ - "billing" + "users" ], - "operationId": "billing/get-github-billing-usage-report-user", + "operationId": "users/list-blocked-by-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/billing/usage#get-billing-usage-report-for-a-user" + "url": "https://docs.github.com/rest/users/blocking#list-users-blocked-by-the-authenticated-user" }, "parameters": [ { - "$ref": "#/components/parameters/username" - }, - { - "$ref": "#/components/parameters/billing-usage-report-year" - }, - { - "$ref": "#/components/parameters/billing-usage-report-month" + "$ref": "#/components/parameters/per-page" }, { - "$ref": "#/components/parameters/billing-usage-report-day" + "$ref": "#/components/parameters/page" } ], "responses": { "200": { - "$ref": "#/components/responses/billing_usage_report_user" + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/simple-user-items" + } + } + } + } }, - "400": { - "$ref": "#/components/responses/bad_request" + "304": { + "$ref": "#/components/responses/not_modified" + }, + "404": { + "$ref": "#/components/responses/not_found" }, "403": { "$ref": "#/components/responses/forbidden" }, - "500": { - "$ref": "#/components/responses/internal_error" - }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "billing", - "subcategory": "usage" + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "blocking" } } }, - "/users/{username}/settings/billing/usage/summary": { + "/user/blocks/{username}": { "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.", + "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": [ - "billing" + "users" ], - "operationId": "billing/get-github-billing-usage-summary-report-user", + "operationId": "users/check-blocked", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/billing/usage#get-billing-usage-summary-for-a-user" + "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" }, - { - "$ref": "#/components/parameters/billing-usage-report-year" - }, - { - "$ref": "#/components/parameters/billing-usage-report-month-default" - }, - { - "$ref": "#/components/parameters/billing-usage-report-day" + "404": { + "description": "If the user is not blocked", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } }, - { - "$ref": "#/components/parameters/billing-usage-report-repository" + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "$ref": "#/components/parameters/billing-usage-report-product" + "403": { + "$ref": "#/components/responses/forbidden" }, + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "blocking" + } + }, + "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/billing-usage-report-sku" + "$ref": "#/components/parameters/username" } ], "responses": { - "200": { - "$ref": "#/components/responses/billing_usage_summary_report_user" - }, - "400": { - "$ref": "#/components/responses/bad_request" + "204": { + "description": "Response" }, - "403": { - "$ref": "#/components/responses/forbidden" + "304": { + "$ref": "#/components/responses/not_modified" }, "404": { "$ref": "#/components/responses/not_found" }, - "500": { - "$ref": "#/components/responses/internal_error" + "403": { + "$ref": "#/components/responses/forbidden" }, - "503": { - "$ref": "#/components/responses/service_unavailable" + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "billing", - "subcategory": "usage" + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "blocking" } - } - }, - "/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.", + }, + "delete": { + "summary": "Unblock a user", + "description": "Unblocks the given user and returns a 204.", "tags": [ "users" ], - "operationId": "users/list-social-accounts-for-user", + "operationId": "users/unblock", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/social-accounts#list-social-accounts-for-a-user" + "url": "https://docs.github.com/rest/users/blocking#unblock-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/social-account" - } - }, - "examples": { - "default": { - "$ref": "#/components/examples/social-account-items" - } - } - } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" - } - } + "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": true, + "enabledForGitHubApps": false, "category": "users", - "subcategory": "social-accounts" + "subcategory": "blocking" } } }, - "/users/{username}/ssh_signing_keys": { + "/user/codespaces": { "get": { - "summary": "List SSH signing keys for a user", - "description": "Lists the SSH signing keys for a user. This operation is accessible by anyone.", + "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": [ - "users" + "codespaces" ], - "operationId": "users/list-ssh-signing-keys-for-user", + "operationId": "codespaces/list-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/users/ssh-signing-keys#list-ssh-signing-keys-for-a-user" + "url": "https://docs.github.com/rest/codespaces/codespaces#list-codespaces-for-the-authenticated-user" }, "parameters": [ - { - "$ref": "#/components/parameters/username" - }, { "$ref": "#/components/parameters/per-page" }, { "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/repository-id-in-query" } ], "responses": { @@ -81344,121 +81441,268 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ssh-signing-key" + "type": "object", + "required": [ + "total_count", + "codespaces" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "codespaces": { + "type": "array", + "items": { + "$ref": "#/components/schemas/codespace" + } + } } }, "examples": { "default": { - "$ref": "#/components/examples/ssh-signing-key-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, - "category": "users", - "subcategory": "ssh-signing-keys" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "codespaces" } - } - }, - "/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.", + }, + "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": [ - "activity" + "codespaces" ], - "operationId": "activity/list-repos-starred-by-user", + "operationId": "codespaces/create-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/activity/starring#list-repositories-starred-by-a-user" + "url": "https://docs.github.com/rest/codespaces/codespaces#create-a-codespace-for-the-authenticated-user" }, - "parameters": [ - { - "$ref": "#/components/parameters/username" - }, - { - "$ref": "#/components/parameters/sort-starred" - }, - { - "$ref": "#/components/parameters/direction" - }, - { - "$ref": "#/components/parameters/per-page" - }, - { - "$ref": "#/components/parameters/page" + "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" + } + } + } + } } - ], + }, "responses": { - "200": { - "description": "Response", + "201": { + "description": "Response when the codespace was successfully created", "content": { "application/json": { "schema": { - "anyOf": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/starred-repository" - } - }, - { - "type": "array", - "items": { - "$ref": "#/components/schemas/repository" - } - } - ] + "$ref": "#/components/schemas/codespace" }, "examples": { - "default-response": { - "$ref": "#/components/examples/repository-items-default-response" + "default": { + "$ref": "#/components/examples/codespace" } } } - }, - "headers": { - "Link": { - "$ref": "#/components/headers/link" + } + }, + "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" + } + } } } + }, + "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, - "category": "activity", - "subcategory": "starring" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "codespaces" } } }, - "/users/{username}/subscriptions": { + "/user/codespaces/secrets": { "get": { - "summary": "List repositories watched by a user", - "description": "Lists repositories a user is watching.", + "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": [ - "activity" + "codespaces" ], - "operationId": "activity/list-repos-watched-by-user", + "operationId": "codespaces/list-secrets-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/activity/watching#list-repositories-watched-by-a-user" + "url": "https://docs.github.com/rest/codespaces/secrets#list-secrets-for-the-authenticated-user" }, "parameters": [ - { - "$ref": "#/components/parameters/username" - }, { "$ref": "#/components/parameters/per-page" }, @@ -81472,14 +81716,26 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/minimal-repository" + "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/minimal-repository-items" + "$ref": "#/components/examples/repo-codespaces-secret-paginated" } } } @@ -81493,23 +81749,23 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "activity", - "subcategory": "watching" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "secrets" } } }, - "/versions": { + "/user/codespaces/secrets/public-key": { "get": { - "summary": "Get all API versions", - "description": "Get all supported GitHub API versions.", + "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": [ - "meta" + "codespaces" ], - "operationId": "meta/get-all-versions", + "operationId": "codespaces/get-public-key-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/meta/meta#get-all-api-versions" + "url": "https://docs.github.com/rest/codespaces/secrets#get-public-key-for-the-authenticated-user" }, "responses": { "200": { @@ -81517,61 +81773,53 @@ "content": { "application/json": { "schema": { - "type": "array", - "items": { - "type": "string", - "format": "date", - "example": "2021-01-01" - } + "$ref": "#/components/schemas/codespaces-user-public-key" }, "examples": { "default": { - "value": [ - "2021-01-01", - "2021-06-01", - "2022-01-01" - ] + "$ref": "#/components/examples/codespaces-user-public-key" } } } } - }, - "404": { - "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "meta", - "subcategory": "meta" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "secrets" } } }, - "/zen": { + "/user/codespaces/secrets/{secret_name}": { "get": { - "summary": "Get the Zen of GitHub", - "description": "Get a random sentence from the Zen of GitHub", + "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": [ - "meta" + "codespaces" ], - "operationId": "meta/get-zen", + "operationId": "codespaces/get-secret-for-authenticated-user", "externalDocs": { "description": "API method documentation", - "url": "https://docs.github.com/rest/meta/meta#get-the-zen-of-github" + "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": { - "text/plain": { + "application/json": { "schema": { - "type": "string" + "$ref": "#/components/schemas/codespaces-secret" }, "examples": { "default": { - "summary": "Example response", - "value": "Responsive is better than fast" + "$ref": "#/components/examples/user-codespaces-secret" } } } @@ -81580,78 +81828,25 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "meta", - "subcategory": "meta" + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "secrets" } - } - } - }, - "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" + }, + "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": [ { - "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": "branch_protection_configuration", - "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" - } + "$ref": "#/components/parameters/secret-name" } ], "requestBody": { @@ -81659,185 +81854,195 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-branch-protection-configuration-disabled" + "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": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "201": { + "description": "Response after successfully creating a secret", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/empty-object" + }, + "examples": { + "default": { + "value": null + } + } + } + } + }, + "204": { + "description": "Response after successfully updating a secret" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "branch_protection_configuration", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "secrets" } - } - }, - "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", + }, + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#branch_protection_configuration" + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/secrets#delete-a-secret-for-the-authenticated-user" }, "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": "branch_protection_configuration", - "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" - } + "$ref": "#/components/parameters/secret-name" } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/webhook-branch-protection-configuration-enabled" - } - } - } - }, "responses": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "204": { + "description": "Response" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "branch_protection_configuration", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "secrets" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#branch_protection_rule" + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/secrets#list-selected-repositories-for-a-user-secret" }, "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": "branch_protection_rule", - "schema": { - "type": "string" + "$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" + } + } + } } }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "401": { + "$ref": "#/components/responses/requires_authentication" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" }, + "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": [ { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/secret-name" } ], "requestBody": { @@ -81845,300 +82050,257 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-branch-protection-rule-created" + "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": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "204": { + "description": "No Content when repositories were added to the selected list" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "branch_protection_rule", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "secrets" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#branch_protection_rule" + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/secrets#add-a-selected-repository-to-a-user-secret" }, "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" - } + "$ref": "#/components/parameters/secret-name" }, { - "name": "X-Github-Event", - "in": "header", - "example": "branch_protection_rule", + "name": "repository_id", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "integer" } + } + ], + "responses": { + "204": { + "description": "No Content when repository was added to the selected list" }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "401": { + "$ref": "#/components/responses/requires_authentication" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" }, - { - "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-deleted" - } - } - } - }, - "responses": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "branch_protection_rule", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "secrets" } - } - }, - "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", + }, + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#branch_protection_rule" + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/secrets#remove-a-selected-repository-from-a-user-secret" }, "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" - } + "$ref": "#/components/parameters/secret-name" }, { - "name": "X-Github-Event", - "in": "header", - "example": "branch_protection_rule", + "name": "repository_id", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "integer" } + } + ], + "responses": { + "204": { + "description": "No Content when repository was removed from the selected list" }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "401": { + "$ref": "#/components/responses/requires_authentication" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" }, - { - "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" + "500": { + "$ref": "#/components/responses/internal_error" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "branch_protection_rule", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "secrets" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_run" + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/codespaces#get-a-codespace-for-the-authenticated-user" }, "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" + "$ref": "#/components/parameters/codespace-name" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/codespace" + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespace" + } + } + } } }, - { - "name": "X-Github-Event", - "in": "header", - "example": "check_run", - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "500": { + "$ref": "#/components/responses/internal_error" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "401": { + "$ref": "#/components/responses/requires_authentication" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, + "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": [ { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/codespace-name" } ], "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-check-run-completed" - }, - "examples": { - "default": { - "$ref": "#/components/examples/check-run-completed" + "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" + } + } } - } - }, - "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" + "value": { + "machine": "standardLinux" + } } } } @@ -82146,304 +82308,273 @@ }, "responses": { "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/codespace" + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespace" + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "webhooks", - "subcategory": "check_run", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "codespaces" } - } - }, - "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", + }, + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_run" + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/codespaces#delete-a-codespace-for-the-authenticated-user" }, "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" - } + "$ref": "#/components/parameters/codespace-name" + } + ], + "responses": { + "202": { + "$ref": "#/components/responses/accepted" }, - { - "name": "X-Github-Event", - "in": "header", - "example": "check_run", - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "500": { + "$ref": "#/components/responses/internal_error" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "401": { + "$ref": "#/components/responses/requires_authentication" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, + "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": [ { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/codespace-name" } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/webhook-check-run-created" - }, - "examples": { - "default": { - "$ref": "#/components/examples/check-run-created" - } - } - }, - "application/x-www-form-urlencoded": { - "schema": { - "$ref": "#/components/schemas/webhook-check-run-created-form-encoded" - }, - "examples": { - "default": { - "$ref": "#/components/examples/check-run-created-form-encoded" + "responses": { + "202": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/codespace-export-details" + }, + "examples": { + "default": { + "$ref": "#/components/examples/user-export-details" + } } } } - } - }, - "responses": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + }, + "500": { + "$ref": "#/components/responses/internal_error" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "webhooks", - "subcategory": "check_run", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "codespaces" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_run" + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/codespaces#get-details-about-a-codespace-export" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/codespace-name" }, { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, - "schema": { - "type": "string" + "$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" + } + } + } } }, - { - "name": "X-Github-Event", - "in": "header", - "example": "check_run", - "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-check-run-requested-action" - }, - "examples": { - "default": { - "$ref": "#/components/examples/check-run-requested-action" - } - } - }, - "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" - } - } - } - } - }, - "responses": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "webhooks", - "subcategory": "check_run", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "codespaces" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_run" + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/machines#list-machine-types-for-a-codespace" }, "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" + "$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" + } + } + } } }, - { - "name": "X-Github-Event", - "in": "header", - "example": "check_run", - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "500": { + "$ref": "#/components/responses/internal_error" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "401": { + "$ref": "#/components/responses/requires_authentication" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, + "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": [ { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/codespace-name" } ], "requestBody": { @@ -82451,1873 +82582,2092 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-check-run-rerequested" - }, - "examples": { - "default": { - "$ref": "#/components/examples/check-run-rerequested" + "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 + } } - } - }, - "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" + "value": { + "repository": "monalisa-octocat-hello-world-g4wpq6h95q", + "private": false + } } } } } }, "responses": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/codespace-with-full-repository" + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespace-with-full-repository" + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, - "category": "webhooks", - "subcategory": "check_run", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "category": "codespaces", + "subcategory": "codespaces" } } }, - "check-suite-completed": { + "/user/codespaces/{codespace_name}/start": { "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", + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_suite" + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/codespaces#start-a-codespace-for-the-authenticated-user" }, "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" + "$ref": "#/components/parameters/codespace-name" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/codespace" + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespace" + } + } + } } }, - { - "name": "X-Github-Event", - "in": "header", - "example": "check_suite", - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "500": { + "$ref": "#/components/responses/internal_error" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "400": { + "$ref": "#/components/responses/bad_request" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "401": { + "$ref": "#/components/responses/requires_authentication" }, - { - "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" + "402": { + "description": "Payment required", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } } } - } - }, - "responses": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "409": { + "$ref": "#/components/responses/conflict" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "check_suite", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "codespaces", + "subcategory": "codespaces" } } }, - "check-suite-requested": { + "/user/codespaces/{codespace_name}/stop": { "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", + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_suite" + "description": "API method documentation", + "url": "https://docs.github.com/rest/codespaces/codespaces#stop-a-codespace-for-the-authenticated-user" }, "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": "check_suite", - "schema": { - "type": "string" + "$ref": "#/components/parameters/codespace-name" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/codespace" + }, + "examples": { + "default": { + "$ref": "#/components/examples/codespace" + } + } + } } }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "500": { + "$ref": "#/components/responses/internal_error" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "401": { + "$ref": "#/components/responses/requires_authentication" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" + "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" + } + } + } } } + }, + "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": { - "$ref": "#/components/schemas/webhook-check-suite-requested" + "properties": { + "visibility": { + "description": "Denotes whether an email is publicly visible.", + "type": "string", + "enum": [ + "public", + "private" + ] + } + }, + "required": [ + "visibility" + ], + "type": "object" + }, + "examples": { + "default": { + "summary": "Example setting the primary email address to private", + "value": { + "visibility": "private" + } + } } } } }, "responses": { "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "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" + }, + "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, - "category": "webhooks", - "subcategory": "check_suite", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "emails" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_suite" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/emails#list-email-addresses-for-the-authenticated-user" }, "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" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Github-Event", - "in": "header", - "example": "check_suite", - "schema": { - "type": "string" + "$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" + } } }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "401": { + "$ref": "#/components/responses/requires_authentication" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "emails" + } + }, + "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": true, + "required": false, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-check-suite-rerequested" + "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" + } + ] + }, + "examples": { + "default": { + "summary": "Example adding multiple email addresses", + "value": { + "emails": [ + "octocat@github.com", + "mona@github.com", + "octocat@octocat.org" + ] + } + } } } } }, "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" - } - }, - { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, - "schema": { - "type": "string" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/email" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/email-items" + } + } + } } }, - { - "name": "X-Github-Event", - "in": "header", - "example": "code_scanning_alert", - "schema": { - "type": "string" - } + "422": { + "$ref": "#/components/responses/validation_failed" }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "401": { + "$ref": "#/components/responses/requires_authentication" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "emails" + } + }, + "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": { - "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-code-scanning-alert-appeared-in-branch" + "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": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "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" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "code_scanning_alert", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "emails" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/followers#list-followers-of-the-authenticated-user" }, "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": "code_scanning_alert", - "schema": { - "type": "string" - } - }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "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" - } + "$ref": "#/components/parameters/page" } ], - "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" + "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" + } + } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "code_scanning_alert", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "followers" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/followers#list-the-people-the-authenticated-user-follows" }, "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": "code_scanning_alert", - "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" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/page" } ], - "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" + "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" + } + } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "code_scanning_alert", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "followers" } } }, - "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", + "/user/following/{username}": { + "get": { + "summary": "Check if a person is followed by the authenticated user", + "description": "", + "tags": [ + "users" + ], + "operationId": "users/check-person-is-followed-by-authenticated", "externalDocs": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/followers#check-if-a-person-is-followed-by-the-authenticated-user" }, "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": "code_scanning_alert", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "if the person is followed by the authenticated user" }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" + "404": { + "description": "if the person is not followed by the authenticated user", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } } }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "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" - } - } - } - }, - "responses": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "code_scanning_alert", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "followers" } - } - }, - "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", + }, + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/followers#follow-a-user" }, "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" - } + "$ref": "#/components/parameters/username" + } + ], + "responses": { + "204": { + "description": "Response" }, - { - "name": "X-Github-Event", - "in": "header", - "example": "code_scanning_alert", - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "401": { + "$ref": "#/components/responses/requires_authentication" }, - { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "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" ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/webhook-code-scanning-alert-reopened" - } - } - } + "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": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "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, - "category": "webhooks", - "subcategory": "code_scanning_alert", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "followers" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/gpg-keys#list-gpg-keys-for-the-authenticated-user" }, "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" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Github-Event", - "in": "header", - "example": "code_scanning_alert", - "schema": { - "type": "string" + "$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" + } } }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "401": { + "$ref": "#/components/responses/requires_authentication" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "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.\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": { - "$ref": "#/components/schemas/webhook-code-scanning-alert-reopened-by-user" + "properties": { + "name": { + "description": "A descriptive name for the new key.", + "type": "string" + }, + "armored_public_key": { + "description": "A GPG key in ASCII-armored format.", + "type": "string" + } + }, + "type": "object", + "required": [ + "armored_public_key" + ] + }, + "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-----" + } + } } } } }, "responses": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/gpg-key" + }, + "examples": { + "default": { + "$ref": "#/components/examples/gpg-key" + } + } + } + } + }, + "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, - "category": "webhooks", - "subcategory": "code_scanning_alert", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "gpg-keys" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/gpg-keys#get-a-gpg-key-for-the-authenticated-user" }, "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": "code_scanning_alert", - "schema": { - "type": "string" + "$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" + } + } + } } }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "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" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "code_scanning_alert", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "gpg-keys" } - } - }, - "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", + }, + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#commit_comment" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/gpg-keys#delete-a-gpg-key-for-the-authenticated-user" }, "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" - } + "$ref": "#/components/parameters/gpg-key-id" + } + ], + "responses": { + "204": { + "description": "Response" }, - { - "name": "X-Github-Event", - "in": "header", - "example": "commit_comment", - "schema": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "422": { + "$ref": "#/components/responses/validation_failed" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } - } - ], - "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" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "commit_comment", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "gpg-keys" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#create" + "description": "API method documentation", + "url": "https://docs.github.com/rest/apps/installations#list-app-installations-accessible-to-the-user-access-token" }, "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": "create", - "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" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/page" } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/webhook-create" - } - } - } - }, "responses": { "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "description": "You can find the permissions for the installation under the `permissions` key.", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "total_count", + "installations" + ], + "properties": { + "total_count": { + "type": "integer" + }, + "installations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/installation" + } + } + } + }, + "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, - "category": "webhooks", - "subcategory": "create", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "apps", + "subcategory": "installations" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#custom_property" + "description": "API method documentation", + "url": "https://docs.github.com/rest/apps/installations#list-repositories-accessible-to-the-user-access-token" }, "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" - } + "$ref": "#/components/parameters/installation-id" }, { - "name": "X-Github-Event", - "in": "header", - "example": "custom_property", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "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" - } + "$ref": "#/components/parameters/page" } ], - "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" + "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": { + "total_count": { + "type": "integer" + }, + "repository_selection": { + "type": "string" + }, + "repositories": { + "type": "array", + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/repository" + }, + { + "type": "object", + "properties": { + "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. Present for org repos only.", + "additionalProperties": true + } + } + } + ] + } + } + } + }, + "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" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "custom_property", - "supported-webhook-types": [ - "business", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "apps", + "subcategory": "installations" } } }, - "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", + "/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" + ], + "operationId": "apps/add-repo-to-installation-for-authenticated-user", "externalDocs": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#custom_property" + "description": "API method documentation", + "url": "https://docs.github.com/rest/apps/installations#add-a-repository-to-an-app-installation" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/installation-id" }, { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/repository-id" + } + ], + "responses": { + "204": { + "description": "Response" }, - { - "name": "X-Github-Event", - "in": "header", - "example": "custom_property", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, + "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": [ { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/installation-id" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/repository-id" + } + ], + "responses": { + "204": { + "description": "Response" }, - { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" + "403": { + "$ref": "#/components/responses/forbidden" + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "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" + } + } + } } + }, + "204": { + "description": "Response when there are no restrictions" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "interactions", + "subcategory": "user" + } + }, + "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/webhook-custom-property-deleted" + "$ref": "#/components/schemas/interaction-limit" + }, + "examples": { + "default": { + "value": { + "limit": "collaborators_only", + "expiry": "one_month" + } + } } } } }, "responses": { "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/interaction-limit-response" + }, + "examples": { + "default": { + "$ref": "#/components/examples/interaction-limit-user" + } + } + } + } + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "custom_property", - "supported-webhook-types": [ - "business", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "interactions", + "subcategory": "user" + } + }, + "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" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "interactions", + "subcategory": "user" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#custom_property" + "description": "API method documentation", + "url": "https://docs.github.com/rest/issues/issues#list-user-account-issues-assigned-to-the-authenticated-user" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", + "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" + "type": "string", + "enum": [ + "assigned", + "created", + "mentioned", + "subscribed", + "repos", + "all" + ], + "default": "assigned" } }, { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, + "name": "state", + "description": "Indicates the state of the issues to return.", + "in": "query", + "required": false, "schema": { - "type": "string" + "type": "string", + "enum": [ + "open", + "closed", + "all" + ], + "default": "open" } }, { - "name": "X-Github-Event", - "in": "header", - "example": "custom_property", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/labels" }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, + "name": "sort", + "description": "What to sort results by.", + "in": "query", + "required": false, "schema": { - "type": "string" + "type": "string", + "enum": [ + "created", + "updated", + "comments" + ], + "default": "created" } }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/direction" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/since" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" + }, + { + "$ref": "#/components/parameters/page" } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/webhook-custom-property-promoted-to-enterprise" - } - } - } - }, "responses": { "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "description": "Response", + "content": { + "application/json": { + "schema": { + "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" + }, + "304": { + "$ref": "#/components/responses/not_modified" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "custom_property", - "supported-webhook-types": [ - "business", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "issues", + "subcategory": "issues" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#custom_property" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/keys#list-public-ssh-keys-for-the-authenticated-user" }, "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" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Github-Event", - "in": "header", - "example": "custom_property", - "schema": { - "type": "string" + "$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" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "401": { + "$ref": "#/components/responses/requires_authentication" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "keys" + } + }, + "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" + }, + "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-custom-property-updated" + "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" + }, + "examples": { + "default": { + "value": { + "title": "ssh-rsa AAAAB3NzaC1yc2EAAA", + "key": "2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234" + } + } } } } }, "responses": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/key" + }, + "examples": { + "default": { + "$ref": "#/components/examples/key" + } + } + } + } + }, + "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, - "category": "webhooks", - "subcategory": "custom_property", - "supported-webhook-types": [ - "business", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "keys" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#custom-property-values" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/keys#get-a-public-ssh-key-for-the-authenticated-user" }, "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": "custom_property_values", - "schema": { - "type": "string" + "$ref": "#/components/parameters/key-id" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/key" + }, + "examples": { + "default": { + "$ref": "#/components/examples/key" + } + } + } } }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "401": { + "$ref": "#/components/responses/requires_authentication" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "keys" + } + }, + "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" ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/webhook-custom-property-values-updated" - } - } - } + "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": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "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, - "category": "webhooks", - "subcategory": "custom-property-values", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "keys" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#delete" + "description": "API method documentation", + "url": "https://docs.github.com/rest/apps/marketplace#list-subscriptions-for-the-authenticated-user" }, "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" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Github-Event", - "in": "header", - "example": "delete", - "schema": { - "type": "string" + "$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" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "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": [ { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/page" } ], - "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" + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/user-marketplace-purchase" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/user-marketplace-purchase-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "delete", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "apps", + "subcategory": "marketplace" } } }, - "dependabot-alert-assignees-changed": { - "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.", - "description": "The assignees for a Dependabot alert were updated.", - "operationId": "dependabot-alert/assignees-changed", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/members#list-organization-memberships-for-the-authenticated-user" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", - "schema": { - "type": "string" - } - }, - { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, + "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" + "type": "string", + "enum": [ + "active", + "pending" + ] } }, { - "name": "X-Github-Event", - "in": "header", - "example": "dependabot_alert", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "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" - } + "$ref": "#/components/parameters/page" } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/webhook-dependabot-alert-assignees-changed" - } - } - } - }, "responses": { "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "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" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "dependabot_alert", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "members" } } }, - "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.", - "description": "A Dependabot alert was automatically closed by a Dependabot auto-triage rule.", - "operationId": "dependabot-alert/auto-dismissed", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" + "description": "API method documentation", + "url": "https://docs.github.com/rest/orgs/members#get-an-organization-membership-for-the-authenticated-user" }, "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": "dependabot_alert", - "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" + "$ref": "#/components/parameters/org" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/org-membership" + }, + "examples": { + "default": { + "$ref": "#/components/examples/org-membership" + } + } + } } }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "members" + } + }, + "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": [ { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/org" } ], "requestBody": { @@ -84325,2595 +84675,2710 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-dependabot-alert-auto-dismissed" + "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": "Return a 200 status to indicate that the data was received successfully" + "description": "The user's organization invitation was accepted synchronously.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/org-membership" + }, + "examples": { + "default": { + "$ref": "#/components/examples/org-membership-2" + } + } + } + } + }, + "202": { + "description": "The acceptance of the user's organization invitation is being processed asynchronously.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/org-membership" + }, + "examples": { + "default": { + "$ref": "#/components/examples/org-membership-2" + } + } + } + } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "dependabot_alert", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "members" } } }, - "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.", - "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", + "/user/migrations": { + "get": { + "summary": "List user migrations", + "description": "Lists all migrations a user has started.", + "tags": [ + "migrations" + ], + "operationId": "migrations/list-for-authenticated-user", "externalDocs": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" + "description": "API method documentation", + "url": "https://docs.github.com/rest/migrations/users#list-user-migrations" }, "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": "dependabot_alert", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" + "$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" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "401": { + "$ref": "#/components/responses/requires_authentication" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "users" + } + }, + "post": { + "summary": "Start a user migration", + "description": "Initiates the generation of a user migration archive.", + "tags": [ + "migrations" ], + "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": { - "$ref": "#/components/schemas/webhook-dependabot-alert-auto-reopened" + "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" + } + }, + "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": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/migration" + }, + "examples": { + "default": { + "$ref": "#/components/examples/migration-2" + } + } + } + } + }, + "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, - "category": "webhooks", - "subcategory": "dependabot_alert", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "users" } } }, - "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.", - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" + "description": "API method documentation", + "url": "https://docs.github.com/rest/migrations/users#get-a-user-migration-status" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/migration-id" }, { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, + "name": "exclude", + "in": "query", + "required": false, "schema": { - "type": "string" + "type": "array", + "items": { + "type": "string" + } } - }, - { - "name": "X-Github-Event", - "in": "header", - "example": "dependabot_alert", - "schema": { - "type": "string" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/migration" + }, + "examples": { + "default": { + "$ref": "#/components/examples/migration" + } + } + } } }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "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" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "dependabot_alert", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "users" } } }, - "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.", - "description": "A Dependabot alert was manually closed.", - "operationId": "dependabot-alert/dismissed", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" + "description": "API method documentation", + "url": "https://docs.github.com/rest/migrations/users#download-a-user-migration-archive" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/migration-id" + } + ], + "responses": { + "302": { + "description": "Response" }, - { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-Github-Event", - "in": "header", - "example": "dependabot_alert", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, + "401": { + "$ref": "#/components/responses/requires_authentication" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "users" + } + }, + "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": [ { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/migration-id" + } + ], + "responses": { + "204": { + "description": "Response" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "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, + "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/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": [ { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/migration-id" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/repo-name" } ], - "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" + "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, - "category": "webhooks", - "subcategory": "dependabot_alert", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "users" } } }, - "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.", - "description": "A manifest file change removed a vulnerability.", - "operationId": "dependabot-alert/fixed", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" + "description": "API method documentation", + "url": "https://docs.github.com/rest/migrations/users#list-repositories-for-a-user-migration" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/migration-id" }, { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Github-Event", - "in": "header", - "example": "dependabot_alert", - "schema": { - "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" + } } }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "migrations", + "subcategory": "users" + }, + "x-github-breaking-changes": [ { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "changeset": "restrict_repo_fields_in_migration_resource", + "patch": { + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/simple-repository" + } + } + } + } + } + } + }, + "version": "2026-03-10" }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } - }, + "changeset": "restrict_repo_fields_in_migration_resource", + "patch": { + "responses": { + "200": { + "content": { + "application/json": { + "examples": null + } + } + } + } + }, + "version": "2026-03-10" + } + ] + } + }, + "/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": [ { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/page" } ], - "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" + "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" + } + } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "dependabot_alert", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "orgs", + "subcategory": "orgs" } } }, - "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.", - "description": "A manifest file change introduced a vulnerable dependency that had previously been fixed.", - "operationId": "dependabot-alert/reintroduced", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#list-packages-for-the-authenticated-users-namespace" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", + "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" + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] } }, { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-visibility" }, { - "name": "X-Github-Event", - "in": "header", - "example": "dependabot_alert", - "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" - } + "$ref": "#/components/parameters/page" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" } ], - "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" + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/package" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/packages-for-user" + } + } + } + } + }, + "400": { + "$ref": "#/components/responses/package_es_list_error" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "dependabot_alert", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } } }, - "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.", - "description": "A Dependabot alert was manually reopened.", - "operationId": "dependabot-alert/reopened", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#get-a-package-for-the-authenticated-user" }, "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": "dependabot_alert", - "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" - } + "$ref": "#/components/parameters/package-type" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-name" } ], - "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" + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/package" + }, + "examples": { + "default": { + "$ref": "#/components/examples/package-user" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "dependabot_alert", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } - } - }, - "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", + }, + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deploy_key" + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#delete-a-package-for-the-authenticated-user" }, "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": "deploy_key", - "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" - } + "$ref": "#/components/parameters/package-type" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-name" } ], - "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" + "204": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "deploy_key", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } } }, - "deploy-key-deleted": { + "/user/packages/{package_type}/{package_name}/restore": { "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", + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deploy_key" + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#restore-a-package-for-the-authenticated-user" }, "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": "deploy_key", - "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" - } + "$ref": "#/components/parameters/package-type" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-name" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "name": "token", + "description": "package token", "schema": { "type": "string" - } + }, + "required": false, + "in": "query" } ], - "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" + "204": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "deploy_key", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deployment" + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#list-package-versions-for-a-package-owned-by-the-authenticated-user" }, "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": "deployment", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-type" }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-name" }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/page" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "name": "state", + "in": "query", + "required": false, + "description": "The state of the package, either active or deleted.", "schema": { - "type": "string" + "type": "string", + "enum": [ + "active", + "deleted" + ], + "default": "active" } } ], - "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" + "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, - "category": "webhooks", - "subcategory": "deployment", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deployment_protection_rule" + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#get-a-package-version-for-the-authenticated-user" }, "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": "deployment_protection_rule", - "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" - } + "$ref": "#/components/parameters/package-type" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-name" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-version-id" } ], - "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" + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/package-version" + }, + "examples": { + "default": { + "$ref": "#/components/examples/package-version-authenticated-user" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "deployment_protection_rule", - "supported-webhook-types": [ - "app" - ] + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } - } - }, - "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", + }, + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deployment_review" + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#delete-a-package-version-for-the-authenticated-user" }, "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": "deployment_review", - "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" - } + "$ref": "#/components/parameters/package-type" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-name" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-version-id" } ], - "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" + "204": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "deployment_review", - "supported-webhook-types": [ - "app" - ] + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } } }, - "deployment-review-rejected": { + "/user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { "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", + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deployment_review" + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#restore-a-package-version-for-the-authenticated-user" }, "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": "deployment_review", - "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" - } + "$ref": "#/components/parameters/package-type" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-name" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-version-id" } ], - "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" + "204": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "deployment_review", - "supported-webhook-types": [ - "app" - ] + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deployment_review" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/emails#list-public-email-addresses-for-the-authenticated-user" }, "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" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Github-Event", - "in": "header", - "example": "deployment_review", - "schema": { - "type": "string" + "$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" + } } }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "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" + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "deployment_review", - "supported-webhook-types": [ - "app" - ] + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "emails" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deployment_status" + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/repos#list-repositories-for-the-authenticated-user" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", + "name": "visibility", + "description": "Limit results to repositories with the specified visibility.", + "in": "query", + "required": false, "schema": { - "type": "string" + "type": "string", + "enum": [ + "all", + "public", + "private" + ], + "default": "all" } }, { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, + "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" + "type": "string", + "default": "owner,collaborator,organization_member" } }, { - "name": "X-Github-Event", - "in": "header", - "example": "deployment_status", + "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" + "type": "string", + "enum": [ + "all", + "owner", + "public", + "private", + "member" + ], + "default": "all" } }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, + "name": "sort", + "description": "The property to sort the results by.", + "in": "query", + "required": false, "schema": { - "type": "string" + "type": "string", + "enum": [ + "created", + "updated", + "pushed", + "full_name" + ], + "default": "full_name" } }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", + "name": "direction", + "description": "The order to sort by. Default: `asc` when using `full_name`, otherwise `desc`.", + "in": "query", + "required": false, "schema": { - "type": "string" + "type": "string", + "enum": [ + "asc", + "desc" + ] } }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" + "$ref": "#/components/parameters/page" + }, + { + "$ref": "#/components/parameters/since-repo-date" + }, + { + "$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" + } } + }, + "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": "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": { - "$ref": "#/components/schemas/webhook-deployment-status-created" + "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" + }, + "examples": { + "default": { + "value": { + "name": "Hello-World", + "description": "This is your first repo!", + "homepage": "https://github.com", + "private": false, + "is_template": true + } + } } } } }, "responses": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/full-repository" + }, + "examples": { + "default": { + "$ref": "#/components/examples/full-repository" + } + } + } + }, + "headers": { + "Location": { + "example": "https://api.github.com/repos/octocat/Hello-World", + "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" + }, + "422": { + "$ref": "#/components/responses/validation_failed" + }, + "400": { + "$ref": "#/components/responses/bad_request" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "deployment_status", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] - } + "enabledForGitHubApps": false, + "category": "repos", + "subcategory": "repos" + }, + "x-github-breaking-changes": [ + { + "changeset": "change_create_repo_trade_compliance_response_status", + "patch": { + "responses": { + "451": { + "$ref": "#/components/responses/validation_failed" + } + } + }, + "version": "2026-03-10" + } + ] } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + "description": "API method documentation", + "url": "https://docs.github.com/rest/collaborators/invitations#list-repository-invitations-for-the-authenticated-user" }, "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" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Github-Event", - "in": "header", - "example": "discussion", - "schema": { - "type": "string" + "$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" + } } }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, + "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": [ { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/invitation-id" } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/webhook-discussion-answered" + "responses": { + "204": { + "description": "Response" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "409": { + "$ref": "#/components/responses/conflict" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "304": { + "$ref": "#/components/responses/not_modified" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "collaborators", + "subcategory": "invitations" + }, + "x-github-breaking-changes": [ + { + "changeset": "change_accept_repository_invitation_response_status", + "patch": { + "responses": { + "451": { + "$ref": "#/components/responses/validation_failed" + } } - } + }, + "version": "2026-03-10" } + ] + }, + "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": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "204": { + "description": "Response" + }, + "409": { + "$ref": "#/components/responses/conflict" + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "discussion", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "collaborators", + "subcategory": "invitations" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/social-accounts#list-social-accounts-for-the-authenticated-user" }, "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" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Github-Event", - "in": "header", - "example": "discussion", - "schema": { - "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" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "401": { + "$ref": "#/components/responses/requires_authentication" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "social-accounts" + } + }, + "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": { - "$ref": "#/components/schemas/webhook-discussion-category-changed" + "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" + ] + } + } } } } }, "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" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/social-account" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/social-account-items" + } + } + } } }, - { - "name": "X-Github-Event", - "in": "header", - "example": "discussions", - "schema": { - "type": "string" - } + "422": { + "$ref": "#/components/responses/validation_failed" }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "401": { + "$ref": "#/components/responses/requires_authentication" } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "social-accounts" + } + }, + "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": { - "$ref": "#/components/schemas/webhook-discussion-closed" + "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": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "204": { + "description": "Response" + }, + "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, - "category": "webhooks", - "subcategory": "discussion", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "social-accounts" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion_comment" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/ssh-signing-keys#list-ssh-signing-keys-for-the-authenticated-user" }, "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" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Github-Event", - "in": "header", - "example": "discussion_comment", - "schema": { - "type": "string" + "$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" + } } }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "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": { - "$ref": "#/components/schemas/webhook-discussion-comment-created" + "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": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ssh-signing-key" + }, + "examples": { + "default": { + "$ref": "#/components/examples/ssh-signing-key" + } + } + } + } + }, + "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, - "category": "webhooks", - "subcategory": "discussion_comment", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "ssh-signing-keys" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion_comment" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/ssh-signing-keys#get-an-ssh-signing-key-for-the-authenticated-user" }, "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": "discussion_comment", - "schema": { - "type": "string" + "$ref": "#/components/parameters/ssh-signing-key-id" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ssh-signing-key" + }, + "examples": { + "default": { + "$ref": "#/components/examples/ssh-signing-key" + } + } + } } }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "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" ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/webhook-discussion-comment-deleted" - } - } - } + "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": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "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, - "category": "webhooks", - "subcategory": "discussion_comment", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "users", + "subcategory": "ssh-signing-keys" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion_comment" + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/starring#list-repositories-starred-by-the-authenticated-user" }, "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": "discussion_comment", - "schema": { - "type": "string" - } - }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/sort-starred" }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/direction" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/page" } ], - "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" + "description": "Response", + "content": { + "application/json": { + "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" + } + }, + "examples": { + "alternative-response-with-star-creation-timestamps": { + "$ref": "#/components/examples/starred-repository-items-alternative-response-with-star-creation-timestamps" + } + } + } + }, + "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, - "category": "webhooks", - "subcategory": "discussion_comment", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "activity", + "subcategory": "starring" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/starring#check-if-a-repository-is-starred-by-the-authenticated-user" }, "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" - } + "$ref": "#/components/parameters/owner" }, { - "name": "X-Github-Event", - "in": "header", - "example": "discussion", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "204": { + "description": "Response if this repository is starred by you" }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" + "404": { + "description": "Not Found if this repository is not starred by you", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } } }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "401": { + "$ref": "#/components/responses/requires_authentication" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "304": { + "$ref": "#/components/responses/not_modified" }, - { - "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" + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "discussion", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "activity", + "subcategory": "starring" } - } - }, - "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", + }, + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/starring#star-a-repository-for-the-authenticated-user" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/owner" }, { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/repo" + } + ], + "responses": { + "204": { + "description": "Response" }, - { - "name": "X-Github-Event", - "in": "header", - "example": "discussion", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "401": { + "$ref": "#/components/responses/requires_authentication" }, + "304": { + "$ref": "#/components/responses/not_modified" + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "activity", + "subcategory": "starring" + } + }, + "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": [ { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/owner" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/repo" } ], - "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" + "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" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "discussion", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "activity", + "subcategory": "starring" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/watching#list-repositories-watched-by-the-authenticated-user" }, "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": "discussion", - "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" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/page" } ], - "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" + "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" + } + } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "discussion", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "activity", + "subcategory": "watching" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + "description": "API method documentation", + "url": "https://docs.github.com/rest/teams/teams#list-teams-for-the-authenticated-user" }, "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": "discussion", - "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" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/page" } ], - "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" + "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" + } + } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "discussion", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "teams", + "subcategory": "teams" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/users#get-a-user-using-their-id" }, "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": "discussion", - "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" - } + "$ref": "#/components/parameters/account-id" } ], - "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" + "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" + } + } + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "discussion", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "users" } } }, - "discussion-pinned": { + "/user/{user_id}/projectsV2/{project_number}/drafts": { "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", + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/drafts#create-draft-item-for-user-owned-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": "discussion", - "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" - } + "$ref": "#/components/parameters/user-id" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/project-number" } ], "requestBody": { "required": true, + "description": "Details of the draft item to create in the project.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-discussion-pinned" + "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" + ] + }, + "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": { - "description": "Return a 200 status to indicate that the data was received successfully" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/projects-v2-item-simple" + }, + "examples": { + "draft_issue": { + "$ref": "#/components/examples/projects-v2-item-simple" + } + } + } + } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "discussion", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "drafts" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/users#list-users" }, "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" - } + "$ref": "#/components/parameters/since-user" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" } ], - "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" + "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" + } + } + } + }, + "304": { + "$ref": "#/components/responses/not_modified" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "discussion", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "users" } } }, - "discussion-transferred": { + "/users/{user_id}/projectsV2/{project_number}/views": { "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", + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/views#create-a-view-for-a-user-owned-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": "discussion", - "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" - } + "$ref": "#/components/parameters/user-id" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/project-number" } ], "requestBody": { @@ -86921,185 +87386,287 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-discussion-transferred" + "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 + ] + }, + "sort_by": { + "type": "array", + "description": "Sorting configuration for the view. Each element is a two-element array of `[field_id, direction]` where `direction` is `\"asc\"` or `\"desc\"`. Supports multiple sort criteria applied in order.", + "items": { + "type": "array", + "minItems": 2, + "maxItems": 2, + "items": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string" + } + ] + } + }, + "example": [ + [ + 123, + "asc" + ], + [ + 456, + "desc" + ] + ] + }, + "group_by": { + "type": "array", + "description": "The field IDs to group items by (horizontal grouping). Supports a single field. The field must support grouping; fields such as `Title`, `Reviewers`, `Linked pull requests`, `Sub-issues progress`, `Tracked by`, and `Tracks` cannot be grouped on.", + "items": { + "type": "integer" + }, + "maxItems": 1, + "example": [ + 123 + ] + }, + "vertical_group_by": { + "type": "array", + "description": "The field IDs to use as columns in `board` layout (vertical grouping). Supports a single field. The field must support grouping; fields such as `Title`, `Reviewers`, `Linked pull requests`, `Sub-issues progress`, `Tracked by`, and `Tracks` cannot be grouped on.", + "items": { + "type": "integer" + }, + "maxItems": 1, + "example": [ + 456 + ] + } + }, + "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": "Return a 200 status to indicate that the data was received successfully" + "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" + } + } + } + } + } + }, + "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, - "category": "webhooks", - "subcategory": "discussion", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "projects", + "subcategory": "views" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/users#get-a-user" }, "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": "discussion", - "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" - } + "$ref": "#/components/parameters/username" } ], - "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" + "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" + } + } + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "discussion", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "users" } } }, - "discussion-unlabeled": { + "/users/{username}/attestations/bulk-list": { "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", + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/attestations#list-attestations-by-bulk-subject-digests" }, "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": "discussion", - "schema": { - "type": "string" - } - }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/pagination-before" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/pagination-after" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" } ], "requestBody": { @@ -87107,92 +87674,168 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-discussion-unlabeled" + "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": { "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "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, - "category": "webhooks", - "subcategory": "discussion", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] - } + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "attestations" + }, + "x-github-breaking-changes": [ + { + "changeset": "remove_bundle", + "patch": { + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": { + "attestations_subject_digests": { + "additionalProperties": { + "items": { + "properties": { + "bundle": null + } + } + } + } + } + } + } + } + } + } + }, + "version": "2026-03-10" + } + ] } }, - "discussion-unlocked": { + "/users/{username}/attestations/delete-request": { "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", + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/attestations#delete-attestations-in-bulk" }, "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": "discussion", - "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" - } + "$ref": "#/components/parameters/username" } ], "requestBody": { @@ -87200,278 +87843,436 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-discussion-unlocked" + "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": "Return a 200 status to indicate that the data was received successfully" + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "discussion", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "attestations" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/attestations#delete-attestations-by-subject-digest" }, "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": "discussion", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, + "name": "subject_digest", + "description": "Subject Digest", + "in": "path", + "required": true, "schema": { "type": "string" - } + }, + "x-multi-segment": true + } + ], + "responses": { + "200": { + "description": "Response" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "204": { + "description": "Response" }, + "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": [ { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "name": "attestation_id", + "description": "Attestation ID", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "integer" } } ], - "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" + "description": "Response" + }, + "204": { + "description": "Response" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "discussion", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "attestations" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#fork" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/attestations#list-attestations" }, "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" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Github-Event", - "in": "header", - "example": "fork", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/pagination-before" }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/pagination-after" }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "name": "subject_digest", + "description": "Subject Digest", + "in": "path", + "required": true, "schema": { "type": "string" - } + }, + "x-multi-segment": true }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "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" } } ], - "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" + "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" + } + } + } + } + }, + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/empty-object" + }, + "examples": { + "default": { + "value": null + } + } + } + } + }, + "204": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "fork", - "supported-webhook-types": [ - "business", - "repository", - "organization", - "app" - ] - } + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "attestations" + }, + "x-github-breaking-changes": [ + { + "changeset": "remove_bundle", + "patch": { + "responses": { + "200": { + "content": { + "application/json": { + "schema": { + "properties": { + "attestations": { + "items": { + "properties": { + "bundle": null + } + } + } + } + } + } + } + } + } + }, + "version": "2026-03-10" + } + ] } }, - "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", + "/users/{username}/copilot-spaces": { + "get": { + "summary": "List Copilot Spaces for a user", + "description": "Lists Copilot Spaces owned by a user. The authenticated user must have read access to the user's Copilot Spaces.\n\nOnly Spaces that are readable by the authenticated user are returned. This includes the user's own spaces, and public user spaces when accessing another user's spaces.\n\nOAuth app tokens and personal access tokens (classic) need the `read:user` scope to use this endpoint.", + "tags": [ + "copilot-spaces" + ], + "operationId": "copilot-spaces/list-for-user", "externalDocs": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#github_app_authorization" + "description": "API method documentation", + "url": "https://docs.github.com/rest/copilot-spaces/copilot-spaces#list-copilot-spaces-for-a-user" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, + "name": "per_page", + "description": "The number of results per page (max 100).", + "in": "query", "schema": { - "type": "string" + "type": "integer", + "minimum": 1, + "maximum": 100, + "default": 30 } }, { - "name": "X-Github-Event", - "in": "header", - "example": "github_app_authorization", + "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.", + "in": "query", "schema": { "type": "string" } }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, + "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.", + "in": "query", "schema": { "type": "string" } - }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "spaces" + ], + "properties": { + "spaces": { + "type": "array", + "description": "The list of Copilot Spaces on this page of results.", + "items": { + "$ref": "#/components/schemas/copilot-space" + } + } + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/copilot-spaces-user-list" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "enabledForGitHubApps": false, + "category": "copilot-spaces", + "subcategory": "copilot-spaces" + } + }, + "post": { + "summary": "Create a Copilot Space for a user", + "description": "Creates a new Copilot Space owned by a user. Only the authenticated user can create spaces for their own account.\n\nUsers can create personal Copilot Spaces for their individual use.\n\nOAuth app tokens and personal access tokens (classic) need the `read:user` scope to use this endpoint.", + "tags": [ + "copilot-spaces" + ], + "operationId": "copilot-spaces/create-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/copilot-spaces/copilot-spaces#create-a-copilot-space-for-a-user" + }, + "parameters": [ { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" } ], "requestBody": { @@ -87479,88 +88280,224 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-github-app-authorization-revoked" + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the Copilot Space.", + "example": "My Development Space" + }, + "description": { + "type": "string", + "description": "A description of the Copilot Space.", + "example": "Personal space for development assistance" + }, + "general_instructions": { + "type": "string", + "maxLength": 4000, + "description": "General instructions for the Copilot Space.", + "example": "Help me with React development patterns and best practices" + }, + "base_role": { + "type": "string", + "enum": [ + "reader", + "no_access" + ], + "description": "The base role that determines default permissions for the space.\n- `no_access`: No default access (default)\n- `reader`: Makes the space publicly readable\nNote: User spaces do not support writer or admin base roles.", + "default": "no_access" + }, + "resources_attributes": { + "type": "array", + "description": "Resources to attach to the space.", + "items": { + "type": "object", + "properties": { + "resource_type": { + "type": "string", + "enum": [ + "repository", + "github_file", + "free_text", + "github_issue", + "github_pull_request", + "media_content", + "uploaded_text_file" + ], + "description": "The type of resource." + }, + "metadata": { + "type": "object", + "description": "Metadata specific to the resource type.", + "properties": { + "repository_id": { + "type": "integer", + "description": "Repository ID for repository or file resources." + }, + "file_path": { + "type": "string", + "description": "File path for file resources." + }, + "text": { + "type": "string", + "description": "Text content for free text resources." + }, + "name": { + "type": "string", + "description": "Name for the resource." + }, + "number": { + "type": "integer", + "description": "Issue or PR number." + } + } + } + } + } + } + }, + "required": [ + "name" + ] + }, + "examples": { + "default": { + "value": { + "name": "My Development Space", + "description": "Personal space for development assistance", + "general_instructions": "Help me with React development patterns and best practices", + "resources_attributes": [ + { + "resource_type": "github_file", + "metadata": { + "repository_id": 789012, + "file_path": "src/components/App.js" + } + }, + { + "resource_type": "free_text", + "metadata": { + "name": "Development Notes", + "text": "Focus on clean code principles and modern React patterns" + } + } + ] + } + } } } } }, "responses": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/copilot-space" + }, + "examples": { + "default": { + "$ref": "#/components/examples/copilot-space-user" + } + } + } + } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "github_app_authorization", - "supported-webhook-types": [ - "app" - ] + "enabledForGitHubApps": false, + "category": "copilot-spaces", + "subcategory": "copilot-spaces" } } }, - "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", + "/users/{username}/copilot-spaces/{space_number}": { + "get": { + "summary": "Get a Copilot Space for a user", + "description": "Gets details about a specific Copilot Space owned by a user. The authenticated user must have read access to the Space.\n\nPrivate user spaces require the authenticated user to be the owner of the space.\nPublic user spaces are accessible to any authenticated user.\n\nOAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.", + "tags": [ + "copilot-spaces" + ], + "operationId": "copilot-spaces/get-for-user", "externalDocs": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#gollum" + "description": "API method documentation", + "url": "https://docs.github.com/rest/copilot-spaces/copilot-spaces#get-a-copilot-space-for-a-user" }, "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" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Event", - "in": "header", - "example": "gollum", + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "integer" } - }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/copilot-space" + }, + "examples": { + "default": { + "$ref": "#/components/examples/copilot-space-user" + } + } + } } }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "enabledForGitHubApps": false, + "category": "copilot-spaces", + "subcategory": "copilot-spaces" + } + }, + "put": { + "summary": "Set a Copilot Space for a user", + "description": "Updates a Copilot Space owned by a user. Only the authenticated user can update spaces for their own account.\n\nUsers can update their personal Copilot Spaces.\n\nOAuth app tokens and personal access tokens (classic) need the `read:user` scope to use this endpoint.", + "tags": [ + "copilot-spaces" + ], + "operationId": "copilot-spaces/update-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/copilot-spaces/copilot-spaces#set-a-copilot-space-for-a-user" + }, + "parameters": [ { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "integer" } } ], @@ -87569,182 +88506,356 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-gollum" + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "The name of the Copilot Space.", + "example": "Updated Development Space" + }, + "description": { + "type": "string", + "description": "A description of the Copilot Space.", + "example": "Updated personal space for development assistance" + }, + "general_instructions": { + "type": "string", + "maxLength": 4000, + "description": "General instructions for the Copilot Space.", + "example": "Updated instructions to help me with React development patterns and best practices" + }, + "base_role": { + "type": "string", + "enum": [ + "reader", + "no_access" + ], + "description": "The base role that determines default permissions for the space. Changing this field requires admin permissions.\n- `no_access`: No default access (default)\n- `reader`: Makes the space publicly readable\nNote: User spaces do not support writer or admin base roles." + }, + "resources_attributes": { + "type": "array", + "description": "Resources to attach to the space.", + "items": { + "type": "object", + "properties": { + "resource_type": { + "type": "string", + "enum": [ + "repository", + "github_file", + "free_text", + "github_issue", + "github_pull_request", + "media_content", + "uploaded_text_file" + ], + "description": "The type of resource." + }, + "metadata": { + "type": "object", + "description": "Metadata specific to the resource type.", + "properties": { + "repository_id": { + "type": "integer", + "description": "Repository ID for repository or file resources." + }, + "file_path": { + "type": "string", + "description": "File path for file resources." + }, + "text": { + "type": "string", + "description": "Text content for free text resources." + }, + "name": { + "type": "string", + "description": "Name for the resource." + }, + "number": { + "type": "integer", + "description": "Issue or PR number." + } + } + } + } + } + } + } + }, + "examples": { + "default": { + "value": { + "name": "Updated Development Space", + "description": "Updated personal space for development assistance", + "general_instructions": "Updated instructions to help me with React development patterns and best practices", + "resources_attributes": [ + { + "resource_type": "github_file", + "metadata": { + "repository_id": 789012, + "file_path": "src/components/UpdatedApp.js" + } + }, + { + "id": 123, + "_destroy": true + }, + { + "id": 456, + "resource_type": "free_text", + "metadata": { + "name": "Updated Development Notes", + "text": "Updated focus on clean code principles and modern React patterns" + } + } + ] + } + } } } } }, "responses": { "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/copilot-space" + }, + "examples": { + "default": { + "$ref": "#/components/examples/copilot-space-user" + } + } + } + } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "gollum", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "copilot-spaces", + "subcategory": "copilot-spaces" } - } - }, - "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", + }, + "delete": { + "summary": "Delete a Copilot Space for a user", + "description": "Deletes a Copilot Space owned by a user. The authenticated user must be the owner of the space.\n\n**Warning:** This action is permanent and cannot be undone. Deleting a space will remove all associated resources and configurations.\n\nOAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint.", + "tags": [ + "copilot-spaces" + ], + "operationId": "copilot-spaces/delete-for-user", "externalDocs": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation" + "description": "API method documentation", + "url": "https://docs.github.com/rest/copilot-spaces/copilot-spaces#delete-a-copilot-space-for-a-user" }, "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": "installation", - "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" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "integer" } } ], - "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" + "204": { + "description": "The Copilot Space has been successfully deleted." + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "installation", - "supported-webhook-types": [ - "app" - ] + "enabledForGitHubApps": false, + "category": "copilot-spaces", + "subcategory": "copilot-spaces" } } }, - "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", + "/users/{username}/copilot-spaces/{space_number}/collaborators": { + "get": { + "summary": "List collaborators for a Copilot Space for a user", + "description": "Lists all collaborators for a specific Copilot Space owned by a user. The authenticated user must be the owner of the space or have admin access to the space.\n\nEach collaborator entry specifies which user has access to the space and at what level (reader, writer, or admin). The space owner is excluded from this list.\n\nTeam collaborators are not supported for user-owned Copilot Spaces.\n\nOAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint.", + "tags": [ + "copilot-spaces" + ], + "operationId": "copilot-spaces/list-collaborators-for-user", "externalDocs": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation" + "description": "API method documentation", + "url": "https://docs.github.com/rest/copilot-spaces/collaborators#list-collaborators-for-a-copilot-space-for-a-user" }, "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" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Event", - "in": "header", - "example": "installation", + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "integer" } - }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "collaborators" + ], + "properties": { + "collaborators": { + "type": "array", + "description": "The list of collaborators for this Copilot Space.", + "items": { + "$ref": "#/components/schemas/copilot-space-collaborator" + } + } + } + }, + "examples": { + "default": { + "value": { + "collaborators": [ + { + "actor_type": "User", + "role": "writer", + "login": "octocat", + "id": 12345, + "node_id": "MDQ6VXNlcjEyMzQ1", + "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, + "name": "The Octocat", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "hireable": false, + "bio": "There once was...", + "twitter_username": "octocat", + "public_repos": 2, + "public_gists": 1, + "followers": 20, + "following": 0, + "created_at": "2008-01-14T04:33:35Z", + "updated_at": "2008-01-14T04:33:35Z" + }, + { + "actor_type": "User", + "role": "reader", + "login": "github-user", + "id": 67890, + "node_id": "MDQ6VXNlcjY3ODkw", + "avatar_url": "https://github.com/images/error/other_user.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/github-user", + "html_url": "https://github.com/github-user", + "followers_url": "https://api.github.com/users/github-user/followers", + "following_url": "https://api.github.com/users/github-user/following{/other_user}", + "gists_url": "https://api.github.com/users/github-user/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github-user/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-user/subscriptions", + "organizations_url": "https://api.github.com/users/github-user/orgs", + "repos_url": "https://api.github.com/users/github-user/repos", + "events_url": "https://api.github.com/users/github-user/events{/privacy}", + "received_events_url": "https://api.github.com/users/github-user/received_events", + "type": "User", + "user_view_type": "public", + "site_admin": false, + "name": "GitHub User", + "company": null, + "blog": "", + "location": null, + "email": null, + "hireable": null, + "bio": null, + "twitter_username": null, + "public_repos": 5, + "public_gists": 0, + "followers": 10, + "following": 5, + "created_at": "2010-01-14T04:33:35Z", + "updated_at": "2010-01-14T04:33:35Z" + } + ] + } + } + } + } } }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "enabledForGitHubApps": false, + "category": "copilot-spaces", + "subcategory": "collaborators" + } + }, + "post": { + "summary": "Add a collaborator to a Copilot Space for a user", + "description": "Adds a collaborator to a specific Copilot Space owned by a user. The authenticated user must be the owner of the space or have admin access to the space.\n\nTeam collaborators are not supported for user-owned Copilot Spaces.\n\nOAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint.", + "tags": [ + "copilot-spaces" + ], + "operationId": "copilot-spaces/add-collaborator-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/copilot-spaces/collaborators#add-a-collaborator-to-a-copilot-space-for-a-user" + }, + "parameters": [ { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "integer" } } ], @@ -87753,87 +88864,160 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-installation-deleted" + "type": "object", + "required": [ + "actor_type", + "actor_identifier", + "role" + ], + "properties": { + "actor_type": { + "type": "string", + "enum": [ + "User", + "Team" + ], + "description": "The type of actor (must be `User` for user-owned spaces; `Team` will be rejected)." + }, + "actor_identifier": { + "type": "string", + "description": "The username of the collaborator. The numeric user ID is also accepted." + }, + "role": { + "type": "string", + "enum": [ + "reader", + "writer", + "admin" + ], + "description": "The role to grant to the collaborator." + } + } + }, + "examples": { + "default": { + "value": { + "actor_type": "User", + "actor_identifier": "octocat", + "role": "writer" + } + } } } } }, "responses": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "201": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/copilot-space-collaborator" + }, + "examples": { + "default": { + "value": { + "actor_type": "User", + "role": "writer", + "login": "octocat", + "id": 12345, + "node_id": "MDQ6VXNlcjEyMzQ1", + "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, + "name": "The Octocat", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "hireable": false, + "bio": "There once was...", + "twitter_username": "octocat", + "public_repos": 2, + "public_gists": 1, + "followers": 20, + "following": 0, + "created_at": "2008-01-14T04:33:35Z", + "updated_at": "2008-01-14T04:33:35Z" + } + } + } + } + } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "installation", - "supported-webhook-types": [ - "app" - ] + "enabledForGitHubApps": false, + "category": "copilot-spaces", + "subcategory": "collaborators" } } }, - "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", + "/users/{username}/copilot-spaces/{space_number}/collaborators/{actor_type}/{actor_identifier}": { + "put": { + "summary": "Set a collaborator role for a Copilot Space for a user", + "description": "Updates the role of a collaborator for a specific Copilot Space owned by a user. The authenticated user must be the owner of the space or have admin access to the space.\n\nOAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint.", + "tags": [ + "copilot-spaces" + ], + "operationId": "copilot-spaces/update-collaborator-for-user", "externalDocs": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation" + "description": "API method documentation", + "url": "https://docs.github.com/rest/copilot-spaces/collaborators#set-a-collaborator-role-for-a-copilot-space-for-a-user" }, "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": "installation", - "schema": { - "type": "string" - } - }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "integer" } }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "name": "actor_type", + "description": "The type of actor (must be `User` for user-owned spaces; `Team` will be rejected).", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "string", + "enum": [ + "User", + "Team" + ] } }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "name": "actor_identifier", + "description": "The username of the collaborator. The numeric user ID is also accepted.", + "in": "path", + "required": true, "schema": { "type": "string" } @@ -87844,180 +89028,272 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-installation-new-permissions-accepted" + "type": "object", + "required": [ + "role" + ], + "properties": { + "role": { + "type": "string", + "enum": [ + "reader", + "writer", + "admin", + "no_access" + ], + "description": "The new role to grant to the collaborator. Use `no_access` to remove the collaborator." + } + } + }, + "examples": { + "default": { + "value": { + "role": "admin" + } + } } } } }, "responses": { "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/copilot-space-collaborator" + }, + "examples": { + "default": { + "value": { + "actor_type": "User", + "role": "admin", + "login": "octocat", + "id": 12345, + "node_id": "MDQ6VXNlcjEyMzQ1", + "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, + "name": "The Octocat", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "hireable": false, + "bio": "There once was...", + "twitter_username": "octocat", + "public_repos": 2, + "public_gists": 1, + "followers": 20, + "following": 0, + "created_at": "2008-01-14T04:33:35Z", + "updated_at": "2008-01-14T04:33:35Z" + } + } + } + } + } + }, + "204": { + "description": "Response when `role` is `no_access` and the collaborator was removed." + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "installation", - "supported-webhook-types": [ - "app" - ] + "enabledForGitHubApps": false, + "category": "copilot-spaces", + "subcategory": "collaborators" } - } - }, - "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", + }, + "delete": { + "summary": "Remove a collaborator from a Copilot Space for a user", + "description": "Removes a collaborator from a specific Copilot Space owned by a user. The authenticated user must be the owner of the space or have admin access to the space.\n\nOAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint.", + "tags": [ + "copilot-spaces" + ], + "operationId": "copilot-spaces/remove-collaborator-for-user", "externalDocs": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation_repositories" + "description": "API method documentation", + "url": "https://docs.github.com/rest/copilot-spaces/collaborators#remove-a-collaborator-from-a-copilot-space-for-a-user" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "integer" } }, { - "name": "X-Github-Event", - "in": "header", - "example": "installation_repositories", + "name": "actor_type", + "description": "The type of actor (must be `User` for user-owned spaces; `Team` will be rejected).", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "string", + "enum": [ + "User", + "Team" + ] } }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, + "name": "actor_identifier", + "description": "The username of the collaborator. The numeric user ID is also accepted.", + "in": "path", + "required": true, "schema": { "type": "string" } + } + ], + "responses": { + "204": { + "description": "Response" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "enabledForGitHubApps": false, + "category": "copilot-spaces", + "subcategory": "collaborators" + } + } + }, + "/users/{username}/copilot-spaces/{space_number}/resources": { + "get": { + "summary": "List resources for a Copilot Space for a user", + "description": "Lists all resources attached to a specific Copilot Space owned by a user.\nThe authenticated user must have appropriate permissions to view the space.\n\nOAuth app tokens and personal access tokens (classic) need the `read:user` scope to use this endpoint.", + "tags": [ + "copilot-spaces" + ], + "operationId": "copilot-spaces/list-resources-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/copilot-spaces/resources#list-resources-for-a-copilot-space-for-a-user" + }, + "parameters": [ { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "integer" } } ], - "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" + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "resources" + ], + "properties": { + "resources": { + "type": "array", + "description": "The list of resources attached to this Copilot Space.", + "items": { + "$ref": "#/components/schemas/copilot-space-resource" + } + } + } + }, + "examples": { + "default": { + "value": { + "resources": [ + { + "id": 1, + "resource_type": "free_text", + "copilot_chat_attachment_id": null, + "metadata": { + "name": "notes.txt", + "text": "Some helpful notes" + }, + "created_at": "2025-01-01T00:00:00Z", + "updated_at": "2025-01-01T00:00:00Z" + } + ] + } + } + } + } + } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { - "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "installation_repositories", - "supported-webhook-types": [ - "app" - ] + "enabledForGitHubApps": false, + "category": "copilot-spaces", + "subcategory": "resources" } - } - }, - "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", + "summary": "Create a resource for a Copilot Space for a user", + "description": "Creates a new resource in a specific Copilot Space owned by a user.\nThe authenticated user must have write permissions on the space.\n\nThe following resource types are supported: `repository`, `github_file`, `free_text`, `github_issue`, `github_pull_request`.\nThe `uploaded_text_file` and `media_content` types are not supported via this endpoint.\n\nFor `github_file` resources, if a resource with the same repository, file path, and SHA already exists, the existing resource is returned with a `200` status.\n\nOAuth app tokens and personal access tokens (classic) need the `write:user` scope to use this endpoint.", + "tags": [ + "copilot-spaces" + ], + "operationId": "copilot-spaces/create-resource-for-user", "externalDocs": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation_repositories" + "description": "API method documentation", + "url": "https://docs.github.com/rest/copilot-spaces/resources#create-a-resource-for-a-copilot-space-for-a-user" }, "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": "installation_repositories", - "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" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "integer" } } ], @@ -88026,89 +89302,236 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-installation-repositories-removed" + "type": "object", + "required": [ + "resource_type", + "metadata" + ], + "properties": { + "resource_type": { + "type": "string", + "enum": [ + "repository", + "github_file", + "free_text", + "github_issue", + "github_pull_request" + ], + "description": "The type of resource to create." + }, + "metadata": { + "type": "object", + "description": "Resource-specific metadata.", + "additionalProperties": true + } + } + }, + "examples": { + "free_text": { + "value": { + "resource_type": "free_text", + "metadata": { + "name": "notes.txt", + "text": "Some helpful notes" + } + } + }, + "repository": { + "value": { + "resource_type": "repository", + "metadata": { + "repository_id": 42 + } + } + }, + "github_file": { + "value": { + "resource_type": "github_file", + "metadata": { + "repository_id": 42, + "file_path": "README.md", + "sha": "abc123" + } + } + } } } } }, "responses": { + "201": { + "description": "Resource created", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/copilot-space-resource" + }, + "examples": { + "default": { + "value": { + "id": 1, + "resource_type": "free_text", + "copilot_chat_attachment_id": null, + "metadata": { + "name": "notes.txt", + "text": "Some helpful notes" + }, + "created_at": "2025-01-01T00:00:00Z", + "updated_at": "2025-01-01T00:00:00Z" + } + } + } + } + } + }, "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "description": "Duplicate github_file resource already exists", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/copilot-space-resource" + }, + "examples": { + "default": { + "value": { + "id": 1, + "resource_type": "github_file", + "copilot_chat_attachment_id": null, + "metadata": { + "repository_id": 42, + "file_path": "README.md", + "sha": "abc123" + }, + "created_at": "2025-01-01T00:00:00Z", + "updated_at": "2025-01-01T00:00:00Z" + } + } + } + } + } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "installation_repositories", - "supported-webhook-types": [ - "app" - ] + "enabledForGitHubApps": false, + "category": "copilot-spaces", + "subcategory": "resources" } } }, - "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", + "/users/{username}/copilot-spaces/{space_number}/resources/{space_resource_id}": { + "get": { + "summary": "Get a resource for a Copilot Space for a user", + "description": "Gets a specific resource attached to a Copilot Space owned by a user.\nThe authenticated user must have appropriate permissions to view the space.\n\nOAuth app tokens and personal access tokens (classic) need the `read:user` scope to use this endpoint.", + "tags": [ + "copilot-spaces" + ], + "operationId": "copilot-spaces/get-resource-for-user", "externalDocs": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation" + "description": "API method documentation", + "url": "https://docs.github.com/rest/copilot-spaces/resources#get-a-resource-for-a-copilot-space-for-a-user" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "integer" } }, { - "name": "X-Github-Event", - "in": "header", - "example": "installation", + "name": "space_resource_id", + "description": "The unique identifier of the resource.", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "integer" } - }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" + } + ], + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/copilot-space-resource" + }, + "examples": { + "default": { + "value": { + "id": 1, + "resource_type": "free_text", + "copilot_chat_attachment_id": null, + "metadata": { + "name": "notes.txt", + "text": "Some helpful notes" + }, + "created_at": "2025-01-01T00:00:00Z", + "updated_at": "2025-01-01T00:00:00Z" + } + } + } + } } }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + } + }, + "x-github": { + "enabledForGitHubApps": false, + "category": "copilot-spaces", + "subcategory": "resources" + } + }, + "put": { + "summary": "Set a resource for a Copilot Space for a user", + "description": "Updates the metadata of a resource in a specific Copilot Space owned by a user.\nThe authenticated user must have write permissions on the space.\n\nOAuth app tokens and personal access tokens (classic) need the `write:user` scope to use this endpoint.", + "tags": [ + "copilot-spaces" + ], + "operationId": "copilot-spaces/update-resource-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/copilot-spaces/resources#set-a-resource-for-a-copilot-space-for-a-user" + }, + "parameters": [ { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "integer" } }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "name": "space_resource_id", + "description": "The unique identifier of the resource.", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "integer" } } ], @@ -88117,1481 +89540,1479 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-installation-suspend" + "type": "object", + "properties": { + "metadata": { + "type": "object", + "description": "Updated resource-specific metadata.", + "additionalProperties": true + } + } + }, + "examples": { + "default": { + "value": { + "metadata": { + "name": "updated-notes.txt", + "text": "Updated content" + } + } + } } } } }, "responses": { "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/copilot-space-resource" + }, + "examples": { + "default": { + "value": { + "id": 1, + "resource_type": "free_text", + "copilot_chat_attachment_id": null, + "metadata": { + "name": "updated-notes.txt", + "text": "Updated content" + }, + "created_at": "2025-01-01T00:00:00Z", + "updated_at": "2025-01-01T12:00:00Z" + } + } + } + } + } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { - "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "installation", - "supported-webhook-types": [ - "app" - ] + "enabledForGitHubApps": false, + "category": "copilot-spaces", + "subcategory": "resources" } - } - }, - "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", + }, + "delete": { + "summary": "Delete a resource from a Copilot Space for a user", + "description": "Deletes a resource from a specific Copilot Space owned by a user.\nThe authenticated user must have write permissions on the space.\n\nOAuth app tokens and personal access tokens (classic) need the `write:user` scope to use this endpoint.", + "tags": [ + "copilot-spaces" + ], + "operationId": "copilot-spaces/delete-resource-for-user", "externalDocs": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation_target" + "description": "API method documentation", + "url": "https://docs.github.com/rest/copilot-spaces/resources#delete-a-resource-from-a-copilot-space-for-a-user" }, "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": "installation_target", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, + "name": "space_number", + "description": "The unique identifier of the Copilot Space.", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "integer" } }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", + "name": "space_resource_id", + "description": "The unique identifier of the resource.", + "in": "path", + "required": true, "schema": { - "type": "string" + "type": "integer" } + } + ], + "responses": { + "204": { + "description": "Response" }, - { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "403": { + "$ref": "#/components/responses/forbidden" }, - { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "404": { + "$ref": "#/components/responses/not_found" } + }, + "x-github": { + "enabledForGitHubApps": false, + "category": "copilot-spaces", + "subcategory": "resources" + } + } + }, + "/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" ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/webhook-installation-target-renamed" - } - } - } + "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": "Return a 200 status to indicate that the data was received successfully" + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/package" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/packages-for-user" + } + } + } + } + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "installation_target", - "supported-webhook-types": [ - "app" - ] + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation" + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/events#list-events-for-the-authenticated-user" }, "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": "installation", - "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" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/page" } ], - "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" + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/event" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/user-events-items" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "installation", - "supported-webhook-types": [ - "app" - ] + "enabledForGitHubApps": true, + "category": "activity", + "subcategory": "events" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue_comment" + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/events#list-organization-events-for-the-authenticated-user" }, "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": "issue_comment", - "schema": { - "type": "string" - } - }, - { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/org" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/page" } ], - "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" + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/event" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/user-org-events-items" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "issue_comment", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "activity", + "subcategory": "events" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue_comment" + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/events#list-public-events-for-a-user" }, "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": "issue_comment", - "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" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/page" } ], - "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" + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/event" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/user-public-events-items" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "issue_comment", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "activity", + "subcategory": "events" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue_comment" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/followers#list-followers-of-a-user" }, "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": "issue_comment", - "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" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/page" } ], - "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" + "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, - "category": "webhooks", - "subcategory": "issue_comment", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "followers" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue_comment" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/followers#list-the-people-a-user-follows" }, "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": "issue_comment", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "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": "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": [ { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "name": "target_user", + "in": "path", + "required": true, "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" + "204": { + "description": "if the user follows the target user" + }, + "404": { + "description": "if the user does not follow the target user" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "issue_comment", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "users", + "subcategory": "followers" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue_comment" + "description": "API method documentation", + "url": "https://docs.github.com/rest/gists/gists#list-gists-for-a-user" }, "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" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Event", - "in": "header", - "example": "issue_comment", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/since" }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "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" - } + "$ref": "#/components/parameters/page" } ], - "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" + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/base-gist" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/base-gist-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } + } + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "issue_comment", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "gists", + "subcategory": "gists" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue-dependencies" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/gpg-keys#list-gpg-keys-for-a-user" }, "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" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Event", - "in": "header", - "example": "issue_dependencies", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" + "$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": [ { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "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" + "type": "string", + "enum": [ + "organization", + "repository", + "issue", + "pull_request" + ] } }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "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" } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/webhook-issue-dependencies-blocked-by-added" + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/hovercard" + }, + "examples": { + "default": { + "$ref": "#/components/examples/hovercard" + } + } } } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "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": "Return a 200 status to indicate that the data was received successfully" + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/installation" + }, + "examples": { + "default": { + "$ref": "#/components/examples/installation" + } + } + } + } } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "issue-dependencies", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "apps", + "subcategory": "apps" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue-dependencies" + "description": "API method documentation", + "url": "https://docs.github.com/rest/users/keys#list-public-keys-for-a-user" }, "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" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Event", - "in": "header", - "example": "issue_dependencies", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" + "$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" + } } - }, + } + }, + "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": [ { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/page" } ], - "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" + "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, - "category": "webhooks", - "subcategory": "issue-dependencies", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "orgs", + "subcategory": "orgs" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue-dependencies" + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#list-packages-for-a-user" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", + "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" + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] } }, { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-visibility" }, { - "name": "X-Github-Event", - "in": "header", - "example": "issue_dependencies", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/page" }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" + "$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" + } + } + } } }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "400": { + "$ref": "#/components/responses/package_es_list_error" + } + }, + "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" + }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-name" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/webhook-issue-dependencies-blocking-added" + "responses": { + "200": { + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/package" + }, + "examples": { + "default": { + "$ref": "#/components/examples/package-user" + } + } } } } }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" + } + }, + "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" + }, + { + "$ref": "#/components/parameters/package-name" + }, + { + "$ref": "#/components/parameters/username" + } + ], "responses": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "204": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "issue-dependencies", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } } }, - "issue-dependencies-blocking-removed": { + "/users/{username}/packages/{package_type}/{package_name}/restore": { "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", + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue-dependencies" + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#restore-a-package-for-a-user" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-type" }, { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-name" }, { - "name": "X-Github-Event", - "in": "header", - "example": "issue_dependencies", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, + "name": "token", + "description": "package token", "schema": { "type": "string" - } + }, + "required": false, + "in": "query" + } + ], + "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, + "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": [ { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-type" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-name" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" } ], - "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" + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/package-version" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/package-versions-for-user" + } + } + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "issue-dependencies", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#get-a-package-version-for-a-user" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-type" }, { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-name" }, { - "name": "X-Github-Event", - "in": "header", - "example": "issues", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-version-id" }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" + "$ref": "#/components/parameters/username" + } + ], + "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" + } + }, + "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" }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-name" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-version-id" } ], - "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" + "204": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "issues", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } } }, - "issues-closed": { + "/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { "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", + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + "description": "API method documentation", + "url": "https://docs.github.com/rest/packages/packages#restore-package-version-for-a-user" }, "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" - } + "$ref": "#/components/parameters/package-type" }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-name" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/package-version-id" } ], - "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" + "204": { + "description": "Response" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "issues", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "packages", + "subcategory": "packages" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/projects#list-projects-for-user" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", + "$ref": "#/components/parameters/username" + }, + { + "name": "q", + "description": "Limit results to projects of the specified type.", + "in": "query", + "required": false, "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" - } + "$ref": "#/components/parameters/pagination-before" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/pagination-after" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" } ], - "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" + "description": "Response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$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, - "category": "webhooks", - "subcategory": "issues", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "projects" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/projects#get-project-for-user" }, "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" - } + "$ref": "#/components/parameters/project-number" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" } ], - "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" + "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, - "category": "webhooks", - "subcategory": "issues", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "projects" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/fields#list-project-fields-for-user" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/project-number" }, { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Event", - "in": "header", - "example": "issues", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/pagination-before" }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" + "$ref": "#/components/parameters/pagination-after" + } + ], + "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" + } } }, + "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": "fields" + } + }, + "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" + }, + "parameters": [ { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/project-number" } ], "requestBody": { @@ -89599,1151 +91020,1654 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-issues-edited" + "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" + } } } } }, "responses": { - "200": { - "description": "Return a 200 status to indicate that the data was received successfully" + "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" + } + } + } + } + }, + "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, - "category": "webhooks", - "subcategory": "issues", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "fields" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/fields#get-project-field-for-user" }, "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" - } + "$ref": "#/components/parameters/project-number" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/field-id" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" } ], - "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" + "description": "Response", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/projects-v2-field" + }, + "examples": { + "default": { + "$ref": "#/components/examples/projects-v2-field" + } + } + } + }, + "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, - "category": "webhooks", - "subcategory": "issues", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "fields" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/items#list-items-for-a-user-owned-project" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/project-number" }, { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Event", - "in": "header", - "example": "issues", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/pagination-before" }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/pagination-after" }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "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": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "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": { - "type": "string" + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "maxItems": 50, + "items": { + "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" + "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" + } + } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "issues", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "items" } - } - }, - "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", + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/items#add-item-to-user-owned-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" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "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": { - "$ref": "#/components/schemas/webhook-issues-milestoned" + "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" + ] + } + ] + }, + "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": { - "description": "Return a 200 status to indicate that the data was received successfully" + "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" + } + } + } + } + } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "issues", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "items" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/items#get-an-item-for-a-user-owned-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" - } + "$ref": "#/components/parameters/project-number" }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/item-id" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "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": { - "type": "string" + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "maxItems": 50, + "items": { + "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" + "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" + } + } + }, + "304": { + "$ref": "#/components/responses/not_modified" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "issues", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "items" } - } - }, - "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", + }, + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/items#update-project-item-for-user" }, "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" - } + "$ref": "#/components/parameters/project-number" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "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": { - "$ref": "#/components/schemas/webhook-issues-pinned" + "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": "Return a 200 status to indicate that the data was received successfully" + "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" + } + } + } + } + }, + "401": { + "$ref": "#/components/responses/requires_authentication" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "404": { + "$ref": "#/components/responses/not_found" + }, + "422": { + "$ref": "#/components/responses/validation_failed" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "issues", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "items" } - } - }, - "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", + }, + "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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/items#delete-project-item-for-user" }, "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" - } + "$ref": "#/components/parameters/project-number" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/item-id" } ], - "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" + "204": { + "description": "Response" + }, + "403": { + "$ref": "#/components/responses/forbidden" + }, + "401": { + "$ref": "#/components/responses/requires_authentication" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "issues", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "projects", + "subcategory": "items" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + "description": "API method documentation", + "url": "https://docs.github.com/rest/projects/items#list-items-for-a-user-project-view" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/project-number" }, { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Event", - "in": "header", - "example": "issues", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/view-number" }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, + "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": { - "type": "string" + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "maxItems": 50, + "items": { + "type": "string" + } + } + ] } }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/pagination-before" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/pagination-after" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" } ], - "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" + "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" + } + } + }, + "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, - "category": "webhooks", - "subcategory": "issues", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": false, + "category": "projects", + "subcategory": "items" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + "description": "API method documentation", + "url": "https://docs.github.com/rest/activity/events#list-events-received-by-the-authenticated-user" }, "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" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Event", - "in": "header", - "example": "issues", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "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": [ { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/page" } ], - "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" + "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, - "category": "webhooks", - "subcategory": "issues", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "activity", + "subcategory": "events" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + "description": "API method documentation", + "url": "https://docs.github.com/rest/repos/repos#list-repositories-for-a-user" }, "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" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Event", - "in": "header", - "example": "issues", + "name": "type", + "description": "Limit results to repositories of the specified type.", + "in": "query", + "required": false, "schema": { - "type": "string" + "type": "string", + "enum": [ + "all", + "owner", + "member" + ], + "default": "owner" } }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, + "name": "sort", + "description": "The property to sort the results by.", + "in": "query", + "required": false, "schema": { - "type": "string" + "type": "string", + "enum": [ + "created", + "updated", + "pushed", + "full_name" + ], + "default": "full_name" } }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", + "name": "direction", + "description": "The order to sort by. Default: `asc` when using `full_name`, otherwise `desc`.", + "in": "query", + "required": false, "schema": { - "type": "string" + "type": "string", + "enum": [ + "asc", + "desc" + ] } }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/per-page" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/page" } ], - "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" + "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, - "category": "webhooks", - "subcategory": "issues", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "repos", + "subcategory": "repos" } } }, - "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", + "/users/{username}/settings/billing/ai_credit/usage": { + "get": { + "summary": "Get billing AI credit usage report for a user", + "description": "Gets a report of AI credit 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-ai-credit-usage-report-user", "externalDocs": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + "description": "API method documentation", + "url": "https://docs.github.com/rest/billing/usage#get-billing-ai-credit-usage-report-for-a-user" }, "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" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Event", - "in": "header", - "example": "issues", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/billing-usage-report-year" }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/billing-usage-report-month-default" }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/billing-usage-report-day" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/billing-usage-report-model" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/billing-usage-report-product" } ], - "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" + "$ref": "#/components/responses/billing_ai_credit_usage_report_user" + }, + "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, - "category": "webhooks", - "subcategory": "issues", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "billing", + "subcategory": "usage" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + "description": "API method documentation", + "url": "https://docs.github.com/rest/billing/usage#get-billing-premium-request-usage-report-for-a-user" }, "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" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Event", - "in": "header", - "example": "issues", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/billing-usage-report-year" }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/billing-usage-report-month-default" }, { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/billing-usage-report-day" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/billing-usage-report-model" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/billing-usage-report-product" } ], - "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" + "$ref": "#/components/responses/billing_premium_request_usage_report_user" + }, + "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, - "category": "webhooks", - "subcategory": "issues", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "billing", + "subcategory": "usage" } } }, - "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", + "/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": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" + "description": "API method documentation", + "url": "https://docs.github.com/rest/billing/usage#get-billing-usage-report-for-a-user" }, "parameters": [ { - "name": "User-Agent", - "in": "header", - "example": "GitHub-Hookshot/123abc", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/username" }, { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/billing-usage-report-year" }, { - "name": "X-Github-Event", - "in": "header", - "example": "issues", - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/billing-usage-report-month" }, { - "name": "X-Github-Hook-Installation-Target-Id", - "in": "header", - "example": 123123, - "schema": { - "type": "string" - } + "$ref": "#/components/parameters/billing-usage-report-day" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/billing_usage_report_user" }, - { - "name": "X-Github-Hook-Installation-Target-Type", - "in": "header", - "example": "repository", - "schema": { - "type": "string" + "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" + } + } + }, + "/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" + }, + "parameters": [ + { + "$ref": "#/components/parameters/username" + }, + { + "$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_user" + }, + "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" + } + } + }, + "/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" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$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" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } + } + }, + "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" }, { - "name": "X-GitHub-Delivery", - "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", - "schema": { - "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/ssh-signing-key" + } + }, + "examples": { + "default": { + "$ref": "#/components/examples/ssh-signing-key-items" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } + } + }, + "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" }, { - "name": "X-Hub-Signature-256", - "in": "header", - "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", - "schema": { - "type": "string" + "$ref": "#/components/parameters/sort-starred" + }, + { + "$ref": "#/components/parameters/direction" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$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" + } + } + } + }, + "headers": { + "Link": { + "$ref": "#/components/headers/link" + } } } + }, + "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" ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/webhook-issues-unpinned" + "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" + }, + { + "$ref": "#/components/parameters/per-page" + }, + { + "$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" } } } }, + "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": "Return a 200 status to indicate that the data was received successfully" + "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" + ] + } + } + } + } + }, + "404": { + "$ref": "#/components/responses/not_found" } }, "x-github": { "githubCloudOnly": false, - "category": "webhooks", - "subcategory": "issues", - "supported-webhook-types": [ - "repository", - "organization", - "app" - ] + "enabledForGitHubApps": true, + "category": "meta", + "subcategory": "meta" } } }, - "issues-untyped": { + "/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 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", + "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#issues" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#branch_protection_configuration" }, "parameters": [ { @@ -90765,7 +92689,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "issues", + "example": "branch_protection_configuration", "schema": { "type": "string" } @@ -90808,7 +92732,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-issues-untyped" + "$ref": "#/components/schemas/webhook-branch-protection-configuration-disabled" } } } @@ -90821,7 +92745,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "issues", + "subcategory": "branch_protection_configuration", "supported-webhook-types": [ "repository", "organization", @@ -90830,13 +92754,13 @@ } } }, - "label-created": { + "branch-protection-configuration-enabled": { "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", + "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#label" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#branch_protection_configuration" }, "parameters": [ { @@ -90858,7 +92782,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "label", + "example": "branch_protection_configuration", "schema": { "type": "string" } @@ -90901,7 +92825,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-label-created" + "$ref": "#/components/schemas/webhook-branch-protection-configuration-enabled" } } } @@ -90914,7 +92838,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "label", + "subcategory": "branch_protection_configuration", "supported-webhook-types": [ "repository", "organization", @@ -90923,13 +92847,13 @@ } } }, - "label-deleted": { + "branch-protection-rule-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 deleted.", - "operationId": "label/deleted", + "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#label" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#branch_protection_rule" }, "parameters": [ { @@ -90951,7 +92875,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "label", + "example": "branch_protection_rule", "schema": { "type": "string" } @@ -90994,7 +92918,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-label-deleted" + "$ref": "#/components/schemas/webhook-branch-protection-rule-created" } } } @@ -91007,7 +92931,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "label", + "subcategory": "branch_protection_rule", "supported-webhook-types": [ "repository", "organization", @@ -91016,13 +92940,13 @@ } } }, - "label-edited": { + "branch-protection-rule-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's name, description, or color was changed.", - "operationId": "label/edited", + "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#label" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#branch_protection_rule" }, "parameters": [ { @@ -91044,7 +92968,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "label", + "example": "branch_protection_rule", "schema": { "type": "string" } @@ -91087,7 +93011,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-label-edited" + "$ref": "#/components/schemas/webhook-branch-protection-rule-deleted" } } } @@ -91100,7 +93024,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "label", + "subcategory": "branch_protection_rule", "supported-webhook-types": [ "repository", "organization", @@ -91109,13 +93033,13 @@ } } }, - "marketplace-purchase-cancelled": { + "branch-protection-rule-edited": { "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", + "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#marketplace_purchase" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#branch_protection_rule" }, "parameters": [ { @@ -91137,7 +93061,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "marketplace_purchase", + "example": "branch_protection_rule", "schema": { "type": "string" } @@ -91180,7 +93104,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-marketplace-purchase-cancelled" + "$ref": "#/components/schemas/webhook-branch-protection-rule-edited" } } } @@ -91193,20 +93117,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "marketplace_purchase", + "subcategory": "branch_protection_rule", "supported-webhook-types": [ - "marketplace" + "repository", + "organization", + "app" ] } } }, - "marketplace-purchase-changed": { + "check-run-completed": { "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", + "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#marketplace_purchase" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_run" }, "parameters": [ { @@ -91228,7 +93154,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "marketplace_purchase", + "example": "check_run", "schema": { "type": "string" } @@ -91271,7 +93197,22 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-marketplace-purchase-changed" + "$ref": "#/components/schemas/webhook-check-run-completed" + }, + "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" + } } } } @@ -91283,21 +93224,24 @@ }, "x-github": { "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "marketplace_purchase", + "subcategory": "check_run", "supported-webhook-types": [ - "marketplace" + "repository", + "organization", + "app" ] } } }, - "marketplace-purchase-pending-change": { + "check-run-created": { "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", + "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#marketplace_purchase" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_run" }, "parameters": [ { @@ -91319,7 +93263,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "marketplace_purchase", + "example": "check_run", "schema": { "type": "string" } @@ -91362,7 +93306,22 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-marketplace-purchase-pending-change" + "$ref": "#/components/schemas/webhook-check-run-created" + }, + "examples": { + "default": { + "$ref": "#/components/examples/check-run-created" + } + } + }, + "application/x-www-form-urlencoded": { + "schema": { + "$ref": "#/components/schemas/webhook-check-run-created-form-encoded" + }, + "examples": { + "default": { + "$ref": "#/components/examples/check-run-created-form-encoded" + } } } } @@ -91374,21 +93333,24 @@ }, "x-github": { "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "marketplace_purchase", + "subcategory": "check_run", "supported-webhook-types": [ - "marketplace" + "repository", + "organization", + "app" ] } } }, - "marketplace-purchase-pending-change-cancelled": { + "check-run-requested-action": { "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", + "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#marketplace_purchase" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_run" }, "parameters": [ { @@ -91410,7 +93372,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "marketplace_purchase", + "example": "check_run", "schema": { "type": "string" } @@ -91453,7 +93415,22 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-marketplace-purchase-pending-change-cancelled" + "$ref": "#/components/schemas/webhook-check-run-requested-action" + }, + "examples": { + "default": { + "$ref": "#/components/examples/check-run-requested-action" + } + } + }, + "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" + } } } } @@ -91465,21 +93442,24 @@ }, "x-github": { "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "marketplace_purchase", + "subcategory": "check_run", "supported-webhook-types": [ - "marketplace" + "repository", + "organization", + "app" ] } } }, - "marketplace-purchase-purchased": { + "check-run-rerequested": { "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", + "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#marketplace_purchase" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_run" }, "parameters": [ { @@ -91501,7 +93481,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "marketplace_purchase", + "example": "check_run", "schema": { "type": "string" } @@ -91544,7 +93524,22 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-marketplace-purchase-purchased" + "$ref": "#/components/schemas/webhook-check-run-rerequested" + }, + "examples": { + "default": { + "$ref": "#/components/examples/check-run-rerequested" + } + } + }, + "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" + } } } } @@ -91556,21 +93551,24 @@ }, "x-github": { "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "marketplace_purchase", + "subcategory": "check_run", "supported-webhook-types": [ - "marketplace" + "repository", + "organization", + "app" ] } } }, - "member-added": { + "check-suite-completed": { "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", + "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#member" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_suite" }, "parameters": [ { @@ -91592,7 +93590,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "member", + "example": "check_suite", "schema": { "type": "string" } @@ -91635,7 +93633,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-member-added" + "$ref": "#/components/schemas/webhook-check-suite-completed" } } } @@ -91648,9 +93646,8 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "member", + "subcategory": "check_suite", "supported-webhook-types": [ - "business", "repository", "organization", "app" @@ -91658,13 +93655,13 @@ } } }, - "member-edited": { + "check-suite-requested": { "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", + "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#member" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_suite" }, "parameters": [ { @@ -91686,7 +93683,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "member", + "example": "check_suite", "schema": { "type": "string" } @@ -91729,7 +93726,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-member-edited" + "$ref": "#/components/schemas/webhook-check-suite-requested" } } } @@ -91742,9 +93739,8 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "member", + "subcategory": "check_suite", "supported-webhook-types": [ - "business", "repository", "organization", "app" @@ -91752,13 +93748,13 @@ } } }, - "member-removed": { + "check-suite-rerequested": { "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", + "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#member" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#check_suite" }, "parameters": [ { @@ -91780,7 +93776,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "member", + "example": "check_suite", "schema": { "type": "string" } @@ -91823,7 +93819,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-member-removed" + "$ref": "#/components/schemas/webhook-check-suite-rerequested" } } } @@ -91836,9 +93832,8 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "member", + "subcategory": "check_suite", "supported-webhook-types": [ - "business", "repository", "organization", "app" @@ -91846,13 +93841,13 @@ } } }, - "membership-added": { + "code-scanning-alert-appeared-in-branch": { "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", + "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#membership" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert" }, "parameters": [ { @@ -91874,7 +93869,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "membership", + "example": "code_scanning_alert", "schema": { "type": "string" } @@ -91917,7 +93912,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-membership-added" + "$ref": "#/components/schemas/webhook-code-scanning-alert-appeared-in-branch" } } } @@ -91930,22 +93925,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "membership", + "subcategory": "code_scanning_alert", "supported-webhook-types": [ + "repository", "organization", - "business", "app" ] } } }, - "membership-removed": { + "code-scanning-alert-closed-by-user": { "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", + "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#membership" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert" }, "parameters": [ { @@ -91967,7 +93962,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "membership", + "example": "code_scanning_alert", "schema": { "type": "string" } @@ -92010,7 +94005,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-membership-removed" + "$ref": "#/components/schemas/webhook-code-scanning-alert-closed-by-user" } } } @@ -92023,25 +94018,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "membership", + "subcategory": "code_scanning_alert", "supported-webhook-types": [ + "repository", "organization", - "business", "app" ] } } }, - "merge-group-checks-requested": { + "code-scanning-alert-created": { "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" - ], + "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#merge_group" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert" }, "parameters": [ { @@ -92063,7 +94055,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "merge_group", + "example": "code_scanning_alert", "schema": { "type": "string" } @@ -92106,7 +94098,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-merge-group-checks-requested" + "$ref": "#/components/schemas/webhook-code-scanning-alert-created" } } } @@ -92119,23 +94111,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "merge_group", + "subcategory": "code_scanning_alert", "supported-webhook-types": [ + "repository", + "organization", "app" ] } } }, - "merge-group-destroyed": { + "code-scanning-alert-fixed": { "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" - ], + "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#merge_group" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert" }, "parameters": [ { @@ -92157,7 +94148,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "merge_group", + "example": "code_scanning_alert", "schema": { "type": "string" } @@ -92200,7 +94191,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-merge-group-destroyed" + "$ref": "#/components/schemas/webhook-code-scanning-alert-fixed" } } } @@ -92213,20 +94204,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "merge_group", + "subcategory": "code_scanning_alert", "supported-webhook-types": [ + "repository", + "organization", "app" ] } } }, - "meta-deleted": { + "code-scanning-alert-reopened": { "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", + "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#meta" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert" }, "parameters": [ { @@ -92248,7 +94241,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "meta", + "example": "code_scanning_alert", "schema": { "type": "string" } @@ -92291,7 +94284,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-meta-deleted" + "$ref": "#/components/schemas/webhook-code-scanning-alert-reopened" } } } @@ -92304,10 +94297,8 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "meta", + "subcategory": "code_scanning_alert", "supported-webhook-types": [ - "marketplace", - "business", "repository", "organization", "app" @@ -92315,13 +94306,13 @@ } } }, - "milestone-closed": { + "code-scanning-alert-reopened-by-user": { "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", + "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#milestone" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert" }, "parameters": [ { @@ -92343,7 +94334,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "milestone", + "example": "code_scanning_alert", "schema": { "type": "string" } @@ -92386,7 +94377,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-milestone-closed" + "$ref": "#/components/schemas/webhook-code-scanning-alert-reopened-by-user" } } } @@ -92399,7 +94390,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "milestone", + "subcategory": "code_scanning_alert", "supported-webhook-types": [ "repository", "organization", @@ -92408,13 +94399,13 @@ } } }, - "milestone-created": { + "code-scanning-alert-updated-assignment": { "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", + "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#milestone" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#code_scanning_alert" }, "parameters": [ { @@ -92436,7 +94427,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "milestone", + "example": "code_scanning_alert", "schema": { "type": "string" } @@ -92479,7 +94470,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-milestone-created" + "$ref": "#/components/schemas/webhook-code-scanning-alert-updated-assignment" } } } @@ -92492,7 +94483,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "milestone", + "subcategory": "code_scanning_alert", "supported-webhook-types": [ "repository", "organization", @@ -92501,13 +94492,13 @@ } } }, - "milestone-deleted": { + "commit-comment-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 deleted.", - "operationId": "milestone/deleted", + "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#milestone" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#commit_comment" }, "parameters": [ { @@ -92529,7 +94520,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "milestone", + "example": "commit_comment", "schema": { "type": "string" } @@ -92572,7 +94563,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-milestone-deleted" + "$ref": "#/components/schemas/webhook-commit-comment-created" } } } @@ -92585,7 +94576,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "milestone", + "subcategory": "commit_comment", "supported-webhook-types": [ "repository", "organization", @@ -92594,13 +94585,12 @@ } } }, - "milestone-edited": { + "create": { "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", + "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#milestone" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#create" }, "parameters": [ { @@ -92622,7 +94612,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "milestone", + "example": "create", "schema": { "type": "string" } @@ -92665,7 +94655,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-milestone-edited" + "$ref": "#/components/schemas/webhook-create" } } } @@ -92678,7 +94668,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "milestone", + "subcategory": "create", "supported-webhook-types": [ "repository", "organization", @@ -92687,13 +94677,13 @@ } } }, - "milestone-opened": { + "custom-property-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 opened.", - "operationId": "milestone/opened", + "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#milestone" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#custom_property" }, "parameters": [ { @@ -92715,7 +94705,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "milestone", + "example": "custom_property", "schema": { "type": "string" } @@ -92758,7 +94748,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-milestone-opened" + "$ref": "#/components/schemas/webhook-custom-property-created" } } } @@ -92771,22 +94761,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "milestone", + "subcategory": "custom_property", "supported-webhook-types": [ - "repository", + "business", "organization", "app" ] } } }, - "org-block-blocked": { + "custom-property-deleted": { "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", + "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#org_block" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#custom_property" }, "parameters": [ { @@ -92808,7 +94798,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "org_block", + "example": "custom_property", "schema": { "type": "string" } @@ -92851,7 +94841,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-org-block-blocked" + "$ref": "#/components/schemas/webhook-custom-property-deleted" } } } @@ -92864,22 +94854,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "org_block", + "subcategory": "custom_property", "supported-webhook-types": [ - "organization", "business", + "organization", "app" ] } } }, - "org-block-unblocked": { + "custom-property-promoted-to-enterprise": { "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", + "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#org_block" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#custom_property" }, "parameters": [ { @@ -92901,7 +94891,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "org_block", + "example": "custom_property", "schema": { "type": "string" } @@ -92944,7 +94934,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-org-block-unblocked" + "$ref": "#/components/schemas/webhook-custom-property-promoted-to-enterprise" } } } @@ -92957,22 +94947,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "org_block", + "subcategory": "custom_property", "supported-webhook-types": [ - "organization", "business", + "organization", "app" ] } } }, - "organization-deleted": { + "custom-property-updated": { "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", + "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#organization" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#custom_property" }, "parameters": [ { @@ -92994,7 +94984,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "organization", + "example": "custom_property", "schema": { "type": "string" } @@ -93037,7 +95027,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-organization-deleted" + "$ref": "#/components/schemas/webhook-custom-property-updated" } } } @@ -93050,22 +95040,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "organization", + "subcategory": "custom_property", "supported-webhook-types": [ - "organization", "business", + "organization", "app" ] } } }, - "organization-member-added": { + "custom-property-values-updated": { "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", + "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#organization" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#custom-property-values" }, "parameters": [ { @@ -93087,7 +95077,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "organization", + "example": "custom_property_values", "schema": { "type": "string" } @@ -93130,7 +95120,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-organization-member-added" + "$ref": "#/components/schemas/webhook-custom-property-values-updated" } } } @@ -93143,22 +95133,21 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "organization", + "subcategory": "custom-property-values", "supported-webhook-types": [ + "repository", "organization", - "business", "app" ] } } }, - "organization-member-invited": { + "delete": { "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", + "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#organization" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#delete" }, "parameters": [ { @@ -93180,7 +95169,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "organization", + "example": "delete", "schema": { "type": "string" } @@ -93223,7 +95212,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-organization-member-invited" + "$ref": "#/components/schemas/webhook-delete" } } } @@ -93236,22 +95225,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "organization", + "subcategory": "delete", "supported-webhook-types": [ + "repository", "organization", - "business", "app" ] } } }, - "organization-member-removed": { + "dependabot-alert-assignees-changed": { "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", + "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.", + "description": "The assignees for a Dependabot alert were updated.", + "operationId": "dependabot-alert/assignees-changed", "externalDocs": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#organization" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" }, "parameters": [ { @@ -93273,7 +95262,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "organization", + "example": "dependabot_alert", "schema": { "type": "string" } @@ -93316,7 +95305,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-organization-member-removed" + "$ref": "#/components/schemas/webhook-dependabot-alert-assignees-changed" } } } @@ -93329,22 +95318,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "organization", + "subcategory": "dependabot_alert", "supported-webhook-types": [ + "repository", "organization", - "business", "app" ] } } }, - "organization-renamed": { + "dependabot-alert-auto-dismissed": { "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", + "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.", + "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#organization" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" }, "parameters": [ { @@ -93366,7 +95355,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "organization", + "example": "dependabot_alert", "schema": { "type": "string" } @@ -93409,7 +95398,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-organization-renamed" + "$ref": "#/components/schemas/webhook-dependabot-alert-auto-dismissed" } } } @@ -93422,22 +95411,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "organization", + "subcategory": "dependabot_alert", "supported-webhook-types": [ + "repository", "organization", - "business", "app" ] } } }, - "package-published": { + "dependabot-alert-auto-reopened": { "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", + "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.", + "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#package" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" }, "parameters": [ { @@ -93459,7 +95448,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "package", + "example": "dependabot_alert", "schema": { "type": "string" } @@ -93502,7 +95491,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-package-published" + "$ref": "#/components/schemas/webhook-dependabot-alert-auto-reopened" } } } @@ -93515,21 +95504,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "package", + "subcategory": "dependabot_alert", "supported-webhook-types": [ "repository", - "organization" + "organization", + "app" ] } } }, - "package-updated": { + "dependabot-alert-created": { "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", + "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.", + "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#package" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" }, "parameters": [ { @@ -93551,7 +95541,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "package", + "example": "dependabot_alert", "schema": { "type": "string" } @@ -93594,7 +95584,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-package-updated" + "$ref": "#/components/schemas/webhook-dependabot-alert-created" } } } @@ -93607,20 +95597,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "package", + "subcategory": "dependabot_alert", "supported-webhook-types": [ "repository", - "organization" + "organization", + "app" ] } } }, - "page-build": { + "dependabot-alert-dismissed": { "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", + "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.", + "description": "A Dependabot alert was manually closed.", + "operationId": "dependabot-alert/dismissed", "externalDocs": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#page_build" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" }, "parameters": [ { @@ -93642,7 +95634,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "page_build", + "example": "dependabot_alert", "schema": { "type": "string" } @@ -93685,7 +95677,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-page-build" + "$ref": "#/components/schemas/webhook-dependabot-alert-dismissed" } } } @@ -93698,7 +95690,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "page_build", + "subcategory": "dependabot_alert", "supported-webhook-types": [ "repository", "organization", @@ -93707,13 +95699,13 @@ } } }, - "personal-access-token-request-approved": { + "dependabot-alert-fixed": { "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", + "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.", + "description": "A manifest file change removed a vulnerability.", + "operationId": "dependabot-alert/fixed", "externalDocs": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#personal_access_token_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" }, "parameters": [ { @@ -93725,9 +95717,9 @@ } }, { - "name": "X-GitHub-Delivery", + "name": "X-Github-Hook-Id", "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "example": 12312312, "schema": { "type": "string" } @@ -93735,15 +95727,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "personal_access_token_request", - "schema": { - "type": "string" - } - }, - { - "name": "X-Github-Hook-Id", - "in": "header", - "example": 12312312, + "example": "dependabot_alert", "schema": { "type": "string" } @@ -93759,59 +95743,7 @@ { "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", + "example": "repository", "schema": { "type": "string" } @@ -93824,38 +95756,6 @@ "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", @@ -93870,7 +95770,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-personal-access-token-request-cancelled" + "$ref": "#/components/schemas/webhook-dependabot-alert-fixed" } } } @@ -93883,21 +95783,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "personal_access_token_request", + "subcategory": "dependabot_alert", "supported-webhook-types": [ - "app", - "organization" + "repository", + "organization", + "app" ] } } }, - "personal-access-token-request-created": { + "dependabot-alert-reintroduced": { "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", + "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.", + "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#personal_access_token_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" }, "parameters": [ { @@ -93909,9 +95810,9 @@ } }, { - "name": "X-GitHub-Delivery", + "name": "X-Github-Hook-Id", "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "example": 12312312, "schema": { "type": "string" } @@ -93919,31 +95820,31 @@ { "name": "X-Github-Event", "in": "header", - "example": "personal_access_token_request", + "example": "dependabot_alert", "schema": { "type": "string" } }, { - "name": "X-Github-Hook-Id", + "name": "X-Github-Hook-Installation-Target-Id", "in": "header", - "example": 12312312, + "example": 123123, "schema": { "type": "string" } }, { - "name": "X-Github-Hook-Installation-Target-Id", + "name": "X-Github-Hook-Installation-Target-Type", "in": "header", - "example": 123123, + "example": "repository", "schema": { "type": "string" } }, { - "name": "X-Github-Hook-Installation-Target-Type", + "name": "X-GitHub-Delivery", "in": "header", - "example": "integration", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", "schema": { "type": "string" } @@ -93962,7 +95863,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-personal-access-token-request-created" + "$ref": "#/components/schemas/webhook-dependabot-alert-reintroduced" } } } @@ -93975,21 +95876,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "personal_access_token_request", + "subcategory": "dependabot_alert", "supported-webhook-types": [ - "app", - "organization" + "repository", + "organization", + "app" ] } } }, - "personal-access-token-request-denied": { + "dependabot-alert-reopened": { "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", + "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.", + "description": "A Dependabot alert was manually reopened.", + "operationId": "dependabot-alert/reopened", "externalDocs": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#personal_access_token_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#dependabot_alert" }, "parameters": [ { @@ -94001,9 +95903,9 @@ } }, { - "name": "X-GitHub-Delivery", + "name": "X-Github-Hook-Id", "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "example": 12312312, "schema": { "type": "string" } @@ -94011,31 +95913,31 @@ { "name": "X-Github-Event", "in": "header", - "example": "personal_access_token_request", + "example": "dependabot_alert", "schema": { "type": "string" } }, { - "name": "X-Github-Hook-Id", + "name": "X-Github-Hook-Installation-Target-Id", "in": "header", - "example": 12312312, + "example": 123123, "schema": { "type": "string" } }, { - "name": "X-Github-Hook-Installation-Target-Id", + "name": "X-Github-Hook-Installation-Target-Type", "in": "header", - "example": 123123, + "example": "repository", "schema": { "type": "string" } }, { - "name": "X-Github-Hook-Installation-Target-Type", + "name": "X-GitHub-Delivery", "in": "header", - "example": "integration", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", "schema": { "type": "string" } @@ -94054,7 +95956,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-personal-access-token-request-denied" + "$ref": "#/components/schemas/webhook-dependabot-alert-reopened" } } } @@ -94067,20 +95969,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "personal_access_token_request", + "subcategory": "dependabot_alert", "supported-webhook-types": [ - "app", - "organization" + "repository", + "organization", + "app" ] } } }, - "ping": { + "deploy-key-created": { "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", + "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#ping" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deploy_key" }, "parameters": [ { @@ -94102,7 +96006,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "ping", + "example": "deploy_key", "schema": { "type": "string" } @@ -94145,22 +96049,7 @@ "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" - } + "$ref": "#/components/schemas/webhook-deploy-key-created" } } } @@ -94172,26 +96061,23 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "ping", + "subcategory": "deploy_key", "supported-webhook-types": [ "repository", "organization", - "app", - "business", - "marketplace" + "app" ] } } }, - "project-card-converted": { + "deploy-key-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 note in a project (classic) was converted to an issue.", - "operationId": "project-card/converted", + "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#project_card" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deploy_key" }, "parameters": [ { @@ -94213,7 +96099,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project_card", + "example": "deploy_key", "schema": { "type": "string" } @@ -94256,7 +96142,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-project-card-converted" + "$ref": "#/components/schemas/webhook-deploy-key-deleted" } } } @@ -94269,7 +96155,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "project_card", + "subcategory": "deploy_key", "supported-webhook-types": [ "repository", "organization", @@ -94278,13 +96164,13 @@ } } }, - "project-card-created": { + "deployment-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", + "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#project_card" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deployment" }, "parameters": [ { @@ -94306,7 +96192,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project_card", + "example": "deployment", "schema": { "type": "string" } @@ -94349,7 +96235,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-project-card-created" + "$ref": "#/components/schemas/webhook-deployment-created" } } } @@ -94362,7 +96248,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "project_card", + "subcategory": "deployment", "supported-webhook-types": [ "repository", "organization", @@ -94371,13 +96257,13 @@ } } }, - "project-card-deleted": { + "deployment-protection-rule-requested": { "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", + "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#project_card" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deployment_protection_rule" }, "parameters": [ { @@ -94399,7 +96285,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project_card", + "example": "deployment_protection_rule", "schema": { "type": "string" } @@ -94442,7 +96328,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-project-card-deleted" + "$ref": "#/components/schemas/webhook-deployment-protection-rule-requested" } } } @@ -94455,22 +96341,20 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "project_card", + "subcategory": "deployment_protection_rule", "supported-webhook-types": [ - "repository", - "organization", "app" ] } } }, - "project-card-edited": { + "deployment-review-approved": { "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", + "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#project_card" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deployment_review" }, "parameters": [ { @@ -94492,7 +96376,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project_card", + "example": "deployment_review", "schema": { "type": "string" } @@ -94535,7 +96419,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-project-card-edited" + "$ref": "#/components/schemas/webhook-deployment-review-approved" } } } @@ -94548,22 +96432,20 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "project_card", + "subcategory": "deployment_review", "supported-webhook-types": [ - "repository", - "organization", "app" ] } } }, - "project-card-moved": { + "deployment-review-rejected": { "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", + "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#project_card" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deployment_review" }, "parameters": [ { @@ -94585,7 +96467,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project_card", + "example": "deployment_review", "schema": { "type": "string" } @@ -94628,7 +96510,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-project-card-moved" + "$ref": "#/components/schemas/webhook-deployment-review-rejected" } } } @@ -94641,22 +96523,20 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "project_card", + "subcategory": "deployment_review", "supported-webhook-types": [ - "repository", - "organization", "app" ] } } }, - "project-closed": { + "deployment-review-requested": { "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", + "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#project" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#deployment_review" }, "parameters": [ { @@ -94678,7 +96558,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project", + "example": "deployment_review", "schema": { "type": "string" } @@ -94721,7 +96601,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-project-closed" + "$ref": "#/components/schemas/webhook-deployment-review-requested" } } } @@ -94734,7 +96614,98 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "project", + "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": "deployment_status", + "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", @@ -94743,13 +96714,13 @@ } } }, - "project-column-created": { + "discussion-answered": { "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", + "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#project_column" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" }, "parameters": [ { @@ -94771,7 +96742,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project_column", + "example": "discussion", "schema": { "type": "string" } @@ -94814,7 +96785,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-project-column-created" + "$ref": "#/components/schemas/webhook-discussion-answered" } } } @@ -94827,7 +96798,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "project_column", + "subcategory": "discussion", "supported-webhook-types": [ "repository", "organization", @@ -94836,13 +96807,13 @@ } } }, - "project-column-deleted": { + "discussion-category-changed": { "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", + "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#project_column" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" }, "parameters": [ { @@ -94864,7 +96835,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project_column", + "example": "discussion", "schema": { "type": "string" } @@ -94907,7 +96878,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-project-column-deleted" + "$ref": "#/components/schemas/webhook-discussion-category-changed" } } } @@ -94920,7 +96891,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "project_column", + "subcategory": "discussion", "supported-webhook-types": [ "repository", "organization", @@ -94929,13 +96900,13 @@ } } }, - "project-column-edited": { + "discussion-closed": { "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", + "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#project_column" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" }, "parameters": [ { @@ -94957,7 +96928,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project_column", + "example": "discussions", "schema": { "type": "string" } @@ -95000,7 +96971,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-project-column-edited" + "$ref": "#/components/schemas/webhook-discussion-closed" } } } @@ -95013,7 +96984,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "project_column", + "subcategory": "discussion", "supported-webhook-types": [ "repository", "organization", @@ -95022,13 +96993,13 @@ } } }, - "project-column-moved": { + "discussion-comment-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 moved to a new position on a project (classic).", - "operationId": "project-column/moved", + "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#project_column" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion_comment" }, "parameters": [ { @@ -95050,7 +97021,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project_column", + "example": "discussion_comment", "schema": { "type": "string" } @@ -95093,7 +97064,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-project-column-moved" + "$ref": "#/components/schemas/webhook-discussion-comment-created" } } } @@ -95106,7 +97077,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "project_column", + "subcategory": "discussion_comment", "supported-webhook-types": [ "repository", "organization", @@ -95115,13 +97086,13 @@ } } }, - "project-created": { + "discussion-comment-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 created.", - "operationId": "project/created", + "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#project" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion_comment" }, "parameters": [ { @@ -95143,7 +97114,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project", + "example": "discussion_comment", "schema": { "type": "string" } @@ -95186,7 +97157,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-project-created" + "$ref": "#/components/schemas/webhook-discussion-comment-deleted" } } } @@ -95199,7 +97170,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "project", + "subcategory": "discussion_comment", "supported-webhook-types": [ "repository", "organization", @@ -95208,13 +97179,13 @@ } } }, - "project-deleted": { + "discussion-comment-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": "A project (classic) was deleted.", - "operationId": "project/deleted", + "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#project" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion_comment" }, "parameters": [ { @@ -95236,7 +97207,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project", + "example": "discussion_comment", "schema": { "type": "string" } @@ -95279,7 +97250,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-project-deleted" + "$ref": "#/components/schemas/webhook-discussion-comment-edited" } } } @@ -95292,7 +97263,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "project", + "subcategory": "discussion_comment", "supported-webhook-types": [ "repository", "organization", @@ -95301,13 +97272,13 @@ } } }, - "project-edited": { + "discussion-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": "The name or description of a project (classic) was changed.", - "operationId": "project/edited", + "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#project" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" }, "parameters": [ { @@ -95329,7 +97300,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project", + "example": "discussion", "schema": { "type": "string" } @@ -95372,7 +97343,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-project-edited" + "$ref": "#/components/schemas/webhook-discussion-created" } } } @@ -95385,7 +97356,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "project", + "subcategory": "discussion", "supported-webhook-types": [ "repository", "organization", @@ -95394,13 +97365,13 @@ } } }, - "project-reopened": { + "discussion-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 closed.", - "operationId": "project/reopened", + "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#project" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" }, "parameters": [ { @@ -95422,7 +97393,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project", + "example": "discussion", "schema": { "type": "string" } @@ -95465,7 +97436,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-project-reopened" + "$ref": "#/components/schemas/webhook-discussion-deleted" } } } @@ -95478,7 +97449,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "project", + "subcategory": "discussion", "supported-webhook-types": [ "repository", "organization", @@ -95487,13 +97458,13 @@ } } }, - "projects-v2-closed": { + "discussion-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": "A project in the organization was closed.", - "operationId": "projects-v2/closed", + "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#projects_v2" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" }, "parameters": [ { @@ -95515,7 +97486,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project-v2", + "example": "discussion", "schema": { "type": "string" } @@ -95558,7 +97529,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-projects-v2-project-closed" + "$ref": "#/components/schemas/webhook-discussion-edited" } } } @@ -95570,22 +97541,23 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "projects_v2", + "subcategory": "discussion", "supported-webhook-types": [ - "organization" + "repository", + "organization", + "app" ] } } }, - "projects-v2-created": { + "discussion-labeled": { "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", + "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#projects_v2" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" }, "parameters": [ { @@ -95607,7 +97579,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project-v2", + "example": "discussion", "schema": { "type": "string" } @@ -95650,7 +97622,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-projects-v2-project-created" + "$ref": "#/components/schemas/webhook-discussion-labeled" } } } @@ -95662,22 +97634,23 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "projects_v2", + "subcategory": "discussion", "supported-webhook-types": [ - "organization" + "repository", + "organization", + "app" ] } } }, - "projects-v2-deleted": { + "discussion-locked": { "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", + "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#projects_v2" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" }, "parameters": [ { @@ -95699,7 +97672,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project-v2", + "example": "discussion", "schema": { "type": "string" } @@ -95742,7 +97715,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-projects-v2-project-deleted" + "$ref": "#/components/schemas/webhook-discussion-locked" } } } @@ -95754,22 +97727,23 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "projects_v2", + "subcategory": "discussion", "supported-webhook-types": [ - "organization" + "repository", + "organization", + "app" ] } } }, - "projects-v2-edited": { + "discussion-pinned": { "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", + "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#projects_v2" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" }, "parameters": [ { @@ -95791,7 +97765,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project-v2", + "example": "discussion", "schema": { "type": "string" } @@ -95834,7 +97808,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-projects-v2-project-edited" + "$ref": "#/components/schemas/webhook-discussion-pinned" } } } @@ -95846,22 +97820,23 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "projects_v2", + "subcategory": "discussion", "supported-webhook-types": [ - "organization" + "repository", + "organization", + "app" ] } } }, - "projects-v2-item-archived": { + "discussion-reopened": { "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", + "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#projects_v2_item" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" }, "parameters": [ { @@ -95883,7 +97858,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project-v2-item", + "example": "discussions", "schema": { "type": "string" } @@ -95926,7 +97901,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-projects-v2-item-archived" + "$ref": "#/components/schemas/webhook-discussion-reopened" } } } @@ -95938,22 +97913,23 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "projects_v2_item", + "subcategory": "discussion", "supported-webhook-types": [ - "organization" + "repository", + "organization", + "app" ] } } }, - "projects-v2-item-converted": { + "discussion-transferred": { "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", + "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#projects_v2_item" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" }, "parameters": [ { @@ -95975,7 +97951,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project-v2-item", + "example": "discussion", "schema": { "type": "string" } @@ -96018,7 +97994,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-projects-v2-item-converted" + "$ref": "#/components/schemas/webhook-discussion-transferred" } } } @@ -96030,22 +98006,23 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "projects_v2_item", + "subcategory": "discussion", "supported-webhook-types": [ - "organization" + "repository", + "organization", + "app" ] } } }, - "projects-v2-item-created": { + "discussion-unanswered": { "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", + "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#projects_v2_item" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" }, "parameters": [ { @@ -96067,7 +98044,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project-v2-item", + "example": "discussion", "schema": { "type": "string" } @@ -96110,7 +98087,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-projects-v2-item-created" + "$ref": "#/components/schemas/webhook-discussion-unanswered" } } } @@ -96122,22 +98099,23 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "projects_v2_item", + "subcategory": "discussion", "supported-webhook-types": [ - "organization" + "repository", + "organization", + "app" ] } } }, - "projects-v2-item-deleted": { + "discussion-unlabeled": { "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", + "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#projects_v2_item" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" }, "parameters": [ { @@ -96159,7 +98137,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project-v2-item", + "example": "discussion", "schema": { "type": "string" } @@ -96202,7 +98180,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-projects-v2-item-deleted" + "$ref": "#/components/schemas/webhook-discussion-unlabeled" } } } @@ -96214,22 +98192,23 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "projects_v2_item", + "subcategory": "discussion", "supported-webhook-types": [ - "organization" + "repository", + "organization", + "app" ] } } }, - "projects-v2-item-edited": { + "discussion-unlocked": { "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", + "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#projects_v2_item" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" }, "parameters": [ { @@ -96251,7 +98230,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project-v2-item", + "example": "discussion", "schema": { "type": "string" } @@ -96294,7 +98273,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-projects-v2-item-edited" + "$ref": "#/components/schemas/webhook-discussion-unlocked" } } } @@ -96306,22 +98285,23 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "projects_v2_item", + "subcategory": "discussion", "supported-webhook-types": [ - "organization" + "repository", + "organization", + "app" ] } } }, - "projects-v2-item-reordered": { + "discussion-unpinned": { "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", + "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#projects_v2_item" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#discussion" }, "parameters": [ { @@ -96343,7 +98323,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project-v2-item", + "example": "discussion", "schema": { "type": "string" } @@ -96386,7 +98366,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-projects-v2-item-reordered" + "$ref": "#/components/schemas/webhook-discussion-unpinned" } } } @@ -96398,22 +98378,22 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "projects_v2_item", + "subcategory": "discussion", "supported-webhook-types": [ - "organization" + "repository", + "organization", + "app" ] } } }, - "projects-v2-item-restored": { + "fork": { "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", + "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#projects_v2_item" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#fork" }, "parameters": [ { @@ -96435,7 +98415,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project-v2-item", + "example": "fork", "schema": { "type": "string" } @@ -96478,7 +98458,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-projects-v2-item-restored" + "$ref": "#/components/schemas/webhook-fork" } } } @@ -96490,22 +98470,24 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "projects_v2_item", + "subcategory": "fork", "supported-webhook-types": [ - "organization" + "business", + "repository", + "organization", + "app" ] } } }, - "projects-v2-reopened": { + "github-app-authorization-revoked": { "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", + "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#projects_v2" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#github_app_authorization" }, "parameters": [ { @@ -96527,7 +98509,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project-v2", + "example": "github_app_authorization", "schema": { "type": "string" } @@ -96570,7 +98552,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-projects-v2-project-reopened" + "$ref": "#/components/schemas/webhook-github-app-authorization-revoked" } } } @@ -96582,22 +98564,20 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "projects_v2", + "subcategory": "github_app_authorization", "supported-webhook-types": [ - "organization" + "app" ] } } }, - "projects-v2-status-update-created": { + "gollum": { "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", + "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#projects_v2_status_update" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#gollum" }, "parameters": [ { @@ -96619,7 +98599,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project-v2-status-update", + "example": "gollum", "schema": { "type": "string" } @@ -96662,7 +98642,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-projects-v2-status-update-created" + "$ref": "#/components/schemas/webhook-gollum" } } } @@ -96674,22 +98654,23 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "projects_v2_status_update", + "subcategory": "gollum", "supported-webhook-types": [ - "organization" + "repository", + "organization", + "app" ] } } }, - "projects-v2-status-update-deleted": { + "installation-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 removed from a project in the organization.", - "operationId": "projects-v2-status-update/deleted", + "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#projects_v2_status_update" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation" }, "parameters": [ { @@ -96711,7 +98692,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project-v2-status-update", + "example": "installation", "schema": { "type": "string" } @@ -96754,7 +98735,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-projects-v2-status-update-deleted" + "$ref": "#/components/schemas/webhook-installation-created" } } } @@ -96766,22 +98747,21 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "projects_v2_status_update", + "subcategory": "installation", "supported-webhook-types": [ - "organization" + "app" ] } } }, - "projects-v2-status-update-edited": { + "installation-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 edited on a project in the organization.", - "operationId": "projects-v2-status-update/edited", + "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#projects_v2_status_update" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation" }, "parameters": [ { @@ -96803,7 +98783,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "project-v2-status-update", + "example": "installation", "schema": { "type": "string" } @@ -96846,7 +98826,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-projects-v2-status-update-edited" + "$ref": "#/components/schemas/webhook-installation-deleted" } } } @@ -96858,21 +98838,21 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "projects_v2_status_update", + "subcategory": "installation", "supported-webhook-types": [ - "organization" + "app" ] } } }, - "public": { + "installation-new-permissions-accepted": { "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", + "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#public" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation" }, "parameters": [ { @@ -96894,7 +98874,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "public", + "example": "installation", "schema": { "type": "string" } @@ -96937,7 +98917,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-public" + "$ref": "#/components/schemas/webhook-installation-new-permissions-accepted" } } } @@ -96950,22 +98930,20 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "public", + "subcategory": "installation", "supported-webhook-types": [ - "repository", - "organization", "app" ] } } }, - "pull-request-assigned": { + "installation-repositories-added": { "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", + "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#pull_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation_repositories" }, "parameters": [ { @@ -96987,7 +98965,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "installation_repositories", "schema": { "type": "string" } @@ -97030,7 +99008,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-assigned" + "$ref": "#/components/schemas/webhook-installation-repositories-added" } } } @@ -97043,22 +99021,20 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "installation_repositories", "supported-webhook-types": [ - "repository", - "organization", "app" ] } } }, - "pull-request-auto-merge-disabled": { + "installation-repositories-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": "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", + "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#pull_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation_repositories" }, "parameters": [ { @@ -97080,7 +99056,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "installation_repositories", "schema": { "type": "string" } @@ -97123,7 +99099,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-auto-merge-disabled" + "$ref": "#/components/schemas/webhook-installation-repositories-removed" } } } @@ -97136,22 +99112,20 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "installation_repositories", "supported-webhook-types": [ - "repository", - "organization", "app" ] } } }, - "pull-request-auto-merge-enabled": { + "installation-suspend": { "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", + "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#pull_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#installation" }, "parameters": [ { @@ -97173,7 +99147,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "installation", "schema": { "type": "string" } @@ -97216,7 +99190,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-auto-merge-enabled" + "$ref": "#/components/schemas/webhook-installation-suspend" } } } @@ -97229,22 +99203,111 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "installation", "supported-webhook-types": [ - "repository", - "organization", "app" ] } } }, - "pull-request-closed": { + "installation-target-renamed": { "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", + "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#pull_request" + "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": "installation_target", + "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": [ { @@ -97266,7 +99329,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "installation", "schema": { "type": "string" } @@ -97309,7 +99372,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-closed" + "$ref": "#/components/schemas/webhook-installation-unsuspend" } } } @@ -97322,22 +99385,20 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "installation", "supported-webhook-types": [ - "repository", - "organization", "app" ] } } }, - "pull-request-converted-to-draft": { + "issue-comment-created": { "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", + "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#pull_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue_comment" }, "parameters": [ { @@ -97359,7 +99420,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "issue_comment", "schema": { "type": "string" } @@ -97402,7 +99463,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-converted-to-draft" + "$ref": "#/components/schemas/webhook-issue-comment-created" } } } @@ -97415,7 +99476,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "issue_comment", "supported-webhook-types": [ "repository", "organization", @@ -97424,13 +99485,13 @@ } } }, - "pull-request-demilestoned": { + "issue-comment-deleted": { "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", + "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#pull_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue_comment" }, "parameters": [ { @@ -97452,7 +99513,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "issue_comment", "schema": { "type": "string" } @@ -97495,7 +99556,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-demilestoned" + "$ref": "#/components/schemas/webhook-issue-comment-deleted" } } } @@ -97508,7 +99569,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "issue_comment", "supported-webhook-types": [ "repository", "organization", @@ -97517,13 +99578,13 @@ } } }, - "pull-request-dequeued": { + "issue-comment-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": "A pull request was removed from the merge queue.", - "operationId": "pull-request/dequeued", + "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#pull_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue_comment" }, "parameters": [ { @@ -97545,7 +99606,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "issue_comment", "schema": { "type": "string" } @@ -97588,7 +99649,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-dequeued" + "$ref": "#/components/schemas/webhook-issue-comment-edited" } } } @@ -97601,7 +99662,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "issue_comment", "supported-webhook-types": [ "repository", "organization", @@ -97610,13 +99671,13 @@ } } }, - "pull-request-edited": { + "issue-comment-pinned": { "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", + "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#pull_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue_comment" }, "parameters": [ { @@ -97638,7 +99699,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "issue_comment", "schema": { "type": "string" } @@ -97681,7 +99742,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-edited" + "$ref": "#/components/schemas/webhook-issue-comment-pinned" } } } @@ -97694,7 +99755,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "issue_comment", "supported-webhook-types": [ "repository", "organization", @@ -97703,13 +99764,13 @@ } } }, - "pull-request-enqueued": { + "issue-comment-unpinned": { "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", + "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#pull_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue_comment" }, "parameters": [ { @@ -97731,7 +99792,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "issue_comment", "schema": { "type": "string" } @@ -97774,7 +99835,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-enqueued" + "$ref": "#/components/schemas/webhook-issue-comment-unpinned" } } } @@ -97787,7 +99848,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "issue_comment", "supported-webhook-types": [ "repository", "organization", @@ -97796,13 +99857,13 @@ } } }, - "pull-request-labeled": { + "issue-dependencies-blocked-by-added": { "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", + "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#pull_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue-dependencies" }, "parameters": [ { @@ -97824,7 +99885,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "issue_dependencies", "schema": { "type": "string" } @@ -97867,7 +99928,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-labeled" + "$ref": "#/components/schemas/webhook-issue-dependencies-blocked-by-added" } } } @@ -97880,7 +99941,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "issue-dependencies", "supported-webhook-types": [ "repository", "organization", @@ -97889,13 +99950,13 @@ } } }, - "pull-request-locked": { + "issue-dependencies-blocked-by-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": "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", + "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#pull_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue-dependencies" }, "parameters": [ { @@ -97917,7 +99978,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "issue_dependencies", "schema": { "type": "string" } @@ -97960,7 +100021,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-locked" + "$ref": "#/components/schemas/webhook-issue-dependencies-blocked-by-removed" } } } @@ -97973,7 +100034,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "issue-dependencies", "supported-webhook-types": [ "repository", "organization", @@ -97982,13 +100043,13 @@ } } }, - "pull-request-milestoned": { + "issue-dependencies-blocking-added": { "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", + "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#pull_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue-dependencies" }, "parameters": [ { @@ -98010,7 +100071,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "issue_dependencies", "schema": { "type": "string" } @@ -98053,7 +100114,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-milestoned" + "$ref": "#/components/schemas/webhook-issue-dependencies-blocking-added" } } } @@ -98066,7 +100127,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "issue-dependencies", "supported-webhook-types": [ "repository", "organization", @@ -98075,13 +100136,13 @@ } } }, - "pull-request-opened": { + "issue-dependencies-blocking-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 pull request was created", - "operationId": "pull-request/opened", + "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#pull_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issue-dependencies" }, "parameters": [ { @@ -98103,7 +100164,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "issue_dependencies", "schema": { "type": "string" } @@ -98146,7 +100207,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-opened" + "$ref": "#/components/schemas/webhook-issue-dependencies-blocking-removed" } } } @@ -98159,7 +100220,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "issue-dependencies", "supported-webhook-types": [ "repository", "organization", @@ -98168,13 +100229,13 @@ } } }, - "pull-request-ready-for-review": { + "issues-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 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", + "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#pull_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" }, "parameters": [ { @@ -98196,7 +100257,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "issues", "schema": { "type": "string" } @@ -98239,7 +100300,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-ready-for-review" + "$ref": "#/components/schemas/webhook-issues-assigned" } } } @@ -98252,7 +100313,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "issues", "supported-webhook-types": [ "repository", "organization", @@ -98261,13 +100322,13 @@ } } }, - "pull-request-reopened": { + "issues-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 previously closed pull request was reopened.", - "operationId": "pull-request/reopened", + "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#pull_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" }, "parameters": [ { @@ -98289,7 +100350,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "issues", "schema": { "type": "string" } @@ -98332,7 +100393,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-reopened" + "$ref": "#/components/schemas/webhook-issues-closed" } } } @@ -98345,7 +100406,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "issues", "supported-webhook-types": [ "repository", "organization", @@ -98354,13 +100415,13 @@ } } }, - "pull-request-review-comment-created": { + "issues-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 created.", - "operationId": "pull-request-review-comment/created", + "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#pull_request_review_comment" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" }, "parameters": [ { @@ -98382,7 +100443,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request_review_comment", + "example": "issues", "schema": { "type": "string" } @@ -98425,7 +100486,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-review-comment-created" + "$ref": "#/components/schemas/webhook-issues-deleted" } } } @@ -98438,7 +100499,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request_review_comment", + "subcategory": "issues", "supported-webhook-types": [ "repository", "organization", @@ -98447,13 +100508,13 @@ } } }, - "pull-request-review-comment-deleted": { + "issues-demilestoned": { "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", + "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#pull_request_review_comment" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" }, "parameters": [ { @@ -98475,7 +100536,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request_review_comment", + "example": "issues", "schema": { "type": "string" } @@ -98518,7 +100579,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-review-comment-deleted" + "$ref": "#/components/schemas/webhook-issues-demilestoned" } } } @@ -98531,7 +100592,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request_review_comment", + "subcategory": "issues", "supported-webhook-types": [ "repository", "organization", @@ -98540,13 +100601,13 @@ } } }, - "pull-request-review-comment-edited": { + "issues-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", + "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#pull_request_review_comment" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" }, "parameters": [ { @@ -98568,7 +100629,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request_review_comment", + "example": "issues", "schema": { "type": "string" } @@ -98611,7 +100672,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-review-comment-edited" + "$ref": "#/components/schemas/webhook-issues-edited" } } } @@ -98624,7 +100685,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request_review_comment", + "subcategory": "issues", "supported-webhook-types": [ "repository", "organization", @@ -98633,13 +100694,13 @@ } } }, - "pull-request-review-dismissed": { + "issues-field-added": { "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", + "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 field value was set or updated on an issue.", + "operationId": "issues/field-added", "externalDocs": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request_review" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" }, "parameters": [ { @@ -98661,7 +100722,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request_review", + "example": "issues", "schema": { "type": "string" } @@ -98704,7 +100765,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-review-dismissed" + "$ref": "#/components/schemas/webhook-issues-field-added" } } } @@ -98717,7 +100778,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request_review", + "subcategory": "issues", "supported-webhook-types": [ "repository", "organization", @@ -98726,13 +100787,13 @@ } } }, - "pull-request-review-edited": { + "issues-field-removed": { "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", + "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 field value was cleared from an issue.", + "operationId": "issues/field-removed", "externalDocs": { - "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request_review" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" }, "parameters": [ { @@ -98754,7 +100815,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request_review", + "example": "issues", "schema": { "type": "string" } @@ -98797,7 +100858,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-review-edited" + "$ref": "#/components/schemas/webhook-issues-field-removed" } } } @@ -98810,7 +100871,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request_review", + "subcategory": "issues", "supported-webhook-types": [ "repository", "organization", @@ -98819,13 +100880,13 @@ } } }, - "pull-request-review-request-removed": { + "issues-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 request for review by a person or team was removed from a pull request.", - "operationId": "pull-request/review-request-removed", + "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#pull_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" }, "parameters": [ { @@ -98847,7 +100908,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "issues", "schema": { "type": "string" } @@ -98890,7 +100951,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-review-request-removed" + "$ref": "#/components/schemas/webhook-issues-labeled" } } } @@ -98903,7 +100964,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "issues", "supported-webhook-types": [ "repository", "organization", @@ -98912,13 +100973,13 @@ } } }, - "pull-request-review-requested": { + "issues-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": "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", + "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#pull_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" }, "parameters": [ { @@ -98940,7 +101001,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "issues", "schema": { "type": "string" } @@ -98983,7 +101044,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-review-requested" + "$ref": "#/components/schemas/webhook-issues-locked" } } } @@ -98996,7 +101057,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "issues", "supported-webhook-types": [ "repository", "organization", @@ -99005,13 +101066,13 @@ } } }, - "pull-request-review-submitted": { + "issues-milestoned": { "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", + "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#pull_request_review" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" }, "parameters": [ { @@ -99033,7 +101094,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request_review", + "example": "issues", "schema": { "type": "string" } @@ -99076,7 +101137,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-review-submitted" + "$ref": "#/components/schemas/webhook-issues-milestoned" } } } @@ -99089,7 +101150,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request_review", + "subcategory": "issues", "supported-webhook-types": [ "repository", "organization", @@ -99098,13 +101159,13 @@ } } }, - "pull-request-review-thread-resolved": { + "issues-opened": { "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", + "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#pull_request_review_thread" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" }, "parameters": [ { @@ -99126,7 +101187,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request_review_thread", + "example": "issues", "schema": { "type": "string" } @@ -99169,7 +101230,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-review-thread-resolved" + "$ref": "#/components/schemas/webhook-issues-opened" } } } @@ -99182,7 +101243,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request_review_thread", + "subcategory": "issues", "supported-webhook-types": [ "repository", "organization", @@ -99191,13 +101252,13 @@ } } }, - "pull-request-review-thread-unresolved": { + "issues-pinned": { "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", + "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#pull_request_review_thread" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" }, "parameters": [ { @@ -99219,7 +101280,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request_review_thread", + "example": "issues", "schema": { "type": "string" } @@ -99262,7 +101323,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-review-thread-unresolved" + "$ref": "#/components/schemas/webhook-issues-pinned" } } } @@ -99275,7 +101336,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request_review_thread", + "subcategory": "issues", "supported-webhook-types": [ "repository", "organization", @@ -99284,13 +101345,13 @@ } } }, - "pull-request-synchronize": { + "issues-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 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", + "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#pull_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" }, "parameters": [ { @@ -99312,7 +101373,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "issues", "schema": { "type": "string" } @@ -99355,7 +101416,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-synchronize" + "$ref": "#/components/schemas/webhook-issues-reopened" } } } @@ -99368,7 +101429,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "issues", "supported-webhook-types": [ "repository", "organization", @@ -99377,13 +101438,13 @@ } } }, - "pull-request-unassigned": { + "issues-transferred": { "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", + "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#pull_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" }, "parameters": [ { @@ -99405,7 +101466,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "issues", "schema": { "type": "string" } @@ -99448,7 +101509,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-unassigned" + "$ref": "#/components/schemas/webhook-issues-transferred" } } } @@ -99461,7 +101522,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "issues", "supported-webhook-types": [ "repository", "organization", @@ -99470,13 +101531,13 @@ } } }, - "pull-request-unlabeled": { + "issues-typed": { "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", + "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#pull_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" }, "parameters": [ { @@ -99498,7 +101559,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "issues", "schema": { "type": "string" } @@ -99541,7 +101602,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-unlabeled" + "$ref": "#/components/schemas/webhook-issues-typed" } } } @@ -99554,7 +101615,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "issues", "supported-webhook-types": [ "repository", "organization", @@ -99563,13 +101624,13 @@ } } }, - "pull-request-unlocked": { + "issues-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": "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", + "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#pull_request" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" }, "parameters": [ { @@ -99591,7 +101652,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "pull_request", + "example": "issues", "schema": { "type": "string" } @@ -99634,7 +101695,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-pull-request-unlocked" + "$ref": "#/components/schemas/webhook-issues-unassigned" } } } @@ -99647,7 +101708,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "pull_request", + "subcategory": "issues", "supported-webhook-types": [ "repository", "organization", @@ -99656,12 +101717,13 @@ } } }, - "push": { + "issues-unlabeled": { "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", + "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#push" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" }, "parameters": [ { @@ -99683,7 +101745,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "push", + "example": "issues", "schema": { "type": "string" } @@ -99726,7 +101788,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-push" + "$ref": "#/components/schemas/webhook-issues-unlabeled" } } } @@ -99739,7 +101801,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "push", + "subcategory": "issues", "supported-webhook-types": [ "repository", "organization", @@ -99748,13 +101810,13 @@ } } }, - "registry-package-published": { + "issues-unlocked": { "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", + "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#registry_package" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" }, "parameters": [ { @@ -99776,7 +101838,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "registry_package", + "example": "issues", "schema": { "type": "string" } @@ -99819,7 +101881,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-registry-package-published" + "$ref": "#/components/schemas/webhook-issues-unlocked" } } } @@ -99832,7 +101894,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "registry_package", + "subcategory": "issues", "supported-webhook-types": [ "repository", "organization", @@ -99841,13 +101903,13 @@ } } }, - "registry-package-updated": { + "issues-unpinned": { "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", + "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#registry_package" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" }, "parameters": [ { @@ -99869,7 +101931,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "registry_package", + "example": "issues", "schema": { "type": "string" } @@ -99912,7 +101974,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-registry-package-updated" + "$ref": "#/components/schemas/webhook-issues-unpinned" } } } @@ -99925,7 +101987,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "registry_package", + "subcategory": "issues", "supported-webhook-types": [ "repository", "organization", @@ -99934,13 +101996,13 @@ } } }, - "release-created": { + "issues-untyped": { "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", + "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#release" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#issues" }, "parameters": [ { @@ -99962,7 +102024,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "release", + "example": "issues", "schema": { "type": "string" } @@ -100005,7 +102067,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-release-created" + "$ref": "#/components/schemas/webhook-issues-untyped" } } } @@ -100018,7 +102080,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "release", + "subcategory": "issues", "supported-webhook-types": [ "repository", "organization", @@ -100027,13 +102089,13 @@ } } }, - "release-deleted": { + "label-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 release, pre-release, or draft release was deleted.", - "operationId": "release/deleted", + "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#release" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#label" }, "parameters": [ { @@ -100055,7 +102117,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "release", + "example": "label", "schema": { "type": "string" } @@ -100098,7 +102160,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-release-deleted" + "$ref": "#/components/schemas/webhook-label-created" } } } @@ -100111,7 +102173,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "release", + "subcategory": "label", "supported-webhook-types": [ "repository", "organization", @@ -100120,13 +102182,13 @@ } } }, - "release-edited": { + "label-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": "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", + "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#release" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#label" }, "parameters": [ { @@ -100148,7 +102210,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "release", + "example": "label", "schema": { "type": "string" } @@ -100191,7 +102253,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-release-edited" + "$ref": "#/components/schemas/webhook-label-deleted" } } } @@ -100204,7 +102266,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "release", + "subcategory": "label", "supported-webhook-types": [ "repository", "organization", @@ -100213,13 +102275,13 @@ } } }, - "release-prereleased": { + "label-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": "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", + "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#release" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#label" }, "parameters": [ { @@ -100241,7 +102303,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "release", + "example": "label", "schema": { "type": "string" } @@ -100284,7 +102346,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-release-prereleased" + "$ref": "#/components/schemas/webhook-label-edited" } } } @@ -100297,7 +102359,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "release", + "subcategory": "label", "supported-webhook-types": [ "repository", "organization", @@ -100306,13 +102368,13 @@ } } }, - "release-published": { + "marketplace-purchase-cancelled": { "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", + "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#release" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#marketplace_purchase" }, "parameters": [ { @@ -100334,7 +102396,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "release", + "example": "marketplace_purchase", "schema": { "type": "string" } @@ -100377,7 +102439,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-release-published" + "$ref": "#/components/schemas/webhook-marketplace-purchase-cancelled" } } } @@ -100390,22 +102452,20 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "release", + "subcategory": "marketplace_purchase", "supported-webhook-types": [ - "repository", - "organization", - "app" + "marketplace" ] } } }, - "release-released": { + "marketplace-purchase-changed": { "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", + "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#release" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#marketplace_purchase" }, "parameters": [ { @@ -100427,7 +102487,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "release", + "example": "marketplace_purchase", "schema": { "type": "string" } @@ -100470,7 +102530,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-release-released" + "$ref": "#/components/schemas/webhook-marketplace-purchase-changed" } } } @@ -100483,22 +102543,20 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "release", + "subcategory": "marketplace_purchase", "supported-webhook-types": [ - "repository", - "organization", - "app" + "marketplace" ] } } }, - "release-unpublished": { + "marketplace-purchase-pending-change": { "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", + "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#release" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#marketplace_purchase" }, "parameters": [ { @@ -100520,7 +102578,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "release", + "example": "marketplace_purchase", "schema": { "type": "string" } @@ -100563,7 +102621,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-release-unpublished" + "$ref": "#/components/schemas/webhook-marketplace-purchase-pending-change" } } } @@ -100576,22 +102634,20 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "release", + "subcategory": "marketplace_purchase", "supported-webhook-types": [ - "repository", - "organization", - "app" + "marketplace" ] } } }, - "repository-advisory-published": { + "marketplace-purchase-pending-change-cancelled": { "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", + "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#repository_advisory" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#marketplace_purchase" }, "parameters": [ { @@ -100613,7 +102669,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "repository_advisory", + "example": "marketplace_purchase", "schema": { "type": "string" } @@ -100656,7 +102712,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-repository-advisory-published" + "$ref": "#/components/schemas/webhook-marketplace-purchase-pending-change-cancelled" } } } @@ -100669,22 +102725,20 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "repository_advisory", + "subcategory": "marketplace_purchase", "supported-webhook-types": [ - "repository", - "organization", - "app" + "marketplace" ] } } }, - "repository-advisory-reported": { + "marketplace-purchase-purchased": { "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", + "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#repository_advisory" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#marketplace_purchase" }, "parameters": [ { @@ -100706,7 +102760,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "repository_advisory", + "example": "marketplace_purchase", "schema": { "type": "string" } @@ -100749,7 +102803,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-repository-advisory-reported" + "$ref": "#/components/schemas/webhook-marketplace-purchase-purchased" } } } @@ -100762,8 +102816,100 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "repository_advisory", + "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": "member", + "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" @@ -100771,13 +102917,13 @@ } } }, - "repository-archived": { + "member-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": "A repository was archived.", - "operationId": "repository/archived", + "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#repository" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#member" }, "parameters": [ { @@ -100799,7 +102945,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "repository", + "example": "member", "schema": { "type": "string" } @@ -100842,7 +102988,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-repository-archived" + "$ref": "#/components/schemas/webhook-member-edited" } } } @@ -100855,7 +103001,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "repository", + "subcategory": "member", "supported-webhook-types": [ "business", "repository", @@ -100865,13 +103011,13 @@ } } }, - "repository-created": { + "member-removed": { "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", + "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#repository" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#member" }, "parameters": [ { @@ -100893,7 +103039,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "repository", + "example": "member", "schema": { "type": "string" } @@ -100936,7 +103082,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-repository-created" + "$ref": "#/components/schemas/webhook-member-removed" } } } @@ -100949,7 +103095,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "repository", + "subcategory": "member", "supported-webhook-types": [ "business", "repository", @@ -100959,13 +103105,13 @@ } } }, - "repository-deleted": { + "membership-added": { "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", + "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#repository" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#membership" }, "parameters": [ { @@ -100987,7 +103133,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "repository", + "example": "membership", "schema": { "type": "string" } @@ -101030,7 +103176,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-repository-deleted" + "$ref": "#/components/schemas/webhook-membership-added" } } } @@ -101043,22 +103189,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "repository", + "subcategory": "membership", "supported-webhook-types": [ - "business", - "repository", "organization", + "business", "app" ] } } }, - "repository-dispatch-sample.collected": { + "membership-removed": { "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", + "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#repository_dispatch" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#membership" }, "parameters": [ { @@ -101080,7 +103226,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "repository_dispatch", + "example": "membership", "schema": { "type": "string" } @@ -101123,7 +103269,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-repository-dispatch-sample" + "$ref": "#/components/schemas/webhook-membership-removed" } } } @@ -101136,20 +103282,25 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "repository_dispatch", + "subcategory": "membership", "supported-webhook-types": [ + "organization", + "business", "app" ] } } }, - "repository-edited": { + "merge-group-checks-requested": { "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", + "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#repository" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#merge_group" }, "parameters": [ { @@ -101171,7 +103322,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "repository", + "example": "merge_group", "schema": { "type": "string" } @@ -101214,7 +103365,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-repository-edited" + "$ref": "#/components/schemas/webhook-merge-group-checks-requested" } } } @@ -101227,22 +103378,23 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "repository", + "subcategory": "merge_group", "supported-webhook-types": [ - "business", - "repository", - "organization", "app" ] } } }, - "repository-import": { + "merge-group-destroyed": { "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", + "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#repository_import" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#merge_group" }, "parameters": [ { @@ -101264,7 +103416,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "repository_import", + "example": "merge_group", "schema": { "type": "string" } @@ -101307,7 +103459,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-repository-import" + "$ref": "#/components/schemas/webhook-merge-group-destroyed" } } } @@ -101320,21 +103472,20 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "repository_import", + "subcategory": "merge_group", "supported-webhook-types": [ - "repository", - "organization" + "app" ] } } }, - "repository-privatized": { + "meta-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": "The visibility of a repository was changed to `private`.", - "operationId": "repository/privatized", + "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#repository" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#meta" }, "parameters": [ { @@ -101356,7 +103507,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "repository", + "example": "meta", "schema": { "type": "string" } @@ -101399,7 +103550,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-repository-privatized" + "$ref": "#/components/schemas/webhook-meta-deleted" } } } @@ -101412,8 +103563,9 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "repository", + "subcategory": "meta", "supported-webhook-types": [ + "marketplace", "business", "repository", "organization", @@ -101422,13 +103574,13 @@ } } }, - "repository-publicized": { + "milestone-closed": { "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", + "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#repository" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#milestone" }, "parameters": [ { @@ -101450,7 +103602,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "repository", + "example": "milestone", "schema": { "type": "string" } @@ -101493,7 +103645,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-repository-publicized" + "$ref": "#/components/schemas/webhook-milestone-closed" } } } @@ -101506,9 +103658,8 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "repository", + "subcategory": "milestone", "supported-webhook-types": [ - "business", "repository", "organization", "app" @@ -101516,13 +103667,13 @@ } } }, - "repository-renamed": { + "milestone-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": "The name of a repository was changed.", - "operationId": "repository/renamed", + "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#repository" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#milestone" }, "parameters": [ { @@ -101544,7 +103695,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "repository", + "example": "milestone", "schema": { "type": "string" } @@ -101587,7 +103738,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-repository-renamed" + "$ref": "#/components/schemas/webhook-milestone-created" } } } @@ -101600,9 +103751,8 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "repository", + "subcategory": "milestone", "supported-webhook-types": [ - "business", "repository", "organization", "app" @@ -101610,13 +103760,13 @@ } } }, - "repository-ruleset-created": { + "milestone-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 created.", - "operationId": "repository-ruleset/created", + "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#repository_ruleset" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#milestone" }, "parameters": [ { @@ -101638,7 +103788,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "repository_ruleset", + "example": "milestone", "schema": { "type": "string" } @@ -101681,7 +103831,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-repository-ruleset-created" + "$ref": "#/components/schemas/webhook-milestone-deleted" } } } @@ -101694,7 +103844,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "repository_ruleset", + "subcategory": "milestone", "supported-webhook-types": [ "repository", "organization", @@ -101703,13 +103853,13 @@ } } }, - "repository-ruleset-deleted": { + "milestone-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 deleted.", - "operationId": "repository-ruleset/deleted", + "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#repository_ruleset" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#milestone" }, "parameters": [ { @@ -101731,7 +103881,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "repository_ruleset", + "example": "milestone", "schema": { "type": "string" } @@ -101774,7 +103924,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-repository-ruleset-deleted" + "$ref": "#/components/schemas/webhook-milestone-edited" } } } @@ -101787,7 +103937,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "repository_ruleset", + "subcategory": "milestone", "supported-webhook-types": [ "repository", "organization", @@ -101796,13 +103946,13 @@ } } }, - "repository-ruleset-edited": { + "milestone-opened": { "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", + "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#repository_ruleset" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#milestone" }, "parameters": [ { @@ -101824,7 +103974,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "repository_ruleset", + "example": "milestone", "schema": { "type": "string" } @@ -101867,7 +104017,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-repository-ruleset-edited" + "$ref": "#/components/schemas/webhook-milestone-opened" } } } @@ -101880,7 +104030,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "repository_ruleset", + "subcategory": "milestone", "supported-webhook-types": [ "repository", "organization", @@ -101889,13 +104039,13 @@ } } }, - "repository-transferred": { + "org-block-blocked": { "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", + "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#repository" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#org_block" }, "parameters": [ { @@ -101917,7 +104067,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "repository", + "example": "org_block", "schema": { "type": "string" } @@ -101960,7 +104110,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-repository-transferred" + "$ref": "#/components/schemas/webhook-org-block-blocked" } } } @@ -101973,23 +104123,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "repository", + "subcategory": "org_block", "supported-webhook-types": [ - "business", - "repository", "organization", + "business", "app" ] } } }, - "repository-unarchived": { + "org-block-unblocked": { "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", + "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#repository" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#org_block" }, "parameters": [ { @@ -102011,7 +104160,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "repository", + "example": "org_block", "schema": { "type": "string" } @@ -102054,7 +104203,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-repository-unarchived" + "$ref": "#/components/schemas/webhook-org-block-unblocked" } } } @@ -102067,23 +104216,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "repository", + "subcategory": "org_block", "supported-webhook-types": [ - "business", - "repository", "organization", + "business", "app" ] } } }, - "repository-vulnerability-alert-create": { + "organization-deleted": { "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", + "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#repository_vulnerability_alert" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#organization" }, "parameters": [ { @@ -102105,7 +104253,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "repository_vulnerability_alert", + "example": "organization", "schema": { "type": "string" } @@ -102148,7 +104296,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-repository-vulnerability-alert-create" + "$ref": "#/components/schemas/webhook-organization-deleted" } } } @@ -102161,21 +104309,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "repository_vulnerability_alert", + "subcategory": "organization", "supported-webhook-types": [ - "repository", - "organization" + "organization", + "business", + "app" ] } } }, - "repository-vulnerability-alert-dismiss": { + "organization-member-added": { "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", + "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#repository_vulnerability_alert" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#organization" }, "parameters": [ { @@ -102197,7 +104346,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "repository_vulnerability_alert", + "example": "organization", "schema": { "type": "string" } @@ -102240,7 +104389,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-repository-vulnerability-alert-dismiss" + "$ref": "#/components/schemas/webhook-organization-member-added" } } } @@ -102253,21 +104402,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "repository_vulnerability_alert", + "subcategory": "organization", "supported-webhook-types": [ - "repository", - "organization" + "organization", + "business", + "app" ] } } }, - "repository-vulnerability-alert-reopen": { + "organization-member-invited": { "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", + "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#repository_vulnerability_alert" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#organization" }, "parameters": [ { @@ -102289,7 +104439,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "repository_vulnerability_alert", + "example": "organization", "schema": { "type": "string" } @@ -102332,7 +104482,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-repository-vulnerability-alert-reopen" + "$ref": "#/components/schemas/webhook-organization-member-invited" } } } @@ -102345,21 +104495,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "repository_vulnerability_alert", + "subcategory": "organization", "supported-webhook-types": [ - "repository", - "organization" + "organization", + "business", + "app" ] } } }, - "repository-vulnerability-alert-resolve": { + "organization-member-removed": { "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", + "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#repository_vulnerability_alert" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#organization" }, "parameters": [ { @@ -102381,7 +104532,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "repository_vulnerability_alert", + "example": "organization", "schema": { "type": "string" } @@ -102424,7 +104575,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-repository-vulnerability-alert-resolve" + "$ref": "#/components/schemas/webhook-organization-member-removed" } } } @@ -102437,21 +104588,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "repository_vulnerability_alert", + "subcategory": "organization", "supported-webhook-types": [ - "repository", - "organization" + "organization", + "business", + "app" ] } } }, - "secret-scanning-alert-assigned": { + "organization-renamed": { "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", + "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#secret_scanning_alert" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#organization" }, "parameters": [ { @@ -102473,7 +104625,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "secret_scanning_alert", + "example": "organization", "schema": { "type": "string" } @@ -102516,7 +104668,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-secret-scanning-alert-assigned" + "$ref": "#/components/schemas/webhook-organization-renamed" } } } @@ -102529,22 +104681,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "secret_scanning_alert", + "subcategory": "organization", "supported-webhook-types": [ - "repository", "organization", + "business", "app" ] } } }, - "secret-scanning-alert-created": { + "package-published": { "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", + "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#secret_scanning_alert" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#package" }, "parameters": [ { @@ -102566,7 +104718,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "secret_scanning_alert", + "example": "package", "schema": { "type": "string" } @@ -102609,7 +104761,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-secret-scanning-alert-created" + "$ref": "#/components/schemas/webhook-package-published" } } } @@ -102622,22 +104774,21 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "secret_scanning_alert", + "subcategory": "package", "supported-webhook-types": [ "repository", - "organization", - "app" + "organization" ] } } }, - "secret-scanning-alert-location-created": { + "package-updated": { "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", + "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#secret_scanning_alert_location" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#package" }, "parameters": [ { @@ -102659,7 +104810,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "secret_scanning_alert_location", + "example": "package", "schema": { "type": "string" } @@ -102702,22 +104853,7 @@ "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" - } + "$ref": "#/components/schemas/webhook-package-updated" } } } @@ -102729,24 +104865,21 @@ }, "x-github": { "githubCloudOnly": false, - "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "secret_scanning_alert_location", + "subcategory": "package", "supported-webhook-types": [ "repository", - "organization", - "app" + "organization" ] } } }, - "secret-scanning-alert-publicly-leaked": { + "page-build": { "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", + "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#secret_scanning_alert" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#page_build" }, "parameters": [ { @@ -102768,7 +104901,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "secret_scanning_alert", + "example": "page_build", "schema": { "type": "string" } @@ -102811,7 +104944,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-secret-scanning-alert-publicly-leaked" + "$ref": "#/components/schemas/webhook-page-build" } } } @@ -102824,7 +104957,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "secret_scanning_alert", + "subcategory": "page_build", "supported-webhook-types": [ "repository", "organization", @@ -102833,13 +104966,13 @@ } } }, - "secret-scanning-alert-reopened": { + "personal-access-token-request-approved": { "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", + "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#secret_scanning_alert" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#personal_access_token_request" }, "parameters": [ { @@ -102851,9 +104984,9 @@ } }, { - "name": "X-Github-Hook-Id", + "name": "X-GitHub-Delivery", "in": "header", - "example": 12312312, + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", "schema": { "type": "string" } @@ -102861,31 +104994,31 @@ { "name": "X-Github-Event", "in": "header", - "example": "secret_scanning_alert", + "example": "personal_access_token_request", "schema": { "type": "string" } }, { - "name": "X-Github-Hook-Installation-Target-Id", + "name": "X-Github-Hook-Id", "in": "header", - "example": 123123, + "example": 12312312, "schema": { "type": "string" } }, { - "name": "X-Github-Hook-Installation-Target-Type", + "name": "X-Github-Hook-Installation-Target-Id", "in": "header", - "example": "repository", + "example": 123123, "schema": { "type": "string" } }, { - "name": "X-GitHub-Delivery", + "name": "X-Github-Hook-Installation-Target-Type", "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "example": "integration", "schema": { "type": "string" } @@ -102904,7 +105037,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-secret-scanning-alert-reopened" + "$ref": "#/components/schemas/webhook-personal-access-token-request-approved" } } } @@ -102917,22 +105050,21 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "secret_scanning_alert", + "subcategory": "personal_access_token_request", "supported-webhook-types": [ - "repository", - "organization", - "app" + "app", + "organization" ] } } }, - "secret-scanning-alert-resolved": { + "personal-access-token-request-cancelled": { "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", + "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#secret_scanning_alert" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#personal_access_token_request" }, "parameters": [ { @@ -102944,9 +105076,9 @@ } }, { - "name": "X-Github-Hook-Id", + "name": "X-GitHub-Delivery", "in": "header", - "example": 12312312, + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", "schema": { "type": "string" } @@ -102954,31 +105086,31 @@ { "name": "X-Github-Event", "in": "header", - "example": "secret_scanning_alert", + "example": "personal_access_token_request", "schema": { "type": "string" } }, { - "name": "X-Github-Hook-Installation-Target-Id", + "name": "X-Github-Hook-Id", "in": "header", - "example": 123123, + "example": 12312312, "schema": { "type": "string" } }, { - "name": "X-Github-Hook-Installation-Target-Type", + "name": "X-Github-Hook-Installation-Target-Id", "in": "header", - "example": "repository", + "example": 123123, "schema": { "type": "string" } }, { - "name": "X-GitHub-Delivery", + "name": "X-Github-Hook-Installation-Target-Type", "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "example": "integration", "schema": { "type": "string" } @@ -102997,7 +105129,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-secret-scanning-alert-resolved" + "$ref": "#/components/schemas/webhook-personal-access-token-request-cancelled" } } } @@ -103010,22 +105142,21 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "secret_scanning_alert", + "subcategory": "personal_access_token_request", "supported-webhook-types": [ - "repository", - "organization", - "app" + "app", + "organization" ] } } }, - "secret-scanning-alert-unassigned": { + "personal-access-token-request-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 unassigned.", - "operationId": "secret-scanning-alert/unassigned", + "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#secret_scanning_alert" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#personal_access_token_request" }, "parameters": [ { @@ -103037,9 +105168,9 @@ } }, { - "name": "X-Github-Hook-Id", + "name": "X-GitHub-Delivery", "in": "header", - "example": 12312312, + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", "schema": { "type": "string" } @@ -103047,31 +105178,31 @@ { "name": "X-Github-Event", "in": "header", - "example": "secret_scanning_alert", + "example": "personal_access_token_request", "schema": { "type": "string" } }, { - "name": "X-Github-Hook-Installation-Target-Id", + "name": "X-Github-Hook-Id", "in": "header", - "example": 123123, + "example": 12312312, "schema": { "type": "string" } }, { - "name": "X-Github-Hook-Installation-Target-Type", + "name": "X-Github-Hook-Installation-Target-Id", "in": "header", - "example": "repository", + "example": 123123, "schema": { "type": "string" } }, { - "name": "X-GitHub-Delivery", + "name": "X-Github-Hook-Installation-Target-Type", "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "example": "integration", "schema": { "type": "string" } @@ -103090,7 +105221,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-secret-scanning-alert-unassigned" + "$ref": "#/components/schemas/webhook-personal-access-token-request-created" } } } @@ -103103,22 +105234,21 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "secret_scanning_alert", + "subcategory": "personal_access_token_request", "supported-webhook-types": [ - "repository", - "organization", - "app" + "app", + "organization" ] } } }, - "secret-scanning-alert-validated": { + "personal-access-token-request-denied": { "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", + "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#secret_scanning_alert" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#personal_access_token_request" }, "parameters": [ { @@ -103130,9 +105260,9 @@ } }, { - "name": "X-Github-Hook-Id", + "name": "X-GitHub-Delivery", "in": "header", - "example": 12312312, + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", "schema": { "type": "string" } @@ -103140,31 +105270,31 @@ { "name": "X-Github-Event", "in": "header", - "example": "secret_scanning_alert", + "example": "personal_access_token_request", "schema": { "type": "string" } }, { - "name": "X-Github-Hook-Installation-Target-Id", + "name": "X-Github-Hook-Id", "in": "header", - "example": 123123, + "example": 12312312, "schema": { "type": "string" } }, { - "name": "X-Github-Hook-Installation-Target-Type", + "name": "X-Github-Hook-Installation-Target-Id", "in": "header", - "example": "repository", + "example": 123123, "schema": { "type": "string" } }, { - "name": "X-GitHub-Delivery", + "name": "X-Github-Hook-Installation-Target-Type", "in": "header", - "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "example": "integration", "schema": { "type": "string" } @@ -103183,7 +105313,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-secret-scanning-alert-validated" + "$ref": "#/components/schemas/webhook-personal-access-token-request-denied" } } } @@ -103196,22 +105326,20 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "secret_scanning_alert", + "subcategory": "personal_access_token_request", "supported-webhook-types": [ - "repository", - "organization", - "app" + "app", + "organization" ] } } }, - "secret-scanning-scan-completed": { + "ping": { "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", + "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#secret_scanning_scan" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#ping" }, "parameters": [ { @@ -103233,7 +105361,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "secret_scanning_scan", + "example": "ping", "schema": { "type": "string" } @@ -103276,7 +105404,22 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-secret-scanning-scan-completed" + "$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" + } } } } @@ -103288,23 +105431,26 @@ }, "x-github": { "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "secret_scanning_scan", + "subcategory": "ping", "supported-webhook-types": [ "repository", "organization", - "app" + "app", + "business", + "marketplace" ] } } }, - "security-advisory-published": { + "project-card-converted": { "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", + "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#security_advisory" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project_card" }, "parameters": [ { @@ -103326,7 +105472,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "security_advisory", + "example": "project_card", "schema": { "type": "string" } @@ -103369,7 +105515,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-security-advisory-published" + "$ref": "#/components/schemas/webhook-project-card-converted" } } } @@ -103382,20 +105528,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "security_advisory", + "subcategory": "project_card", "supported-webhook-types": [ + "repository", + "organization", "app" ] } } }, - "security-advisory-updated": { + "project-card-created": { "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", + "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#security_advisory" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project_card" }, "parameters": [ { @@ -103417,7 +105565,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "security_advisory", + "example": "project_card", "schema": { "type": "string" } @@ -103460,7 +105608,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-security-advisory-updated" + "$ref": "#/components/schemas/webhook-project-card-created" } } } @@ -103473,20 +105621,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "security_advisory", + "subcategory": "project_card", "supported-webhook-types": [ + "repository", + "organization", "app" ] } } }, - "security-advisory-withdrawn": { + "project-card-deleted": { "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", + "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#security_advisory" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project_card" }, "parameters": [ { @@ -103508,7 +105658,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "security_advisory", + "example": "project_card", "schema": { "type": "string" } @@ -103551,7 +105701,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-security-advisory-withdrawn" + "$ref": "#/components/schemas/webhook-project-card-deleted" } } } @@ -103564,19 +105714,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "security_advisory", + "subcategory": "project_card", "supported-webhook-types": [ + "repository", + "organization", "app" ] } } }, - "security-and-analysis": { + "project-card-edited": { "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", + "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#security_and_analysis" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project_card" }, "parameters": [ { @@ -103598,7 +105751,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "security_and_analysis", + "example": "project_card", "schema": { "type": "string" } @@ -103641,7 +105794,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-security-and-analysis" + "$ref": "#/components/schemas/webhook-project-card-edited" } } } @@ -103654,7 +105807,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "security_and_analysis", + "subcategory": "project_card", "supported-webhook-types": [ "repository", "organization", @@ -103663,13 +105816,13 @@ } } }, - "sponsorship-cancelled": { + "project-card-moved": { "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", + "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#sponsorship" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project_card" }, "parameters": [ { @@ -103691,7 +105844,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "sponsorship", + "example": "project_card", "schema": { "type": "string" } @@ -103734,7 +105887,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-sponsorship-cancelled" + "$ref": "#/components/schemas/webhook-project-card-moved" } } } @@ -103747,20 +105900,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "sponsorship", + "subcategory": "project_card", "supported-webhook-types": [ - "sponsors_listing" + "repository", + "organization", + "app" ] } } }, - "sponsorship-created": { + "project-closed": { "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", + "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#sponsorship" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project" }, "parameters": [ { @@ -103782,7 +105937,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "sponsorship", + "example": "project", "schema": { "type": "string" } @@ -103825,7 +105980,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-sponsorship-created" + "$ref": "#/components/schemas/webhook-project-closed" } } } @@ -103838,20 +105993,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "sponsorship", + "subcategory": "project", "supported-webhook-types": [ - "sponsors_listing" + "repository", + "organization", + "app" ] } } }, - "sponsorship-edited": { + "project-column-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 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", + "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#sponsorship" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project_column" }, "parameters": [ { @@ -103873,7 +106030,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "sponsorship", + "example": "project_column", "schema": { "type": "string" } @@ -103916,7 +106073,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-sponsorship-edited" + "$ref": "#/components/schemas/webhook-project-column-created" } } } @@ -103929,20 +106086,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "sponsorship", + "subcategory": "project_column", "supported-webhook-types": [ - "sponsors_listing" + "repository", + "organization", + "app" ] } } }, - "sponsorship-pending-cancellation": { + "project-column-deleted": { "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", + "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#sponsorship" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project_column" }, "parameters": [ { @@ -103964,7 +106123,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "sponsorship", + "example": "project_column", "schema": { "type": "string" } @@ -104007,7 +106166,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-sponsorship-pending-cancellation" + "$ref": "#/components/schemas/webhook-project-column-deleted" } } } @@ -104020,20 +106179,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "sponsorship", + "subcategory": "project_column", "supported-webhook-types": [ - "sponsors_listing" + "repository", + "organization", + "app" ] } } }, - "sponsorship-pending-tier-change": { + "project-column-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 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", + "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#sponsorship" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project_column" }, "parameters": [ { @@ -104055,7 +106216,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "sponsorship", + "example": "project_column", "schema": { "type": "string" } @@ -104098,7 +106259,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-sponsorship-pending-tier-change" + "$ref": "#/components/schemas/webhook-project-column-edited" } } } @@ -104111,20 +106272,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "sponsorship", + "subcategory": "project_column", "supported-webhook-types": [ - "sponsors_listing" + "repository", + "organization", + "app" ] } } }, - "sponsorship-tier-changed": { + "project-column-moved": { "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", + "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#sponsorship" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project_column" }, "parameters": [ { @@ -104146,7 +106309,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "sponsorship", + "example": "project_column", "schema": { "type": "string" } @@ -104189,7 +106352,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-sponsorship-tier-changed" + "$ref": "#/components/schemas/webhook-project-column-moved" } } } @@ -104202,20 +106365,22 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "sponsorship", + "subcategory": "project_column", "supported-webhook-types": [ - "sponsors_listing" + "repository", + "organization", + "app" ] } } }, - "star-created": { + "project-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", + "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#star" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project" }, "parameters": [ { @@ -104237,7 +106402,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "star", + "example": "project", "schema": { "type": "string" } @@ -104280,7 +106445,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-star-created" + "$ref": "#/components/schemas/webhook-project-created" } } } @@ -104293,7 +106458,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "star", + "subcategory": "project", "supported-webhook-types": [ "repository", "organization", @@ -104302,13 +106467,13 @@ } } }, - "star-deleted": { + "project-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", + "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#star" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project" }, "parameters": [ { @@ -104330,7 +106495,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "star", + "example": "project", "schema": { "type": "string" } @@ -104373,7 +106538,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-star-deleted" + "$ref": "#/components/schemas/webhook-project-deleted" } } } @@ -104386,7 +106551,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "star", + "subcategory": "project", "supported-webhook-types": [ "repository", "organization", @@ -104395,12 +106560,13 @@ } } }, - "status": { + "project-edited": { "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", + "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#status" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project" }, "parameters": [ { @@ -104422,7 +106588,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "status", + "example": "project", "schema": { "type": "string" } @@ -104465,7 +106631,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-status" + "$ref": "#/components/schemas/webhook-project-edited" } } } @@ -104478,7 +106644,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "status", + "subcategory": "project", "supported-webhook-types": [ "repository", "organization", @@ -104487,13 +106653,13 @@ } } }, - "sub-issues-parent-issue-added": { + "project-reopened": { "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", + "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#sub-issues" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#project" }, "parameters": [ { @@ -104515,7 +106681,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "sub_issues", + "example": "project", "schema": { "type": "string" } @@ -104558,7 +106724,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-sub-issues-parent-issue-added" + "$ref": "#/components/schemas/webhook-project-reopened" } } } @@ -104571,7 +106737,7 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "sub-issues", + "subcategory": "project", "supported-webhook-types": [ "repository", "organization", @@ -104580,13 +106746,13 @@ } } }, - "sub-issues-parent-issue-removed": { + "projects-v2-closed": { "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", + "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#sub-issues" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2" }, "parameters": [ { @@ -104608,7 +106774,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "sub_issues", + "example": "project-v2", "schema": { "type": "string" } @@ -104651,7 +106817,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-sub-issues-parent-issue-removed" + "$ref": "#/components/schemas/webhook-projects-v2-project-closed" } } } @@ -104663,23 +106829,22 @@ }, "x-github": { "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "sub-issues", + "subcategory": "projects_v2", "supported-webhook-types": [ - "repository", - "organization", - "app" + "organization" ] } } }, - "sub-issues-sub-issue-added": { + "projects-v2-created": { "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", + "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#sub-issues" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2" }, "parameters": [ { @@ -104701,7 +106866,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "sub_issues", + "example": "project-v2", "schema": { "type": "string" } @@ -104744,7 +106909,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-sub-issues-sub-issue-added" + "$ref": "#/components/schemas/webhook-projects-v2-project-created" } } } @@ -104756,23 +106921,22 @@ }, "x-github": { "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "sub-issues", + "subcategory": "projects_v2", "supported-webhook-types": [ - "repository", - "organization", - "app" + "organization" ] } } }, - "sub-issues-sub-issue-removed": { + "projects-v2-deleted": { "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", + "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#sub-issues" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2" }, "parameters": [ { @@ -104794,7 +106958,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "sub_issues", + "example": "project-v2", "schema": { "type": "string" } @@ -104837,7 +107001,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-sub-issues-sub-issue-removed" + "$ref": "#/components/schemas/webhook-projects-v2-project-deleted" } } } @@ -104849,22 +107013,22 @@ }, "x-github": { "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "sub-issues", + "subcategory": "projects_v2", "supported-webhook-types": [ - "repository", - "organization", - "app" + "organization" ] } } }, - "team-add": { + "projects-v2-edited": { "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", + "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#team_add" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2" }, "parameters": [ { @@ -104886,7 +107050,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "team_add", + "example": "project-v2", "schema": { "type": "string" } @@ -104929,7 +107093,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-team-add" + "$ref": "#/components/schemas/webhook-projects-v2-project-edited" } } } @@ -104941,23 +107105,22 @@ }, "x-github": { "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "team_add", + "subcategory": "projects_v2", "supported-webhook-types": [ - "repository", - "organization", - "app" + "organization" ] } } }, - "team-added-to-repository": { + "projects-v2-item-archived": { "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", + "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#team" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item" }, "parameters": [ { @@ -104979,7 +107142,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "team", + "example": "project-v2-item", "schema": { "type": "string" } @@ -105022,7 +107185,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-team-added-to-repository" + "$ref": "#/components/schemas/webhook-projects-v2-item-archived" } } } @@ -105034,23 +107197,22 @@ }, "x-github": { "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "team", + "subcategory": "projects_v2_item", "supported-webhook-types": [ - "organization", - "business", - "app" + "organization" ] } } }, - "team-created": { + "projects-v2-item-converted": { "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", + "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#team" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item" }, "parameters": [ { @@ -105072,7 +107234,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "team", + "example": "project-v2-item", "schema": { "type": "string" } @@ -105115,7 +107277,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-team-created" + "$ref": "#/components/schemas/webhook-projects-v2-item-converted" } } } @@ -105127,23 +107289,22 @@ }, "x-github": { "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "team", + "subcategory": "projects_v2_item", "supported-webhook-types": [ - "organization", - "business", - "app" + "organization" ] } } }, - "team-deleted": { + "projects-v2-item-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 deleted.", - "operationId": "team/deleted", + "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#team" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item" }, "parameters": [ { @@ -105165,7 +107326,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "team", + "example": "project-v2-item", "schema": { "type": "string" } @@ -105208,7 +107369,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-team-deleted" + "$ref": "#/components/schemas/webhook-projects-v2-item-created" } } } @@ -105220,23 +107381,22 @@ }, "x-github": { "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "team", + "subcategory": "projects_v2_item", "supported-webhook-types": [ - "organization", - "business", - "app" + "organization" ] } } }, - "team-edited": { + "projects-v2-item-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": "The name, description, or visibility of a team was changed.", - "operationId": "team/edited", + "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#team" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item" }, "parameters": [ { @@ -105258,7 +107418,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "team", + "example": "project-v2-item", "schema": { "type": "string" } @@ -105301,7 +107461,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-team-edited" + "$ref": "#/components/schemas/webhook-projects-v2-item-deleted" } } } @@ -105313,23 +107473,22 @@ }, "x-github": { "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "team", + "subcategory": "projects_v2_item", "supported-webhook-types": [ - "organization", - "business", - "app" + "organization" ] } } }, - "team-removed-from-repository": { + "projects-v2-item-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": "A team's access to a repository was removed.", - "operationId": "team/removed-from-repository", + "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#team" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item" }, "parameters": [ { @@ -105351,7 +107510,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "team", + "example": "project-v2-item", "schema": { "type": "string" } @@ -105394,7 +107553,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-team-removed-from-repository" + "$ref": "#/components/schemas/webhook-projects-v2-item-edited" } } } @@ -105406,23 +107565,22 @@ }, "x-github": { "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "team", + "subcategory": "projects_v2_item", "supported-webhook-types": [ - "organization", - "business", - "app" + "organization" ] } } }, - "watch-started": { + "projects-v2-item-reordered": { "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", + "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#watch" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item" }, "parameters": [ { @@ -105444,7 +107602,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "watch", + "example": "project-v2-item", "schema": { "type": "string" } @@ -105487,7 +107645,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-watch-started" + "$ref": "#/components/schemas/webhook-projects-v2-item-reordered" } } } @@ -105499,22 +107657,22 @@ }, "x-github": { "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "watch", + "subcategory": "projects_v2_item", "supported-webhook-types": [ - "repository", - "organization", - "app" + "organization" ] } } }, - "workflow-dispatch": { + "projects-v2-item-restored": { "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", + "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#workflow_dispatch" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_item" }, "parameters": [ { @@ -105536,7 +107694,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "workflow_dispatch", + "example": "project-v2-item", "schema": { "type": "string" } @@ -105579,7 +107737,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-workflow-dispatch" + "$ref": "#/components/schemas/webhook-projects-v2-item-restored" } } } @@ -105591,21 +107749,22 @@ }, "x-github": { "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "workflow_dispatch", + "subcategory": "projects_v2_item", "supported-webhook-types": [ - "app" + "organization" ] } } }, - "workflow-job-completed": { + "projects-v2-reopened": { "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", + "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#workflow_job" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2" }, "parameters": [ { @@ -105627,7 +107786,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "workflow_job", + "example": "project-v2", "schema": { "type": "string" } @@ -105670,7 +107829,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-workflow-job-completed" + "$ref": "#/components/schemas/webhook-projects-v2-project-reopened" } } } @@ -105682,24 +107841,22 @@ }, "x-github": { "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "workflow_job", + "subcategory": "projects_v2", "supported-webhook-types": [ - "business", - "repository", - "organization", - "app" + "organization" ] } } }, - "workflow-job-in-progress": { + "projects-v2-status-update-created": { "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", + "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#workflow_job" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_status_update" }, "parameters": [ { @@ -105721,7 +107878,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "workflow_job", + "example": "project-v2-status-update", "schema": { "type": "string" } @@ -105764,7 +107921,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-workflow-job-in-progress" + "$ref": "#/components/schemas/webhook-projects-v2-status-update-created" } } } @@ -105776,24 +107933,22 @@ }, "x-github": { "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "workflow_job", + "subcategory": "projects_v2_status_update", "supported-webhook-types": [ - "business", - "repository", - "organization", - "app" + "organization" ] } } }, - "workflow-job-queued": { + "projects-v2-status-update-deleted": { "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", + "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#workflow_job" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_status_update" }, "parameters": [ { @@ -105815,7 +107970,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "workflow_job", + "example": "project-v2-status-update", "schema": { "type": "string" } @@ -105858,7 +108013,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-workflow-job-queued" + "$ref": "#/components/schemas/webhook-projects-v2-status-update-deleted" } } } @@ -105870,24 +108025,22 @@ }, "x-github": { "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "workflow_job", + "subcategory": "projects_v2_status_update", "supported-webhook-types": [ - "business", - "repository", - "organization", - "app" + "organization" ] } } }, - "workflow-job-waiting": { + "projects-v2-status-update-edited": { "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", + "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#workflow_job" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#projects_v2_status_update" }, "parameters": [ { @@ -105909,7 +108062,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "workflow_job", + "example": "project-v2-status-update", "schema": { "type": "string" } @@ -105952,7 +108105,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-workflow-job-waiting" + "$ref": "#/components/schemas/webhook-projects-v2-status-update-edited" } } } @@ -105964,24 +108117,21 @@ }, "x-github": { "githubCloudOnly": false, + "enabledForGitHubApps": true, "category": "webhooks", - "subcategory": "workflow_job", + "subcategory": "projects_v2_status_update", "supported-webhook-types": [ - "business", - "repository", - "organization", - "app" + "organization" ] } } }, - "workflow-run-completed": { + "public": { "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", + "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#workflow_run" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#public" }, "parameters": [ { @@ -106003,7 +108153,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "workflow_run", + "example": "public", "schema": { "type": "string" } @@ -106046,7 +108196,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-workflow-run-completed" + "$ref": "#/components/schemas/webhook-public" } } } @@ -106059,9 +108209,8 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "workflow_run", + "subcategory": "public", "supported-webhook-types": [ - "business", "repository", "organization", "app" @@ -106069,13 +108218,13 @@ } } }, - "workflow-run-in-progress": { + "pull-request-assigned": { "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", + "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#workflow_run" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" }, "parameters": [ { @@ -106097,7 +108246,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "workflow_run", + "example": "pull_request", "schema": { "type": "string" } @@ -106140,7 +108289,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-workflow-run-in-progress" + "$ref": "#/components/schemas/webhook-pull-request-assigned" } } } @@ -106153,9 +108302,8 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "workflow_run", + "subcategory": "pull_request", "supported-webhook-types": [ - "business", "repository", "organization", "app" @@ -106163,13 +108311,13 @@ } } }, - "workflow-run-requested": { + "pull-request-auto-merge-disabled": { "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", + "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#workflow_run" + "url": "https://docs.github.com/webhooks/webhook-events-and-payloads#pull_request" }, "parameters": [ { @@ -106191,7 +108339,7 @@ { "name": "X-Github-Event", "in": "header", - "example": "workflow_run", + "example": "pull_request", "schema": { "type": "string" } @@ -106234,7 +108382,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/webhook-workflow-run-requested" + "$ref": "#/components/schemas/webhook-pull-request-auto-merge-disabled" } } } @@ -106247,8642 +108395,11612 @@ "x-github": { "githubCloudOnly": false, "category": "webhooks", - "subcategory": "workflow_run", + "subcategory": "pull_request", "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" + }, + "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" + } }, - "code_search_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "commit_search_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request", + "schema": { + "type": "string" + } }, - "emails_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "emojis_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "events_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "feeds_url": { - "type": "string", - "format": "uri-template" + { + "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" + } }, - "followers_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "following_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request", + "schema": { + "type": "string" + } }, - "gists_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "hub_url": { - "type": "string", - "format": "uri-template", - "deprecated": true + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "issue_search_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "issues_url": { - "type": "string", - "format": "uri-template" + { + "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" + } }, - "keys_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "label_search_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request", + "schema": { + "type": "string" + } }, - "notifications_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "organization_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "organization_repositories_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "organization_teams_url": { - "type": "string", - "format": "uri-template" + { + "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" + } }, - "public_gists_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "rate_limit_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request", + "schema": { + "type": "string" + } }, - "repository_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "repository_search_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "current_user_repositories_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "starred_url": { - "type": "string", - "format": "uri-template" + { + "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" + } }, - "starred_gists_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "topic_search_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request", + "schema": { + "type": "string" + } }, - "user_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "user_organizations_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "user_repositories_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "user_search_url": { - "type": "string", - "format": "uri-template" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } } - }, - "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" ], - "x-github-breaking-changes": [ - { - "changeset": "remove_authorizations_url_from_api_root", - "patch": [ - { - "op": "remove", - "path": "/properties/authorizations_url" - }, - { - "op": "remove", - "path": "/required/2" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-dequeued" } - ], - "version": "2026-03-10" + } + } + }, + "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" + } }, { - "changeset": "remove_hub_url_from_api_root", - "patch": { - "properties": { - "hub_url": null - } - }, - "version": "2026-03-10" - } - ] - }, - "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" - ] + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "vulnerable_version_range": { - "type": "string", - "description": "The range of the package versions affected by the vulnerability.", - "nullable": true + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request", + "schema": { + "type": "string" + } }, - "first_patched_version": { - "type": "string", - "description": "The package version that resolves the vulnerability.", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "vulnerable_functions": { - "type": "array", - "description": "The functions in the package that are affected by the vulnerability.", - "nullable": true, - "readOnly": true, - "items": { + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { "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 + { + "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" } - }, - "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 + }, + "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" + ] } - }, - "simple-user": { - "title": "Simple User", - "description": "A GitHub user.", - "type": "object", - "properties": { - "name": { - "nullable": true, - "type": "string" + } + }, + "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" + } }, - "email": { - "nullable": true, - "type": "string" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "login": { - "type": "string", - "example": "octocat" + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request", + "schema": { + "type": "string" + } }, - "id": { - "type": "integer", - "format": "int64", - "example": 1 + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "node_id": { - "type": "string", - "example": "MDQ6VXNlcjE=" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "avatar_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/images/error/octocat_happy.gif" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "gravatar_id": { - "type": "string", - "example": "41d064eb2195891e12d0413f63227ea7", - "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-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" + } }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat" + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request", + "schema": { + "type": "string" + } }, - "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}" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "subscriptions_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/subscriptions" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "organizations_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/orgs" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "repos_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/repos" + { + "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" + } }, - "events_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/events{/privacy}" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "received_events_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/received_events" + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request", + "schema": { + "type": "string" + } }, - "type": { - "type": "string", - "example": "User" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "site_admin": { - "type": "boolean" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "starred_at": { - "type": "string", - "example": "\"2020-07-09T00:17:55Z\"" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "user_view_type": { - "type": "string", - "example": "public" + { + "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" + } + } } }, - "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 + "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" + } }, - "cve_id": { - "type": "string", - "description": "The Common Vulnerabilities and Exposures (CVE) ID.", - "nullable": true, - "readOnly": true + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "url": { - "type": "string", - "description": "The API URL for the advisory.", - "readOnly": true + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request", + "schema": { + "type": "string" + } }, - "html_url": { - "type": "string", - "format": "uri", - "description": "The URL for the advisory.", - "readOnly": true + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "repository_advisory_url": { - "type": "string", - "format": "uri", - "description": "The API URL for the repository advisory.", - "readOnly": true, - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "summary": { - "type": "string", - "description": "A short summary of the advisory.", - "maxLength": 1024 + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "description": { - "type": "string", - "description": "A detailed description of what the advisory entails.", - "maxLength": 65535, - "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-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" + } }, - "type": { - "type": "string", - "description": "The type of advisory.", - "readOnly": true, - "enum": [ - "reviewed", - "unreviewed", - "malware" - ] + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "severity": { - "type": "string", - "description": "The severity of the advisory.", - "enum": [ - "critical", - "high", - "medium", - "low", - "unknown" - ] + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request", + "schema": { + "type": "string" + } }, - "source_code_location": { - "type": "string", - "format": "uri", - "description": "The URL of the advisory's source code.", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" } }, - "references": { - "type": "array", - "nullable": true, - "items": { - "type": "string", - "description": "URLs with more information regarding the advisory." + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" } }, - "published_at": { - "type": "string", - "format": "date-time", - "description": "The date and time of when the advisory was published, in ISO 8601 format.", - "readOnly": 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-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" + } }, - "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 + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "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 + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request", + "schema": { + "type": "string" + } }, - "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 + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "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 + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "vulnerabilities": { - "type": "array", - "description": "The products and respective version ranges affected by the advisory.", - "nullable": true, - "items": { - "$ref": "#/components/schemas/vulnerability" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" } }, - "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 + { + "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" } - }, - "required": [ - "vector_string", - "score" - ] + } + } + }, + "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" + } }, - "cvss_severities": { - "$ref": "#/components/schemas/cvss-severities" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "epss": { - "$ref": "#/components/schemas/security-advisory-epss" + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request", + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" } }, - "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" - ] + { + "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" } } - }, - "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, - "x-github-breaking-changes": [ - { - "changeset": "deprecate_cvss", - "patch": { - "properties": { - "cvss": null - }, - "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", - "cwes", - "credits" - ] - }, - "version": "2026-03-10" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-pull-request-reopened" + } + } } - ] - }, - "basic-error": { - "title": "Basic Error", - "description": "Basic Error", - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "documentation_url": { - "type": "string" - }, - "url": { - "type": "string" - }, - "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": "pull_request", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] } - }, - "validation-error-simple": { - "title": "Validation Error Simple", - "description": "Validation Error Simple", - "type": "object", - "required": [ - "message", - "documentation_url" - ], - "properties": { - "message": { - "type": "string" + } + }, + "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" + } }, - "documentation_url": { - "type": "string" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "errors": { - "type": "array", - "items": { + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request_review_comment", + "schema": { "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" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "website_url": { - "description": "The enterprise's website URL.", - "type": "string", - "nullable": true, - "format": "uri" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "id": { - "description": "Unique identifier of the enterprise", - "example": 42, - "type": "integer" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "node_id": { - "type": "string", - "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + { + "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": { - "description": "The name of the enterprise.", - "type": "string", - "example": "Octo Business" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "slug": { - "description": "The slug url identifier for the enterprise.", - "type": "string", - "example": "octo-business" + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request_review_comment", + "schema": { + "type": "string" + } }, - "created_at": { - "type": "string", - "nullable": true, - "format": "date-time", - "example": "2019-01-26T19:01:12Z" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "updated_at": { - "type": "string", - "nullable": true, - "format": "date-time", - "example": "2019-01-26T19:14:43Z" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "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\"" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "owner": { - "oneOf": [ - { - "$ref": "#/components/schemas/simple-user" - }, - { - "$ref": "#/components/schemas/enterprise" + { + "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" } - ] - }, - "name": { - "description": "The name of the GitHub app", - "example": "Probot Owners", - "type": "string" + } + } + }, + "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" + } }, - "description": { - "type": "string", - "example": "The description of the app.", - "nullable": true + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "external_url": { - "type": "string", - "format": "uri", - "example": "https://example.com" + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request_review_comment", + "schema": { + "type": "string" + } }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/apps/super-ci" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2017-07-08T16:18:44-04:00" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2017-07-08T16:18:44-04:00" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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" + { + "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" } - }, - "additionalProperties": { + } + } + }, + "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" - }, - "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": { + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { "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\"" + "name": "X-Github-Event", + "in": "header", + "example": "pull_request_review", + "schema": { + "type": "string" + } }, { - "type": "number" - } - ] - }, - "webhook-config": { - "title": "Webhook Configuration", - "description": "Configuration object of the webhook", - "type": "object", - "properties": { - "url": { - "$ref": "#/components/schemas/webhook-config-url" + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "content_type": { - "$ref": "#/components/schemas/webhook-config-content-type" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "secret": { - "$ref": "#/components/schemas/webhook-config-secret" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "insecure_ssl": { - "$ref": "#/components/schemas/webhook-config-insecure-ssl" + { + "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" + ] } - }, - "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 + } + }, + "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" + } }, - "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" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "delivered_at": { - "description": "Time when the webhook delivery occurred.", - "type": "string", - "format": "date-time", - "example": "2021-05-12T20:33:44Z" + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request_review", + "schema": { + "type": "string" + } }, - "redelivery": { - "description": "Whether the webhook delivery is a redelivery.", - "type": "boolean", - "example": false + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "duration": { - "description": "Time spent delivering.", - "type": "number", - "example": 0.03 + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "status": { - "description": "Describes the response returned after attempting the delivery.", - "type": "string", - "example": "failed to connect" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "status_code": { - "description": "Status code received when delivery was made.", - "type": "integer", - "example": 502 + { + "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" + } }, - "event": { - "description": "The event that triggered the delivery.", - "type": "string", - "example": "issues" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "action": { - "description": "The type of activity for the event that triggered the delivery.", - "type": "string", - "example": "opened", - "nullable": true + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request", + "schema": { + "type": "string" + } }, - "installation_id": { - "description": "The id of the GitHub App installation associated with this event.", - "type": "integer", - "format": "int64", - "example": 123, - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "repository_id": { - "description": "The id of the repository associated with this event.", - "type": "integer", - "format": "int64", - "example": 123, - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "throttled_at": { - "description": "Time when the webhook delivery was throttled.", - "type": "string", - "format": "date-time", - "example": "2021-05-12T20:33:44Z", - "nullable": true + { + "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" + } + } } }, - "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 + "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" + } }, - "documentation_url": { - "type": "string", - "nullable": true + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "detail": { - "type": "string", - "nullable": true + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request", + "schema": { + "type": "string" + } }, - "status": { - "type": "integer" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "scimType": { - "type": "string", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "schemas": { - "type": "array", - "items": { + { + "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" } } - } - }, - "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" - } - } - ] - } + "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" + ] } - }, - "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" + } + }, + "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" + } }, - "redelivery": { - "description": "Whether the delivery is a redelivery.", - "type": "boolean", - "example": false + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "duration": { - "description": "Time spent delivering.", - "type": "number", - "example": 0.03 + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request_review", + "schema": { + "type": "string" + } }, - "status": { - "description": "Description of the status of the attempted delivery", - "type": "string", - "example": "failed to connect" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "status_code": { - "description": "Status code received when delivery was made.", - "type": "integer", - "example": 502 + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "event": { - "description": "The event that triggered the delivery.", - "type": "string", - "example": "issues" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "action": { - "description": "The type of activity for the event that triggered the delivery.", - "type": "string", - "example": "opened", - "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-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" + } }, - "installation_id": { - "description": "The id of the GitHub App installation associated with this event.", - "type": "integer", - "example": 123, - "nullable": true + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "repository_id": { - "description": "The id of the repository associated with this event.", - "type": "integer", - "example": 123, - "nullable": true + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request_review_thread", + "schema": { + "type": "string" + } }, - "throttled_at": { - "description": "Time when the webhook delivery was throttled.", - "type": "string", - "format": "date-time", - "example": "2021-05-12T20:33:44Z", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "url": { - "description": "The URL target of the delivery.", - "type": "string", - "example": "https://www.example.com" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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" - ] + { + "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" + } + } } }, - "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 + "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" + } }, - "node_id": { - "type": "string", - "example": "MDExOkludGVncmF0aW9uMQ==" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "account": { - "anyOf": [ - { - "$ref": "#/components/schemas/simple-user" - }, - { - "$ref": "#/components/schemas/enterprise" - } - ] + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request_review_thread", + "schema": { + "type": "string" + } }, - "requester": { - "$ref": "#/components/schemas/simple-user" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2022-07-08T16:18:44-04:00" + { + "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" + } + } } }, - "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" - ] + "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-stacked": { + "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 stack.", + "operationId": "pull-request/stacked", + "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" + } }, - "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" - ] + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "attestations": { - "type": "string", - "description": "The level of permission to create and retrieve the access token for repository attestations.", - "enum": [ - "read", - "write" - ] + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request", + "schema": { + "type": "string" + } }, - "checks": { - "type": "string", - "description": "The level of permission to grant the access token for checks on code.", - "enum": [ - "read", - "write" - ] + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "codespaces": { - "type": "string", - "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", - "enum": [ - "read", - "write" - ] + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "dependabot_secrets": { - "type": "string", - "description": "The level of permission to grant the access token to manage Dependabot secrets.", - "enum": [ - "read", - "write" - ] + { + "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-stacked" + } + } + } + }, + "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-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" + } }, - "deployments": { - "type": "string", - "description": "The level of permission to grant the access token for deployments and deployment statuses.", - "enum": [ - "read", - "write" - ] + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "discussions": { - "type": "string", - "description": "The level of permission to grant the access token for discussions and related comments and labels.", - "enum": [ - "read", - "write" - ] + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request", + "schema": { + "type": "string" + } }, - "environments": { - "type": "string", - "description": "The level of permission to grant the access token for managing repository environments.", - "enum": [ - "read", - "write" - ] + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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" - ] + { + "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" + } }, - "packages": { - "type": "string", - "description": "The level of permission to grant the access token for packages published to GitHub Packages.", - "enum": [ - "read", - "write" - ] + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request", + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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" - ] + { + "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" + } }, - "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" - ] + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "secrets": { - "type": "string", - "description": "The level of permission to grant the access token to manage repository secrets.", - "enum": [ - "read", - "write" - ] + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request", + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "single_file": { - "type": "string", - "description": "The level of permission to grant the access token to manage just a single file.", - "enum": [ - "read", - "write" - ] + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "statuses": { - "type": "string", - "description": "The level of permission to grant the access token for commit statuses.", - "enum": [ - "read", - "write" - ] + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "vulnerability_alerts": { - "type": "string", - "description": "The level of permission to grant the access token to manage Dependabot alerts.", - "enum": [ - "read", - "write" - ] + { + "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" + } }, - "workflows": { - "type": "string", - "description": "The level of permission to grant the access token to update GitHub Actions workflow files.", - "enum": [ - "write" - ] + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-Github-Event", + "in": "header", + "example": "pull_request", + "schema": { + "type": "string" + } }, - "members": { - "type": "string", - "description": "The level of permission to grant the access token for organization teams and members.", - "enum": [ - "read", - "write" - ] + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "organization_administration": { - "type": "string", - "description": "The level of permission to grant the access token to manage access to an organization.", - "enum": [ - "read", - "write" - ] + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "organization_custom_roles": { - "type": "string", - "description": "The level of permission to grant the access token for custom repository roles management.", - "enum": [ - "read", - "write" - ] + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "organization_custom_org_roles": { - "type": "string", - "description": "The level of permission to grant the access token for custom organization roles management.", - "enum": [ - "read", - "write" - ] + { + "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" + } }, - "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" - ] + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-Github-Event", + "in": "header", + "example": "push", + "schema": { + "type": "string" + } }, - "organization_copilot_agent_settings": { - "type": "string", - "description": "The level of permission to grant the access token to view and manage Copilot coding agent settings for an organization.", - "enum": [ - "read", - "write" - ] + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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" - ] + { + "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" + } }, - "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" - ] + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-Github-Event", + "in": "header", + "example": "registry_package", + "schema": { + "type": "string" + } }, - "organization_plan": { - "type": "string", - "description": "The level of permission to grant the access token for viewing an organization's plan.", - "enum": [ - "read" - ] + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "followers": { - "type": "string", - "description": "The level of permission to grant the access token to manage the followers belonging to a user.", - "enum": [ - "read", - "write" - ] + { + "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" + } }, - "git_ssh_keys": { - "type": "string", - "description": "The level of permission to grant the access token to manage git SSH keys.", - "enum": [ - "read", - "write" - ] + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-Github-Event", + "in": "header", + "example": "registry_package", + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "profile": { - "type": "string", - "description": "The level of permission to grant the access token to manage the profile settings belonging to a user.", - "enum": [ - "write" - ] + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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" - ] + { + "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" + } + } } }, - "example": { - "contents": "read", - "issues": "read", - "deployments": "write", - "single_file": "read" + "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" + ] } - }, - "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 + } + }, + "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" + } }, - "node_id": { - "type": "string", - "example": "MDQ6VXNlcjE=" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "avatar_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/images/error/octocat_happy.gif" + { + "name": "X-Github-Event", + "in": "header", + "example": "release", + "schema": { + "type": "string" + } }, - "gravatar_id": { - "type": "string", - "example": "41d064eb2195891e12d0413f63227ea7", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "followers_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/followers" + { + "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" + } }, - "following_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/following{/other_user}" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "gists_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/gists{/gist_id}" + { + "name": "X-Github-Event", + "in": "header", + "example": "release", + "schema": { + "type": "string" + } }, - "starred_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "subscriptions_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/subscriptions" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "organizations_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/orgs" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "repos_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/repos" + { + "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" + } }, - "events_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/events{/privacy}" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "received_events_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/received_events" + { + "name": "X-Github-Event", + "in": "header", + "example": "release", + "schema": { + "type": "string" + } }, - "type": { - "type": "string", - "example": "User" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "site_admin": { - "type": "boolean" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "starred_at": { - "type": "string", - "example": "\"2020-07-09T00:17:55Z\"" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "user_view_type": { - "type": "string", - "example": "public" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "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" ], - "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" + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-release-edited" } - ] - }, - "repository_selection": { - "description": "Describe whether all repositories have been selected or there's a selection involved", - "type": "string", - "enum": [ - "all", - "selected" - ] + } + } + }, + "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" + } }, - "access_tokens_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/app/installations/1/access_tokens" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "repositories_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/installation/repositories" + { + "name": "X-Github-Event", + "in": "header", + "example": "release", + "schema": { + "type": "string" + } }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/organizations/github/settings/installations/1" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "app_id": { - "type": "integer", - "example": 1 + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "client_id": { - "type": "string", - "example": "Iv1.ab1112223334445c" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "target_id": { - "description": "The ID of the user or organization this token is being scoped to.", - "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-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" + } }, - "target_type": { - "type": "string", - "example": "Organization" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "permissions": { - "$ref": "#/components/schemas/app-permissions" + { + "name": "X-Github-Event", + "in": "header", + "example": "release", + "schema": { + "type": "string" + } }, - "events": { - "type": "array", - "items": { + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { "type": "string" } }, - "created_at": { - "type": "string", - "format": "date-time" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "updated_at": { - "type": "string", - "format": "date-time" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "single_file_name": { - "type": "string", - "example": "config.yaml", - "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-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" + } }, - "has_multiple_single_files": { - "type": "boolean", - "example": true + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "single_file_paths": { - "type": "array", - "items": { + { + "name": "X-Github-Event", + "in": "header", + "example": "release", + "schema": { "type": "string" - }, - "example": [ - "config.yml", - ".github/issue_TEMPLATE.md" - ] + } }, - "app_slug": { - "type": "string", - "example": "github-actions" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "suspended_by": { - "$ref": "#/components/schemas/nullable-simple-user" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "suspended_at": { - "type": "string", - "format": "date-time", - "nullable": true + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "contact_email": { - "type": "string", - "example": "\"test_13f1e99741e3e004@d7e1eb0bc0a1ba12.com\"", - "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-release-released" + } + } } }, - "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" + "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": { - "type": "string", - "example": "MIT License" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "url": { - "type": "string", - "nullable": true, - "format": "uri", - "example": "https://api.github.com/licenses/mit" + { + "name": "X-Github-Event", + "in": "header", + "example": "release", + "schema": { + "type": "string" + } }, - "spdx_id": { - "type": "string", - "nullable": true, - "example": "MIT" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "node_id": { - "type": "string", - "example": "MDc6TGljZW5zZW1pdA==" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "html_url": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "key", - "name", - "url", - "spdx_id", - "node_id" + { + "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" + } + } ], - "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" + "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" + } }, - "node_id": { - "type": "string", - "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "name": { - "description": "The name of the repository.", - "type": "string", - "example": "Team Environment" + { + "name": "X-Github-Event", + "in": "header", + "example": "repository_advisory", + "schema": { + "type": "string" + } }, - "full_name": { - "type": "string", - "example": "octocat/Hello-World" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "license": { - "$ref": "#/components/schemas/nullable-license-simple" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "forks": { - "type": "integer" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "permissions": { - "type": "object", - "properties": { - "admin": { - "type": "boolean" - }, - "pull": { - "type": "boolean" - }, - "triage": { - "type": "boolean" - }, - "push": { - "type": "boolean" - }, - "maintain": { - "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-repository-advisory-published" } - }, - "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" + } + } + }, + "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" + } }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "archive_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + { + "name": "X-Github-Event", + "in": "header", + "example": "repository_advisory", + "schema": { + "type": "string" + } }, - "assignees_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "blobs_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "branches_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "collaborators_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + { + "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" + } }, - "comments_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "commits_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + { + "name": "X-Github-Event", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "compare_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "contents_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "contributors_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "deployments_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + { + "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" + } }, - "downloads_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "events_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/events" + { + "name": "X-Github-Event", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "forks_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/forks" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "git_commits_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "git_refs_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "git_tags_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + { + "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" + } }, - "git_url": { - "type": "string", - "example": "git:github.com/octocat/Hello-World.git" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "issue_comment_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + { + "name": "X-Github-Event", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "issue_events_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "issues_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "keys_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "labels_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + { + "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" + } }, - "languages_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/languages" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "merges_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/merges" + { + "name": "X-Github-Event", + "in": "header", + "example": "repository_dispatch", + "schema": { + "type": "string" + } }, - "milestones_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "notifications_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "pulls_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "releases_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + { + "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" + } }, - "ssh_url": { - "type": "string", - "example": "git@github.com:octocat/Hello-World.git" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "stargazers_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + { + "name": "X-Github-Event", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "statuses_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "subscribers_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "subscription_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "tags_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/tags" + { + "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" + } }, - "teams_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/teams" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "trees_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + { + "name": "X-Github-Event", + "in": "header", + "example": "repository_import", + "schema": { + "type": "string" + } }, - "clone_url": { - "type": "string", - "example": "https://github.com/octocat/Hello-World.git" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "mirror_url": { - "type": "string", - "format": "uri", - "example": "git:git.example.com/octocat/Hello-World", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "hooks_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "svn_url": { - "type": "string", - "format": "uri", - "example": "https://svn.github.com/octocat/Hello-World" + { + "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" + } }, - "homepage": { - "type": "string", - "format": "uri", - "example": "https://github.com", - "nullable": true + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "language": { - "type": "string", - "nullable": true + { + "name": "X-Github-Event", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "forks_count": { - "type": "integer", - "example": 9 + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "stargazers_count": { - "type": "integer", - "example": 80 + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "watchers_count": { - "type": "integer", - "example": 80 + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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": { + { + "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" } }, - "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 + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "has_discussions": { - "description": "Whether discussions are enabled.", - "default": false, - "type": "boolean", - "example": true + { + "name": "X-Github-Event", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "has_pull_requests": { - "description": "Whether pull requests are enabled.", - "default": true, - "type": "boolean", - "example": true + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "pull_request_creation_policy": { - "description": "The policy controlling who can create pull requests: all or collaborators_only.", - "type": "string", - "enum": [ - "all", - "collaborators_only" - ], - "example": "all" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "archived": { - "description": "Whether the repository is archived.", - "default": false, - "type": "boolean" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "disabled": { - "type": "boolean", - "description": "Returns whether or not this repository disabled." + { + "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" + } }, - "visibility": { - "description": "The repository visibility: public, private, or internal.", - "default": "public", - "type": "string" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "pushed_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:06:43Z", - "nullable": true + { + "name": "X-Github-Event", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:14:43Z", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "allow_rebase_merge": { - "description": "Whether to allow rebase merges for pull requests.", - "default": true, - "type": "boolean", - "example": true + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "temp_clone_token": { - "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" + } }, - "allow_squash_merge": { - "description": "Whether to allow squash merges for pull requests.", - "default": true, - "type": "boolean", - "example": true + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "allow_auto_merge": { - "description": "Whether to allow Auto-merge to be used on pull requests.", - "default": false, - "type": "boolean", - "example": false + { + "name": "X-Github-Event", + "in": "header", + "example": "repository_ruleset", + "schema": { + "type": "string" + } }, - "delete_branch_on_merge": { - "description": "Whether to delete head branches when pull requests are merged", - "default": false, - "type": "boolean", - "example": false + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "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 + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "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 + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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)." + { + "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" + } }, - "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." + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "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)." + { + "name": "X-Github-Event", + "in": "header", + "example": "repository_ruleset", + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "allow_merge_commit": { - "description": "Whether to allow merge commits for pull requests.", - "default": true, - "type": "boolean", - "example": true + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "allow_forking": { - "description": "Whether to allow forking this repo", - "type": "boolean" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "web_commit_signoff_required": { - "description": "Whether to require contributors to sign off on web-based commits", - "default": false, - "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-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" + } }, - "open_issues": { - "type": "integer" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "watchers": { - "type": "integer" + { + "name": "X-Github-Event", + "in": "header", + "example": "repository_ruleset", + "schema": { + "type": "string" + } }, - "master_branch": { - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "starred_at": { - "type": "string", - "example": "\"2020-07-09T00:17:42Z\"" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "anonymous_access_enabled": { - "type": "boolean", - "description": "Whether anonymous git access is enabled for this repository" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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" + { + "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" } } } }, - "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-breaking-changes": [ + "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": [ { - "changeset": "remove_use_squash_pr_title_as_default", - "patch": { - "properties": { - "use_squash_pr_title_as_default": null - } - }, - "version": "2026-03-10" + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, { - "changeset": "deprecate_beta_media_type", - "patch": { - "properties": { - "master_branch": null - } - }, - "version": "2026-03-10" + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, { - "changeset": "remove_has_downloads", - "patch": { - "properties": { - "has_downloads": null - }, - "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", - "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" - ] - }, - "version": "2026-03-10" - } - ] - }, - "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" - ] + "name": "X-Github-Event", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "repositories": { - "type": "array", - "items": { - "$ref": "#/components/schemas/repository" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" } }, - "single_file": { - "type": "string", - "example": "README.md" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "has_multiple_single_files": { - "type": "boolean", - "example": true + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "single_file_paths": { - "type": "array", - "items": { + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { "type": "string" - }, - "example": [ - "config.yml", - ".github/issue_TEMPLATE.md" - ] + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-repository-transferred" + } + } } }, - "required": [ - "token", - "expires_at" - ] - }, - "nullable-scoped-installation": { - "title": "Scoped Installation", - "type": "object", - "properties": { - "permissions": { - "$ref": "#/components/schemas/app-permissions" + "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" + } }, - "repository_selection": { - "description": "Describe whether all repositories have been selected or there's a selection involved", - "type": "string", - "enum": [ - "all", - "selected" - ] + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "single_file_name": { - "type": "string", - "example": "config.yaml", - "nullable": true + { + "name": "X-Github-Event", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "has_multiple_single_files": { - "type": "boolean", - "example": true + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "single_file_paths": { - "type": "array", - "items": { + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { "type": "string" - }, - "example": [ - "config.yml", - ".github/issue_TEMPLATE.md" - ] + } }, - "repositories_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/repos" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "account": { - "$ref": "#/components/schemas/simple-user" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } } - }, - "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" + "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" + } }, - "url": { - "type": "string", - "format": "uri" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "scopes": { - "description": "A list of scopes that this authorization is in.", - "type": "array", - "items": { + { + "name": "X-Github-Event", + "in": "header", + "example": "repository_vulnerability_alert", + "schema": { "type": "string" - }, - "nullable": true + } }, - "token": { - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "token_last_eight": { - "type": "string", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "hashed_token": { - "type": "string", - "nullable": true + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "app": { - "type": "object", - "properties": { - "client_id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" + { + "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" } - }, - "required": [ - "client_id", - "name", - "url" - ] - }, - "note": { - "type": "string", - "nullable": true - }, - "note_url": { - "type": "string", - "format": "uri", - "nullable": true + } + } + }, + "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" + } }, - "updated_at": { - "type": "string", - "format": "date-time" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "created_at": { - "type": "string", - "format": "date-time" + { + "name": "X-Github-Event", + "in": "header", + "example": "repository_vulnerability_alert", + "schema": { + "type": "string" + } }, - "fingerprint": { - "type": "string", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "user": { - "$ref": "#/components/schemas/nullable-simple-user" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "installation": { - "$ref": "#/components/schemas/nullable-scoped-installation" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "expires_at": { - "type": "string", - "format": "date-time", - "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-repository-vulnerability-alert-dismiss" + } + } } }, - "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." + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" } }, - "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 + "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" + } }, - "login": { - "type": "string", - "example": "github" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "node_id": { - "type": "string", - "example": "MDEyOk9yZ2FuaXphdGlvbjE=" + { + "name": "X-Github-Event", + "in": "header", + "example": "repository_vulnerability_alert", + "schema": { + "type": "string" + } }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/github" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "name": { - "type": "string", - "example": "Github - Code thigns happen here", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "avatar_url": { - "type": "string", - "example": "https://github.com/images/error/octocat_happy.gif" + { + "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" + } + } } }, - "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" + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" } }, - "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 + "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" + } }, - "public_repo": { - "description": "Whether an accepted assignment creates a public repository.", - "type": "boolean", - "example": true + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "title": { - "description": "Assignment title.", - "type": "string", - "example": "Intro to Binaries" + { + "name": "X-Github-Event", + "in": "header", + "example": "repository_vulnerability_alert", + "schema": { + "type": "string" + } }, - "type": { - "description": "Whether it's a group assignment or individual assignment.", - "type": "string", - "example": "individual", - "enum": [ - "individual", - "group" - ] + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "invite_link": { - "description": "The link that a student can use to accept the assignment.", - "type": "string", - "example": "https://classroom.github.com/a/Lx7jiUgx" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "invitations_enabled": { - "description": "Whether the invitation link is enabled. Visiting an enabled invitation link will accept the assignment.", - "type": "boolean", - "example": true + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "slug": { - "description": "Sluggified name of the assignment.", - "type": "string", - "example": "intro-to-binaries" + { + "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" + } }, - "students_are_repo_admins": { - "description": "Whether students are admins on created repository when a student accepts the assignment.", - "type": "boolean", - "example": true + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "feedback_pull_requests_enabled": { - "description": "Whether feedback pull request will be created when a student accepts the assignment.", - "type": "boolean", - "example": true + { + "name": "X-Github-Event", + "in": "header", + "example": "secret_scanning_alert", + "schema": { + "type": "string" + } }, - "max_teams": { - "description": "The maximum allowable teams for the assignment.", - "nullable": true, - "type": "integer", - "example": 0 + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "max_members": { - "description": "The maximum allowable members per team.", - "nullable": true, - "type": "integer", - "example": 0 + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "editor": { - "description": "The selected editor for the assignment.", - "type": "string", - "example": "codespaces" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "accepted": { - "description": "The number of students that have accepted the assignment.", - "type": "integer", - "example": 25 + { + "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" + } }, - "submitted": { - "description": "The number of students that have submitted the assignment.", - "type": "integer", - "example": 10 + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "passing": { - "description": "The number of students that have passed the assignment.", - "type": "integer", - "example": 10 + { + "name": "X-Github-Event", + "in": "header", + "example": "secret_scanning_alert", + "schema": { + "type": "string" + } }, - "language": { - "description": "The programming language used in the assignment.", - "type": "string", - "example": "elixir" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "deadline": { - "description": "The time at which the assignment is due.", - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:06:43Z", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "starter_code_repository": { - "$ref": "#/components/schemas/simple-classroom-repository" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "classroom": { - "$ref": "#/components/schemas/classroom" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } } - }, - "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" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-secret-scanning-alert-created" + } + } } }, - "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" + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" } }, - "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" - ] + "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" + } }, - "invite_link": { - "description": "The link that a student can use to accept the assignment.", - "type": "string", - "example": "https://classroom.github.com/a/Lx7jiUgx" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "invitations_enabled": { - "description": "Whether the invitation link is enabled. Visiting an enabled invitation link will accept the assignment.", - "type": "boolean", - "example": true + { + "name": "X-Github-Event", + "in": "header", + "example": "secret_scanning_alert_location", + "schema": { + "type": "string" + } }, - "slug": { - "description": "Sluggified name of the assignment.", - "type": "string", - "example": "intro-to-binaries" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "students_are_repo_admins": { - "description": "Whether students are admins on created repository on accepted assignment.", - "type": "boolean", - "example": true + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "feedback_pull_requests_enabled": { - "description": "Whether feedback pull request will be created on assignment acceptance.", - "type": "boolean", - "example": true + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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" + { + "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-metadata-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": "Metadata was created for a secret scanning alert.", + "operationId": "secret-scanning-alert/metadata-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" + } }, - "accepted": { - "description": "The number of students that have accepted the assignment.", - "type": "integer", - "example": 25 + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "submitted": { - "description": "The number of students that have submitted the assignment.", - "type": "integer", - "example": 10 + { + "name": "X-Github-Event", + "in": "header", + "example": "secret_scanning_alert", + "schema": { + "type": "string" + } }, - "passing": { - "description": "The number of students that have passed the assignment.", - "type": "integer", - "example": 10 + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "language": { - "description": "The programming language used in the assignment.", - "type": "string", - "example": "elixir" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "deadline": { - "description": "The time at which the assignment is due.", - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:06:43Z", - "nullable": true + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "classroom": { - "$ref": "#/components/schemas/simple-classroom" + { + "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-metadata-created" + } + } } }, - "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 + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "category": "webhooks", + "subcategory": "secret_scanning_alert", + "supported-webhook-types": [ + "repository", + "organization", + "app" + ] + } + } + }, + "secret-scanning-alert-metadata-removed": { + "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": "Metadata was removed from a secret scanning alert.", + "operationId": "secret-scanning-alert/metadata-removed", + "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" + } }, - "passing": { - "description": "Whether a submission passed.", - "type": "boolean", - "example": true + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "commit_count": { - "description": "Count of student commits.", - "type": "integer", - "example": 5 + { + "name": "X-Github-Event", + "in": "header", + "example": "secret_scanning_alert", + "schema": { + "type": "string" + } }, - "grade": { - "description": "Most recent grade.", - "type": "string", - "example": "10/10" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "students": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-classroom-user" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" } }, - "repository": { - "$ref": "#/components/schemas/simple-classroom-repository" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "assignment": { - "$ref": "#/components/schemas/simple-classroom-assignment" + { + "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-metadata-removed" + } + } } }, - "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" + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" + } + }, + "x-github": { + "category": "webhooks", + "subcategory": "secret_scanning_alert", + "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" + } }, - "student_repository_name": { - "description": "Name of the student's assignment repository", - "type": "string" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "student_repository_url": { - "description": "URL of the student's assignment repository", - "type": "string" + { + "name": "X-Github-Event", + "in": "header", + "example": "secret_scanning_alert", + "schema": { + "type": "string" + } }, - "submission_timestamp": { - "description": "Timestamp of the student's assignment submission", - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "points_awarded": { - "description": "Number of points awarded to the student", - "type": "integer" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "points_available": { - "description": "Number of points available for the assignment", - "type": "integer" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "group_name": { - "description": "If a group assignment, name of the group the student is in", - "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" + } + } } }, - "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" + "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": { - "type": "string", - "example": "Contributor Covenant" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/codes_of_conduct/contributor_covenant" + { + "name": "X-Github-Event", + "in": "header", + "example": "secret_scanning_alert", + "schema": { + "type": "string" + } }, - "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" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "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 - } - } - }, - "oidc-custom-property-inclusion": { - "title": "Actions OIDC Custom Property Inclusion", - "description": "An OIDC custom property inclusion for repository properties", - "type": "object", - "properties": { - "custom_property_name": { - "type": "string", - "description": "The name of the custom property that is included in the OIDC token" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "inclusion_source": { - "type": "string", - "description": "Whether the inclusion was defined at the organization or enterprise level", - "enum": [ - "organization", - "enterprise" - ], - "example": "organization" + { + "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" + } + } } }, - "required": [ - "custom_property_name", - "inclusion_source" - ] - }, - "oidc-custom-property-inclusion-input": { - "title": "Actions OIDC Custom Property Inclusion Input", - "description": "Input for creating an OIDC custom property inclusion", - "type": "object", - "properties": { - "custom_property_name": { - "type": "string", - "description": "The name of the custom property to include in the OIDC token" + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" } }, - "required": [ - "custom_property_name" - ] - }, - "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." + "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" + } }, - "target_type": { - "type": "string", - "description": "The type of the code security configuration.", - "enum": [ - "global", - "organization", - "enterprise" - ] + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "description": { - "type": "string", - "description": "A description of the code security configuration" + { + "name": "X-Github-Event", + "in": "header", + "example": "secret_scanning_alert", + "schema": { + "type": "string" + } }, - "advanced_security": { - "type": "string", - "description": "The enablement status of GitHub Advanced Security", - "enum": [ - "enabled", - "disabled", - "code_security", - "secret_protection" - ] + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "dependency_graph": { - "type": "string", - "description": "The enablement status of Dependency Graph", - "enum": [ - "enabled", - "disabled", - "not_set" - ] + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "dependency_graph_autosubmit_action": { - "type": "string", - "description": "The enablement status of Automatic dependency submission", - "enum": [ - "enabled", - "disabled", - "not_set" - ] + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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." + { + "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" + } }, - "dependabot_alerts": { - "type": "string", - "description": "The enablement status of Dependabot alerts", - "enum": [ - "enabled", - "disabled", - "not_set" - ] + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "dependabot_security_updates": { - "type": "string", - "description": "The enablement status of Dependabot security updates", - "enum": [ - "enabled", - "disabled", - "not_set" - ] + { + "name": "X-Github-Event", + "in": "header", + "example": "secret_scanning_alert", + "schema": { + "type": "string" + } }, - "dependabot_delegated_alert_dismissal": { - "type": "string", - "nullable": true, - "description": "The enablement status of Dependabot delegated alert dismissal", - "enum": [ - "enabled", - "disabled", - "not_set" - ] + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "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" - } + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" } }, - "code_scanning_default_setup": { - "type": "string", - "description": "The enablement status of code scanning default setup", - "enum": [ - "enabled", - "disabled", - "not_set" - ] + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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'." + { + "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" + } }, - "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" - ] + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "secret_scanning_delegated_bypass": { - "type": "string", - "description": "The enablement status of secret scanning delegated bypass", - "enum": [ - "enabled", - "disabled", - "not_set" - ] + { + "name": "X-Github-Event", + "in": "header", + "example": "secret_scanning_alert", + "schema": { + "type": "string" + } }, - "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" - ] - }, - "mode": { - "type": "string", - "description": "The bypass mode for the reviewer", - "enum": [ - "ALWAYS", - "EXEMPT" - ], - "default": "ALWAYS" - }, - "security_configuration_id": { - "type": "integer", - "description": "The ID of the security configuration associated with this bypass reviewer" - } - } - } - } + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" } }, - "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" - ] + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "secret_scanning_delegated_alert_dismissal": { - "type": "string", - "description": "The enablement status of secret scanning delegated alert dismissal", - "enum": [ - "enabled", - "disabled", - "not_set" - ] + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "secret_scanning_extended_metadata": { - "type": "string", - "description": "The enablement status of secret scanning extended metadata", - "enum": [ - "enabled", - "disabled", - "not_set" - ] + { + "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" + } }, - "private_vulnerability_reporting": { - "type": "string", - "description": "The enablement status of private vulnerability reporting", - "enum": [ - "enabled", - "disabled", - "not_set" - ] + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "enforcement": { - "type": "string", - "description": "The enforcement status for a security configuration", - "enum": [ - "enforced", - "unenforced" - ] + { + "name": "X-Github-Event", + "in": "header", + "example": "secret_scanning_scan", + "schema": { + "type": "string" + } }, - "url": { - "type": "string", - "format": "uri", - "description": "The URL of the configuration" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "html_url": { - "type": "string", - "format": "uri", - "description": "The URL of the configuration" + { + "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" + } } - } - }, - "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" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-secret-scanning-scan-completed" + } + } } - } - }, - "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'." + }, + "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" + ] } - }, - "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" + } + }, + "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" } - } - } - }, - "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" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "private": { - "type": "boolean", - "description": "Whether the repository is private." + { + "name": "X-Github-Event", + "in": "header", + "example": "security_advisory", + "schema": { + "type": "string" + } }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World", - "description": "The URL to view the repository on GitHub.com." + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "description": { - "type": "string", - "example": "This your first repo!", - "nullable": true, - "description": "The repository description." + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "fork": { - "type": "boolean", - "description": "Whether the repository is a fork." + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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." + { + "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" + } }, - "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." + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-Github-Event", + "in": "header", + "example": "security_advisory", + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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." + { + "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" + } }, - "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." + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-Github-Event", + "in": "header", + "example": "security_advisory", + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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." + { + "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" + } }, - "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." + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-Github-Event", + "in": "header", + "example": "security_and_analysis", + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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." + { + "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" + } }, - "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." + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-Github-Event", + "in": "header", + "example": "sponsorship", + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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." + { + "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" + } }, - "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." + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-Github-Event", + "in": "header", + "example": "sponsorship", + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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." + { + "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" + } }, - "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." + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-Github-Event", + "in": "header", + "example": "sponsorship", + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "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." + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } } - } - }, - "copilot-usage-metrics-1-day-report": { - "type": "object", - "title": "Copilot Metrics 1 Day Report", - "description": "Links to download the Copilot usage metrics report for an enterprise/organization for a specific day.", - "properties": { - "download_links": { - "type": "array", - "items": { - "type": "string", - "format": "uri" - }, - "description": "The URLs to download the Copilot usage metrics report for the enterprise/organization for the specified day." - }, - "report_day": { - "type": "string", - "format": "date", - "description": "The day of the report in `YYYY-MM-DD` format." + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-sponsorship-edited" + } + } } }, - "required": [ - "download_links", - "report_day" - ] - }, - "copilot-usage-metrics-28-day-report": { - "type": "object", - "title": "Copilot Metrics 28 Day Report", - "description": "Links to download the latest Copilot usage metrics report for an enterprise/organization.", - "properties": { - "download_links": { - "type": "array", - "items": { - "type": "string", - "format": "uri" - }, - "description": "The URLs to download the latest Copilot usage metrics report for the enterprise/organization." - }, - "report_start_day": { - "type": "string", - "format": "date", - "description": "The start date of the report period in `YYYY-MM-DD` format." - }, - "report_end_day": { - "type": "string", - "format": "date", - "description": "The end date of the report period in `YYYY-MM-DD` format." + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" } }, - "required": [ - "download_links", - "report_start_day", - "report_end_day" - ] - }, - "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 - } + "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" }, - "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" + "parameters": [ + { + "name": "User-Agent", + "in": "header", + "example": "GitHub-Hookshot/123abc", + "schema": { + "type": "string" + } }, - "severity": { - "type": "string", - "description": "The severity of the vulnerability.", - "readOnly": true, - "enum": [ - "low", - "medium", - "high", - "critical" - ] + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "vulnerable_version_range": { - "type": "string", - "description": "Conditions that identify vulnerable versions of this vulnerability's package.", - "readOnly": true + { + "name": "X-Github-Event", + "in": "header", + "example": "sponsorship", + "schema": { + "type": "string" + } }, - "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 + { + "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" } - }, - "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 + "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" + } }, - "summary": { - "type": "string", - "description": "A short, plain text summary of the advisory.", - "readOnly": true, - "maxLength": 1024 + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "description": { - "type": "string", - "description": "A long-form Markdown-supported description of the advisory.", - "readOnly": true + { + "name": "X-Github-Event", + "in": "header", + "example": "sponsorship", + "schema": { + "type": "string" + } }, - "vulnerabilities": { - "type": "array", - "description": "Vulnerable version range information for the advisory.", - "readOnly": true, - "items": { - "$ref": "#/components/schemas/dependabot-alert-security-vulnerability" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" } }, - "severity": { - "type": "string", - "description": "The severity of the advisory.", - "readOnly": true, - "enum": [ - "low", - "medium", - "high", - "critical" - ] + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "classification": { - "type": "string", - "description": "The classification of the advisory.", - "readOnly": true, - "enum": [ - "general", - "malware" - ] + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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 + { + "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" } - }, - "required": [ - "score", - "vector_string" - ], - "additionalProperties": false - }, - "cvss_severities": { - "$ref": "#/components/schemas/cvss-severities" - }, - "epss": { - "$ref": "#/components/schemas/security-advisory-epss" + } + } + }, + "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" + } }, - "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 + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" } }, - "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 + { + "name": "X-Github-Event", + "in": "header", + "example": "sponsorship", + "schema": { + "type": "string" } }, - "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 + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" } }, - "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 + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "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 + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "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, - "x-github-breaking-changes": [ { - "changeset": "deprecate_cvss", - "patch": { - "properties": { - "cvss": null - }, - "required": [ - "ghsa_id", - "cve_id", - "summary", - "description", - "vulnerabilities", - "severity", - "cwes", - "identifiers", - "references", - "published_at", - "updated_at", - "withdrawn_at" - ] - }, - "version": "2026-03-10" + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } } - ] - }, - "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." + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/webhook-sponsorship-tier-changed" } } - }, - "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." } + }, + "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" + ] } - }, - "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", - "inconclusive" - ] - } + } + }, + "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" } }, - "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" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "created_at": { - "$ref": "#/components/schemas/alert-created-at" + { + "name": "X-Github-Event", + "in": "header", + "example": "star", + "schema": { + "type": "string" + } }, - "updated_at": { - "$ref": "#/components/schemas/alert-updated-at" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "dismissed_at": { - "$ref": "#/components/schemas/alert-dismissed-at" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "dismissed_by": { - "$ref": "#/components/schemas/nullable-simple-user" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "dismissed_reason": { - "type": "string", - "description": "The reason that the alert was dismissed.", - "nullable": true, - "enum": [ - "fix_started", - "inaccurate", - "no_bandwidth", - "not_used", - "tolerable_risk" - ] + { + "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" + } }, - "dismissed_comment": { - "type": "string", - "description": "An optional comment associated with the alert's dismissal.", - "nullable": true, - "maxLength": 280 + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "fixed_at": { - "$ref": "#/components/schemas/alert-fixed-at" + { + "name": "X-Github-Event", + "in": "header", + "example": "star", + "schema": { + "type": "string" + } }, - "auto_dismissed_at": { - "$ref": "#/components/schemas/alert-auto-dismissed-at" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "dismissal_request": { - "$ref": "#/components/schemas/dependabot-alert-dismissal-request-simple" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "assignees": { - "type": "array", - "description": "The users assigned to this alert.", - "readOnly": true, - "items": { - "$ref": "#/components/schemas/simple-user" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" } }, - "repository": { - "$ref": "#/components/schemas/simple-repository" + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } } - }, - "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" + "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": { - "type": "string" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "description": { - "type": "string" + { + "name": "X-Github-Event", + "in": "header", + "example": "status", + "schema": { + "type": "string" + } }, - "slug": { - "type": "string" + { + "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" + } }, - "sync_to_organizations": { - "type": "string", - "description": "Retired: this field will not be returned with GHEC enterprise teams.", - "example": "disabled | all" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "organization_selection_type": { - "type": "string", - "example": "disabled | selected | all" + { + "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" + } }, - "group_id": { - "nullable": true, - "type": "string", - "example": "62ab9291-fae2-468e-974b-7e45096d5021" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "group_name": { - "nullable": true, - "type": "string", - "description": "Retired: this field will not be returned with GHEC enterprise teams.", - "example": "Justice League" + { + "name": "X-Github-Event", + "in": "header", + "example": "sub_issues", + "schema": { + "type": "string" + } }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/enterprises/dc/teams/justice-league" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "members_url": { - "type": "string" + { + "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-sub-issues-parent-issue-added" + } + } } }, - "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" + "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" + } }, - "id": { - "type": "integer", - "example": 1 + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "node_id": { - "type": "string", - "example": "MDEyOk9yZ2FuaXphdGlvbjE=" + { + "name": "X-Github-Event", + "in": "header", + "example": "sub_issues", + "schema": { + "type": "string" + } }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/github" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "repos_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/github/repos" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "events_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/github/events" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "hooks_url": { - "type": "string", - "example": "https://api.github.com/orgs/github/hooks" + { + "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" + } }, - "issues_url": { - "type": "string", - "example": "https://api.github.com/orgs/github/issues" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "members_url": { - "type": "string", - "example": "https://api.github.com/orgs/github/members{/member}" + { + "name": "X-Github-Event", + "in": "header", + "example": "sub_issues", + "schema": { + "type": "string" + } }, - "public_members_url": { - "type": "string", - "example": "https://api.github.com/orgs/github/public_members{/member}" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "avatar_url": { - "type": "string", - "example": "https://github.com/images/error/octocat_happy.gif" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "description": { - "type": "string", - "example": "A great organization", - "nullable": true + { + "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" + } + } } }, - "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" + "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" + } }, - "login": { - "type": "string" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "display_login": { - "type": "string" + { + "name": "X-Github-Event", + "in": "header", + "example": "sub_issues", + "schema": { + "type": "string" + } }, - "gravatar_id": { - "type": "string", - "nullable": true + { + "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" + } }, - "avatar_url": { - "type": "string", - "format": "uri" + { + "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" + } + } } }, - "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 + "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" + } }, - "node_id": { - "type": "string", - "example": "MDU6TGFiZWwyMDgwNDU5NDY=" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "url": { - "description": "URL for the label", - "example": "https://api.github.com/repositories/42/labels/bug", - "type": "string", - "format": "uri" + { + "name": "X-Github-Event", + "in": "header", + "example": "team_add", + "schema": { + "type": "string" + } }, - "name": { - "description": "The name of the label.", - "example": "bug", - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "description": { - "description": "Optional description of the label, such as its purpose.", - "type": "string", - "example": "Something isn't working", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "color": { - "description": "6-character hex code, without the leading #, identifying the color", - "example": "FFFFFF", - "type": "string" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "default": { - "description": "Whether this label comes by default in a new repository.", - "type": "boolean", - "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-team-add" + } + } } }, - "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 + "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" + } }, - "answer_chosen_at": { - "type": "string", - "nullable": true + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "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" - ] + { + "name": "X-Github-Event", + "in": "header", + "example": "team", + "schema": { + "type": "string" + } }, - "answer_html_url": { - "type": "string", - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "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" - ] + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "body": { - "type": "string" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "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" + { + "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" } - }, - "required": [ - "id", - "repository_id", - "emoji", - "name", - "description", - "created_at", - "updated_at", - "slug", - "is_answerable" - ] - }, - "comments": { - "type": "integer" - }, - "created_at": { - "type": "string", - "format": "date-time" + } + } + }, + "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" + } }, - "html_url": { - "type": "string" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "id": { - "type": "integer" + { + "name": "X-Github-Event", + "in": "header", + "example": "team", + "schema": { + "type": "string" + } }, - "locked": { - "type": "boolean" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "node_id": { - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "number": { - "type": "integer" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "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" + { + "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" } - }, - "required": [ - "url", - "total_count", - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "eyes", - "rocket" - ] - }, - "repository_url": { - "type": "string" + } + } + }, + "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" + } }, - "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" - ] + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "state_reason": { - "description": "The reason for the current state", - "example": "resolved", - "type": "string", - "nullable": true, - "enum": [ - "resolved", - "outdated", - "duplicate", - "reopened" - ] + { + "name": "X-Github-Event", + "in": "header", + "example": "team", + "schema": { + "type": "string" + } }, - "timeline_url": { - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "title": { - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "updated_at": { - "type": "string", - "format": "date-time" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "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" + { + "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" } - }, - "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" + "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" + } }, - "open_issues": { - "type": "integer", - "example": 4 + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "closed_issues": { - "type": "integer", - "example": 8 + { + "name": "X-Github-Event", + "in": "header", + "example": "team", + "schema": { + "type": "string" + } }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-04-10T20:09:31Z" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2014-03-03T18:58:10Z" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "closed_at": { - "type": "string", - "format": "date-time", - "example": "2013-02-12T13:22:01Z", - "nullable": true + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "due_on": { - "type": "string", - "format": "date-time", - "example": "2012-10-09T23:39:01Z", - "nullable": true + { + "name": "X-Hub-Signature-256", + "in": "header", + "example": "sha256=6dcb09b5b57875f334f61aebed695e2e4193db5e", + "schema": { + "type": "string" + } } - }, - "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." + "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": { - "type": "string", - "description": "The name of the issue type." + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "description": { - "type": "string", - "description": "The description of the issue type.", - "nullable": true + { + "name": "X-Github-Event", + "in": "header", + "example": "team", + "schema": { + "type": "string" + } }, - "color": { - "type": "string", - "description": "The color of the issue type.", - "enum": [ - "gray", - "blue", - "green", - "yellow", - "orange", - "red", - "pink", - "purple" - ], - "nullable": true + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "created_at": { - "type": "string", - "description": "The time the issue type created.", - "format": "date-time" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "updated_at": { - "type": "string", - "description": "The time the issue type last updated.", - "format": "date-time" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "is_enabled": { - "type": "boolean", - "description": "The enabled state of the issue type." + { + "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" + } + } } }, - "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" + "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" + } }, - "node_id": { - "type": "string", - "example": "MDExOkludGVncmF0aW9uMQ==" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "client_id": { - "type": "string", - "example": "\"Iv1.25b5d1e65ffc4022\"" + { + "name": "X-Github-Event", + "in": "header", + "example": "watch", + "schema": { + "type": "string" + } }, - "owner": { - "oneOf": [ - { - "$ref": "#/components/schemas/simple-user" - }, - { - "$ref": "#/components/schemas/enterprise" - } - ] + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "name": { - "description": "The name of the GitHub app", - "example": "Probot Owners", - "type": "string" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "description": { - "type": "string", - "example": "The description of the app.", - "nullable": true + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "external_url": { - "type": "string", - "format": "uri", - "example": "https://example.com" + { + "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" + } }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/apps/super-ci" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2017-07-08T16:18:44-04:00" + { + "name": "X-Github-Event", + "in": "header", + "example": "workflow_dispatch", + "schema": { + "type": "string" + } }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2017-07-08T16:18:44-04:00" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "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": { + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { "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": { + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { "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" + { + "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" + } + } } }, - "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" + "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" + } }, - "+1": { - "type": "integer" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "-1": { - "type": "integer" + { + "name": "X-Github-Event", + "in": "header", + "example": "workflow_job", + "schema": { + "type": "string" + } }, - "laugh": { - "type": "integer" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "confused": { - "type": "integer" + { + "name": "X-Github-Hook-Installation-Target-Type", + "in": "header", + "example": "repository", + "schema": { + "type": "string" + } }, - "heart": { - "type": "integer" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "hooray": { - "type": "integer" - }, - "eyes": { - "type": "integer" - }, - "rocket": { - "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-workflow-job-completed" + } + } } }, - "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" + "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" + } }, - "completed": { - "type": "integer" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "percent_completed": { - "type": "integer" + { + "name": "X-Github-Event", + "in": "header", + "example": "workflow_job", + "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" + } + } } }, - "required": [ - "total", - "completed", - "percent_completed" - ] - }, - "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" + "responses": { + "200": { + "description": "Return a 200 status to indicate that the data was received successfully" } }, - "required": [ - "pinned_at", - "pinned_by" - ], - "nullable": true - }, - "nullable-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" + "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" + } }, - "node_id": { - "type": "string" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "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-Event", + "in": "header", + "example": "workflow_job", + "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-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" + } }, - "body_html": { - "type": "string" + { + "name": "X-GitHub-Delivery", + "in": "header", + "example": "0b989ba4-242f-11e5-81e1-c7b6966d2516", + "schema": { + "type": "string" + } }, - "html_url": { - "type": "string", - "format": "uri" + { + "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" + } }, - "user": { - "$ref": "#/components/schemas/nullable-simple-user" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-04-14T16:00:49Z" + { + "name": "X-Github-Event", + "in": "header", + "example": "workflow_job", + "schema": { + "type": "string" + } }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2011-04-14T16:00:49Z" + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "issue_url": { - "type": "string", - "format": "uri" + { + "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" + } }, - "performed_via_github_app": { - "$ref": "#/components/schemas/nullable-integration" + { + "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" + } }, - "reactions": { - "$ref": "#/components/schemas/reaction-rollup" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "pin": { - "$ref": "#/components/schemas/nullable-pinned-issue-comment" + { + "name": "X-Github-Event", + "in": "header", + "example": "workflow_run", + "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" + } } - }, - "required": [ - "id", - "node_id", - "html_url", - "issue_url", - "user", - "url", - "created_at", - "updated_at" ], - "nullable": true - }, - "issue-dependencies-summary": { - "title": "Issue Dependencies Summary", - "type": "object", - "properties": { - "blocked_by": { - "type": "integer" + "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" + } }, - "blocking": { - "type": "integer" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "total_blocked_by": { - "type": "integer" + { + "name": "X-Github-Event", + "in": "header", + "example": "workflow_run", + "schema": { + "type": "string" + } }, - "total_blocking": { - "type": "integer" + { + "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" + } + } } }, - "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 + "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" + } }, - "node_id": { - "type": "string", - "example": "IFT_GDKND" + { + "name": "X-Github-Hook-Id", + "in": "header", + "example": 12312312, + "schema": { + "type": "string" + } }, - "data_type": { - "description": "The data type of the issue field", - "type": "string", - "enum": [ - "text", - "single_select", - "number", - "date" - ], - "example": "text" + { + "name": "X-Github-Event", + "in": "header", + "example": "workflow_run", + "schema": { + "type": "string" + } }, - "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 + { + "name": "X-Github-Hook-Installation-Target-Id", + "in": "header", + "example": 123123, + "schema": { + "type": "string" + } }, - "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" + { + "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" } - }, - "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.", + "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": { - "id": { - "type": "integer", - "format": "int64" + "current_user_url": { + "type": "string", + "format": "uri-template" }, - "node_id": { - "type": "string" + "current_user_authorizations_html_url": { + "type": "string", + "format": "uri-template" }, - "url": { - "description": "URL for the issue", - "example": "https://api.github.com/repositories/42/issues/1", + "authorizations_url": { "type": "string", - "format": "uri" + "format": "uri-template" }, - "repository_url": { + "code_search_url": { "type": "string", - "format": "uri" + "format": "uri-template" }, - "labels_url": { - "type": "string" + "commit_search_url": { + "type": "string", + "format": "uri-template" }, - "comments_url": { + "emails_url": { "type": "string", - "format": "uri" + "format": "uri-template" + }, + "emojis_url": { + "type": "string", + "format": "uri-template" }, "events_url": { "type": "string", - "format": "uri" + "format": "uri-template" }, - "html_url": { + "feeds_url": { "type": "string", - "format": "uri" + "format": "uri-template" }, - "number": { - "description": "Number uniquely identifying the issue within its repository", - "example": 42, - "type": "integer" + "followers_url": { + "type": "string", + "format": "uri-template" }, - "state": { - "description": "State of the issue; either 'open' or 'closed'", - "example": "open", - "type": "string" + "following_url": { + "type": "string", + "format": "uri-template" }, - "state_reason": { - "description": "The reason for the current state", - "example": "not_planned", + "gists_url": { "type": "string", - "nullable": true, - "enum": [ - "completed", - "reopened", - "not_planned", - "duplicate" - ] + "format": "uri-template" }, - "title": { - "description": "Title of the issue", - "example": "Widget creation fails in Safari on OS X 10.8", - "type": "string" + "hub_url": { + "type": "string", + "format": "uri-template", + "deprecated": true }, - "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?", + "issue_search_url": { "type": "string", - "nullable": true + "format": "uri-template" }, - "user": { - "$ref": "#/components/schemas/nullable-simple-user" + "issues_url": { + "type": "string", + "format": "uri-template" }, - "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" - } - } - } - ] - } + "keys_url": { + "type": "string", + "format": "uri-template" }, - "assignee": { - "$ref": "#/components/schemas/nullable-simple-user" + "label_search_url": { + "type": "string", + "format": "uri-template" }, - "assignees": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "notifications_url": { + "type": "string", + "format": "uri-template" }, - "milestone": { - "$ref": "#/components/schemas/nullable-milestone" + "organization_url": { + "type": "string", + "format": "uri-template" }, - "locked": { - "type": "boolean" + "organization_repositories_url": { + "type": "string", + "format": "uri-template" }, - "active_lock_reason": { + "organization_teams_url": { "type": "string", - "nullable": true + "format": "uri-template" }, - "comments": { - "type": "integer" + "public_gists_url": { + "type": "string", + "format": "uri-template" }, - "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" - ] + "rate_limit_url": { + "type": "string", + "format": "uri-template" }, - "closed_at": { + "repository_url": { "type": "string", - "format": "date-time", - "nullable": true + "format": "uri-template" }, - "created_at": { + "repository_search_url": { "type": "string", - "format": "date-time" + "format": "uri-template" }, - "updated_at": { + "current_user_repositories_url": { "type": "string", - "format": "date-time" + "format": "uri-template" }, - "draft": { - "type": "boolean" + "starred_url": { + "type": "string", + "format": "uri-template" }, - "closed_by": { - "$ref": "#/components/schemas/nullable-simple-user" + "starred_gists_url": { + "type": "string", + "format": "uri-template" }, - "body_html": { - "type": "string" + "topic_search_url": { + "type": "string", + "format": "uri-template" }, - "body_text": { - "type": "string" + "user_url": { + "type": "string", + "format": "uri-template" }, - "timeline_url": { + "user_organizations_url": { "type": "string", - "format": "uri" + "format": "uri-template" }, - "type": { - "$ref": "#/components/schemas/issue-type" + "user_repositories_url": { + "type": "string", + "format": "uri-template" }, - "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", + "user_search_url": { "type": "string", - "format": "uri", - "nullable": true - }, - "pinned_comment": { - "$ref": "#/components/schemas/nullable-issue-comment" - }, - "issue_dependencies_summary": { - "$ref": "#/components/schemas/issue-dependencies-summary" - }, - "issue_field_values": { - "type": "array", - "items": { - "$ref": "#/components/schemas/issue-field-value" - } + "format": "uri-template" } }, "required": [ - "assignee", - "closed_at", - "comments", - "comments_url", + "current_user_url", + "current_user_authorizations_html_url", + "authorizations_url", + "code_search_url", + "commit_search_url", + "emails_url", + "emojis_url", "events_url", - "html_url", - "id", - "node_id", - "labels", - "labels_url", - "milestone", - "number", + "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", - "state", - "locked", - "title", - "url", - "user", - "created_at", - "updated_at" + "repository_search_url", + "current_user_repositories_url", + "starred_url", + "starred_gists_url", + "user_url", + "user_organizations_url", + "user_repositories_url", + "user_search_url" ], "x-github-breaking-changes": [ { - "changeset": "deprecate_beta_media_type", - "patch": { - "properties": { - "pull_request": { - "type": "object", - "properties": { - "merged_at": { - "nullable": false - }, - "diff_url": { - "nullable": false - }, - "html_url": { - "nullable": false - }, - "patch_url": { - "nullable": false - }, - "url": { - "nullable": false - } - } - } + "changeset": "remove_authorizations_url_from_api_root", + "patch": [ + { + "op": "remove", + "path": "/properties/authorizations_url" + }, + { + "op": "remove", + "path": "/required/2" } - }, + ], "version": "2026-03-10" }, { - "changeset": "remove_singular_assignee_from_issues_and_pull_requests", + "changeset": "remove_hub_url_from_api_root", "patch": { "properties": { - "assignee": null - }, - "required": [ - "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" - ] + "hub_url": null + } }, "version": "2026-03-10" } ] }, - "issue-comment": { - "title": "Issue Comment", - "description": "Comments provide a way for people to collaborate on an issue.", + "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": { - "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" + "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" + ] }, - "updated_at": { + "vulnerable_version_range": { "type": "string", - "format": "date-time", - "example": "2011-04-14T16:00:49Z" + "description": "The range of the package versions affected by the vulnerability.", + "nullable": true }, - "issue_url": { + "first_patched_version": { "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" + "description": "The package version that resolves the vulnerability.", + "nullable": true }, - "pin": { - "$ref": "#/components/schemas/nullable-pinned-issue-comment" + "vulnerable_functions": { + "type": "array", + "description": "The functions in the package that are affected by the vulnerability.", + "nullable": true, + "readOnly": true, + "items": { + "type": "string" + } } }, "required": [ - "id", - "node_id", - "html_url", - "issue_url", - "user", - "url", - "created_at", - "updated_at" + "package", + "vulnerable_version_range", + "first_patched_version", + "vulnerable_functions" ] }, - "pull-request-minimal": { - "title": "Pull Request Minimal", + "cvss-severities": { "type": "object", + "nullable": true, "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "number": { - "type": "integer" - }, - "url": { - "type": "string" - }, - "head": { + "cvss_v3": { "type": "object", + "nullable": true, "properties": { - "ref": { - "type": "string" - }, - "sha": { - "type": "string" + "vector_string": { + "type": "string", + "description": "The CVSS 3 vector string.", + "nullable": true }, - "repo": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "url": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "url", - "name" - ] + "score": { + "type": "number", + "description": "The CVSS 3 score.", + "minimum": 0, + "maximum": 10, + "nullable": true, + "readOnly": true } }, "required": [ - "ref", - "sha", - "repo" + "vector_string", + "score" ] }, - "base": { + "cvss_v4": { "type": "object", + "nullable": true, "properties": { - "ref": { - "type": "string" - }, - "sha": { - "type": "string" + "vector_string": { + "type": "string", + "description": "The CVSS 4 vector string.", + "nullable": true }, - "repo": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "url": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "id", - "url", - "name" - ] + "score": { + "type": "number", + "description": "The CVSS 4 score.", + "minimum": 0, + "maximum": 10, + "nullable": true, + "readOnly": true } }, "required": [ - "ref", - "sha", - "repo" + "vector_string", + "score" ] } - }, - "required": [ - "id", - "number", - "url", - "head", - "base" - ] + } }, - "release-asset": { - "title": "Release Asset", - "description": "Data related to a release.", + "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": { - "url": { - "type": "string", - "format": "uri" + "percentage": { + "type": "number", + "minimum": 0, + "maximum": 100 }, - "browser_download_url": { + "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", - "format": "uri" + "example": "octocat" }, "id": { - "type": "integer" + "type": "integer", + "format": "int64", + "example": 1 }, "node_id": { - "type": "string" + "type": "string", + "example": "MDQ6VXNlcjE=" }, - "name": { - "description": "The file name of the asset.", + "avatar_url": { "type": "string", - "example": "Team Environment" + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" }, - "label": { + "gravatar_id": { "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", "nullable": true }, - "state": { - "description": "State of the release asset.", + "url": { "type": "string", - "enum": [ - "uploaded", - "open" - ] + "format": "uri", + "example": "https://api.github.com/users/octocat" }, - "content_type": { - "type": "string" + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" }, - "size": { - "type": "integer" + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" }, - "digest": { + "following_url": { "type": "string", - "nullable": true + "example": "https://api.github.com/users/octocat/following{/other_user}" }, - "download_count": { - "type": "integer" + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" }, - "created_at": { + "starred_url": { "type": "string", - "format": "date-time" + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" }, - "updated_at": { + "subscriptions_url": { "type": "string", - "format": "date-time" + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" }, - "uploader": { - "$ref": "#/components/schemas/nullable-simple-user" + "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", - "name", - "content_type", - "size", - "digest", - "state", - "url", "node_id", - "download_count", - "label", - "uploader", - "browser_download_url", - "created_at", - "updated_at" + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" ] }, - "release": { - "title": "Release", - "description": "A release.", + "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": { - "url": { + "ghsa_id": { "type": "string", - "format": "uri" + "description": "The GitHub Security Advisory ID.", + "readOnly": true }, - "html_url": { + "cve_id": { "type": "string", - "format": "uri" + "description": "The Common Vulnerabilities and Exposures (CVE) ID.", + "nullable": true, + "readOnly": true }, - "assets_url": { + "url": { "type": "string", - "format": "uri" - }, - "upload_url": { - "type": "string" + "description": "The API URL for the advisory.", + "readOnly": true }, - "tarball_url": { + "html_url": { "type": "string", "format": "uri", - "nullable": true + "description": "The URL for the advisory.", + "readOnly": true }, - "zipball_url": { + "repository_advisory_url": { "type": "string", "format": "uri", + "description": "The API URL for the repository advisory.", + "readOnly": true, "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": { + "summary": { "type": "string", - "nullable": true + "description": "A short summary of the advisory.", + "maxLength": 1024 }, - "body": { + "description": { "type": "string", + "description": "A detailed description of what the advisory entails.", + "maxLength": 65535, "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" + "type": { + "type": "string", + "description": "The type of advisory.", + "readOnly": true, + "enum": [ + "reviewed", + "unreviewed", + "malware" + ] }, - "created_at": { + "severity": { "type": "string", - "format": "date-time" + "description": "The severity of the advisory.", + "enum": [ + "critical", + "high", + "medium", + "low", + "unknown" + ] }, - "published_at": { + "source_code_location": { "type": "string", - "format": "date-time", + "format": "uri", + "description": "The URL of the advisory's source code.", "nullable": true }, - "updated_at": { - "type": "string", + "identifiers": { + "type": "array", "nullable": true, - "format": "date-time" - }, - "author": { - "$ref": "#/components/schemas/simple-user" + "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" + ] + } }, - "assets": { + "references": { "type": "array", + "nullable": true, "items": { - "$ref": "#/components/schemas/release-asset" + "type": "string", + "description": "URLs with more information regarding the advisory." } }, - "body_html": { - "type": "string" - }, - "body_text": { - "type": "string" + "published_at": { + "type": "string", + "format": "date-time", + "description": "The date and time of when the advisory was published, in ISO 8601 format.", + "readOnly": true }, - "mentions_count": { - "type": "integer" + "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 }, - "discussion_url": { - "description": "The URL of the release discussion.", + "github_reviewed_at": { "type": "string", - "format": "uri" + "format": "date-time", + "description": "The date and time of when the advisory was reviewed by GitHub, in ISO 8601 format.", + "readOnly": true, + "nullable": true }, - "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" + "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 }, - "type": { + "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 }, - "actor": { - "$ref": "#/components/schemas/actor" + "vulnerabilities": { + "type": "array", + "description": "The products and respective version ranges affected by the advisory.", + "nullable": true, + "items": { + "$ref": "#/components/schemas/vulnerability" + } }, - "repo": { + "cvss": { "type": "object", + "nullable": true, "properties": { - "id": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "url": { + "vector_string": { "type": "string", - "format": "uri" + "description": "The CVSS vector.", + "nullable": true + }, + "score": { + "type": "number", + "description": "The CVSS score.", + "minimum": 0, + "maximum": 10, + "nullable": true, + "readOnly": true } }, "required": [ - "id", - "name", - "url" + "vector_string", + "score" ] }, - "org": { - "$ref": "#/components/schemas/actor" + "cvss_severities": { + "$ref": "#/components/schemas/cvss-severities" }, - "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" - } - ] + "epss": { + "$ref": "#/components/schemas/security-advisory-epss" }, - "public": { - "type": "boolean" + "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" + ] + } }, - "created_at": { - "type": "string", - "format": "date-time", - "nullable": true + "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": [ - "id", + "ghsa_id", + "cve_id", + "url", + "html_url", + "repository_advisory_url", + "summary", + "description", "type", - "actor", - "repo", - "payload", - "public", - "created_at" + "severity", + "source_code_location", + "identifiers", + "references", + "published_at", + "updated_at", + "github_reviewed_at", + "nvd_published_at", + "withdrawn_at", + "vulnerabilities", + "cvss", + "cwes", + "credits" + ], + "additionalProperties": false, + "x-github-breaking-changes": [ + { + "changeset": "deprecate_cvss", + "patch": { + "properties": { + "cvss": null + }, + "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", + "cwes", + "credits" + ] + }, + "version": "2026-03-10" + } ] }, - "link-with-type": { - "title": "Link With Type", - "description": "Hypermedia Link with Type", + "basic-error": { + "title": "Basic Error", + "description": "Basic Error", "type": "object", "properties": { - "href": { + "message": { "type": "string" }, - "type": { + "documentation_url": { + "type": "string" + }, + "url": { + "type": "string" + }, + "status": { "type": "string" } - }, + } + }, + "validation-error-simple": { + "title": "Validation Error Simple", + "description": "Validation Error Simple", + "type": "object", "required": [ - "href", - "type" - ] + "message", + "documentation_url" + ], + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + }, + "errors": { + "type": "array", + "items": { + "type": "string" + } + } + } }, - "feed": { - "title": "Feed", - "description": "Feed", + "enterprise": { + "title": "Enterprise", + "description": "An enterprise on GitHub.", "type": "object", "properties": { - "timeline_url": { + "description": { + "description": "A short description of the enterprise.", "type": "string", - "example": "https://github.com/timeline" + "nullable": true }, - "user_url": { + "html_url": { "type": "string", - "example": "https://github.com/{user}" + "format": "uri", + "example": "https://github.com/enterprises/octo-business" }, - "current_user_public_url": { + "website_url": { + "description": "The enterprise's website URL.", "type": "string", - "example": "https://github.com/octocat" + "nullable": true, + "format": "uri" }, - "current_user_url": { - "type": "string", - "example": "https://github.com/octocat.private?token=abc123" + "id": { + "description": "Unique identifier of the enterprise", + "example": 42, + "type": "integer" }, - "current_user_actor_url": { + "node_id": { "type": "string", - "example": "https://github.com/octocat.private.actor?token=abc123" + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" }, - "current_user_organization_url": { + "name": { + "description": "The name of the enterprise.", "type": "string", - "example": "https://github.com/octocat-org" + "example": "Octo Business" }, - "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": { + "slug": { + "description": "The slug url identifier for the enterprise.", "type": "string", - "example": "https://github.com/security-advisories" + "example": "octo-business" }, - "repository_discussions_url": { + "created_at": { "type": "string", - "example": "https://github.com/{user}/{repo}/discussions", - "description": "A feed of discussions for a given repository." + "nullable": true, + "format": "date-time", + "example": "2019-01-26T19:01:12Z" }, - "repository_discussions_category_url": { + "updated_at": { "type": "string", - "example": "https://github.com/{user}/{repo}/discussions/categories/{category}", - "description": "A feed of discussions for a given repository and category." + "nullable": true, + "format": "date-time", + "example": "2019-01-26T19:14:43Z" }, - "_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" - ] + "avatar_url": { + "type": "string", + "format": "uri" } }, "required": [ - "_links", - "timeline_url", - "user_url" + "id", + "node_id", + "name", + "slug", + "html_url", + "created_at", + "updated_at", + "avatar_url" ] }, - "base-gist": { - "title": "Base Gist", - "description": "Base Gist", + "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": { - "url": { - "type": "string", - "format": "uri" + "id": { + "description": "Unique identifier of the GitHub app", + "example": 37, + "type": "integer" }, - "forks_url": { + "slug": { + "description": "The slug name of the GitHub app", + "example": "probot-owners", + "type": "string" + }, + "node_id": { "type": "string", - "format": "uri" + "example": "MDExOkludGVncmF0aW9uMQ==" }, - "commits_url": { + "client_id": { "type": "string", - "format": "uri" + "example": "\"Iv1.25b5d1e65ffc4022\"" }, - "id": { - "type": "string" + "owner": { + "oneOf": [ + { + "$ref": "#/components/schemas/simple-user" + }, + { + "$ref": "#/components/schemas/enterprise" + } + ] }, - "node_id": { + "name": { + "description": "The name of the GitHub app", + "example": "Probot Owners", "type": "string" }, - "git_pull_url": { + "description": { "type": "string", - "format": "uri" + "example": "The description of the app.", + "nullable": true }, - "git_push_url": { + "external_url": { "type": "string", - "format": "uri" + "format": "uri", + "example": "https://example.com" }, "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" + "format": "uri", + "example": "https://github.com/apps/super-ci" }, "created_at": { "type": "string", - "format": "date-time" + "format": "date-time", + "example": "2017-07-08T16:18:44-04:00" }, "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" + "format": "date-time", + "example": "2017-07-08T16:18:44-04:00" }, - "truncated": { - "type": "boolean" + "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" + } }, - "forks": { + "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": {} + "items": { + "type": "string" + } }, - "history": { - "type": "array", - "items": {} + "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", - "url", - "forks_url", - "commits_url", - "git_pull_url", - "git_push_url", - "html_url", - "comments_url", - "public", + "owner", + "name", "description", - "comments", - "user", - "files", + "external_url", + "html_url", "created_at", - "updated_at" - ], - "x-github-breaking-changes": [ + "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": [ { - "changeset": "deprecate_beta_media_type", - "patch": { - "properties": { - "user": null - }, - "required": [ - "id", - "node_id", - "url", - "forks_url", - "commits_url", - "git_pull_url", - "git_push_url", - "html_url", - "comments_url", - "public", - "description", - "comments", - "files", - "created_at", - "updated_at" - ] - }, - "version": "2026-03-10" + "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\"" }, { - "changeset": "remove_forks_history_from_base_gist", - "patch": [ - { - "op": "remove", - "path": "/properties/forks" - }, - { - "op": "remove", - "path": "/properties/history" - } - ], - "version": "2026-03-10" + "type": "number" } ] }, - "public-user": { - "title": "Public User", - "description": "Public User", + "webhook-config": { + "title": "Webhook Configuration", + "description": "Configuration object of the webhook", "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" + "$ref": "#/components/schemas/webhook-config-url" }, - "following_url": { - "type": "string" + "content_type": { + "$ref": "#/components/schemas/webhook-config-content-type" }, - "gists_url": { - "type": "string" + "secret": { + "$ref": "#/components/schemas/webhook-config-secret" }, - "starred_url": { - "type": "string" + "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 }, - "subscriptions_url": { + "guid": { + "description": "Unique identifier for the event (shared with all deliveries for all webhooks that subscribe to this event).", "type": "string", - "format": "uri" + "example": "58474f00-b361-11eb-836d-0e4f3503ccbe" }, - "organizations_url": { + "delivered_at": { + "description": "Time when the webhook delivery occurred.", "type": "string", - "format": "uri" + "format": "date-time", + "example": "2021-05-12T20:33:44Z" }, - "repos_url": { - "type": "string", - "format": "uri" + "redelivery": { + "description": "Whether the webhook delivery is a redelivery.", + "type": "boolean", + "example": false }, - "events_url": { - "type": "string" + "duration": { + "description": "Time spent delivering.", + "type": "number", + "example": 0.03 }, - "received_events_url": { + "status": { + "description": "Describes the response returned after attempting the delivery.", "type": "string", - "format": "uri" - }, - "type": { - "type": "string" + "example": "failed to connect" }, - "site_admin": { - "type": "boolean" + "status_code": { + "description": "Status code received when delivery was made.", + "type": "integer", + "example": 502 }, - "name": { + "event": { + "description": "The event that triggered the delivery.", "type": "string", - "nullable": true + "example": "issues" }, - "company": { + "action": { + "description": "The type of activity for the event that triggered the delivery.", "type": "string", + "example": "opened", "nullable": true }, - "blog": { - "type": "string", + "installation_id": { + "description": "The id of the GitHub App installation associated with this event.", + "type": "integer", + "format": "int64", + "example": 123, "nullable": true }, - "location": { - "type": "string", + "repository_id": { + "description": "The id of the repository associated with this event.", + "type": "integer", + "format": "int64", + "example": 123, "nullable": true }, - "email": { + "throttled_at": { + "description": "Time when the webhook delivery was throttled.", "type": "string", - "format": "email", + "format": "date-time", + "example": "2021-05-12T20:33:44Z", "nullable": true - }, - "notification_email": { + } + }, + "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", - "format": "email", - "nullable": true - }, - "hireable": { - "type": "boolean", "nullable": true }, - "bio": { + "documentation_url": { "type": "string", "nullable": true }, - "twitter_username": { + "detail": { "type": "string", "nullable": true }, - "public_repos": { - "type": "integer" - }, - "public_gists": { - "type": "integer" - }, - "followers": { - "type": "integer" - }, - "following": { + "status": { "type": "integer" }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { + "scimType": { "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 + "nullable": true }, - "collaborators": { - "type": "integer", - "example": 3 + "schemas": { + "type": "array", + "items": { + "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" - ], - "additionalProperties": false + } }, - "gist-history": { - "title": "Gist History", - "description": "Gist History", + "validation-error": { + "title": "Validation Error", + "description": "Validation Error", "type": "object", + "required": [ + "message", + "documentation_url" + ], "properties": { - "user": { - "$ref": "#/components/schemas/nullable-simple-user" - }, - "version": { + "message": { "type": "string" }, - "committed_at": { - "type": "string", - "format": "date-time" - }, - "change_status": { - "type": "object", - "properties": { - "total": { - "type": "integer" - }, - "additions": { - "type": "integer" - }, - "deletions": { - "type": "integer" - } - } + "documentation_url": { + "type": "string" }, - "url": { - "type": "string", - "format": "uri" - } - } - }, - "gist-simple": { - "title": "Gist Simple", - "description": "Gist Simple", - "type": "object", - "properties": { - "forks": { - "deprecated": true, - "nullable": true, + "errors": { "type": "array", "items": { "type": "object", + "required": [ + "code" + ], "properties": { - "id": { + "resource": { "type": "string" }, - "url": { - "type": "string", - "format": "uri" + "field": { + "type": "string" }, - "user": { - "$ref": "#/components/schemas/public-user" + "message": { + "type": "string" }, - "created_at": { - "type": "string", - "format": "date-time" + "code": { + "type": "string" }, - "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" + "index": { + "type": "integer" + }, + "value": { + "oneOf": [ + { + "type": "string", + "nullable": true }, - "raw_url": { - "type": "string" + { + "type": "integer", + "nullable": true }, - "size": { - "type": "integer" + { + "type": "array", + "nullable": true, + "items": { + "type": "string" + } } - } + ] } - }, - "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" - }, + } + } + } + }, + "hook-delivery": { + "title": "Webhook delivery", + "description": "Delivery made by a webhook.", + "type": "object", + "properties": { "id": { - "type": "string" - }, - "node_id": { - "type": "string" + "description": "Unique identifier of the delivery.", + "type": "integer", + "example": 42 }, - "git_pull_url": { - "type": "string" + "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" }, - "git_push_url": { - "type": "string" + "delivered_at": { + "description": "Time when the delivery was delivered.", + "type": "string", + "format": "date-time", + "example": "2021-05-12T20:33:44Z" }, - "html_url": { - "type": "string" + "redelivery": { + "description": "Whether the delivery is a redelivery.", + "type": "boolean", + "example": false }, - "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" - } - } - } + "duration": { + "description": "Time spent delivering.", + "type": "number", + "example": 0.03 }, - "public": { - "type": "boolean" + "status": { + "description": "Description of the status of the attempted delivery", + "type": "string", + "example": "failed to connect" }, - "created_at": { - "type": "string" + "status_code": { + "description": "Status code received when delivery was made.", + "type": "integer", + "example": 502 }, - "updated_at": { - "type": "string" + "event": { + "description": "The event that triggered the delivery.", + "type": "string", + "example": "issues" }, - "description": { + "action": { + "description": "The type of activity for the event that triggered the delivery.", "type": "string", + "example": "opened", "nullable": true }, - "comments": { - "type": "integer" + "installation_id": { + "description": "The id of the GitHub App installation associated with this event.", + "type": "integer", + "example": 123, + "nullable": true }, - "comments_enabled": { - "type": "boolean" + "repository_id": { + "description": "The id of the repository associated with this event.", + "type": "integer", + "example": 123, + "nullable": true }, - "user": { + "throttled_at": { + "description": "Time when the webhook delivery was throttled.", "type": "string", + "format": "date-time", + "example": "2021-05-12T20:33:44Z", "nullable": true }, - "comments_url": { - "type": "string" + "url": { + "description": "The URL target of the delivery.", + "type": "string", + "example": "https://www.example.com" }, - "owner": { - "$ref": "#/components/schemas/simple-user" + "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" + ] }, - "truncated": { - "type": "boolean" - } - }, - "x-github-breaking-changes": [ - { - "changeset": "remove_forks_history_from_base_gist", - "patch": [ - { - "op": "remove", - "path": "/properties/forks" + "response": { + "type": "object", + "properties": { + "headers": { + "description": "The response headers received when the delivery was made.", + "type": "object", + "nullable": true, + "additionalProperties": true }, - { - "op": "remove", - "path": "/properties/history" + "payload": { + "description": "The response payload received.", + "type": "string", + "nullable": true, + "additionalProperties": true } - ], - "version": "2026-03-10" + }, + "required": [ + "headers", + "payload" + ] } + }, + "required": [ + "id", + "guid", + "delivered_at", + "redelivery", + "duration", + "status", + "status_code", + "event", + "action", + "installation_id", + "repository_id", + "request", + "response" ] }, - "gist-comment": { - "title": "Gist Comment", - "description": "A comment made to a gist.", + "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": 1 + "example": 42 }, "node_id": { "type": "string", - "example": "MDExOkdpc3RDb21tZW50MQ==" - }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/gists/a6db0bec360bb87e9418/comments/1" + "example": "MDExOkludGVncmF0aW9uMQ==" }, - "body": { - "description": "The comment text.", - "type": "string", - "maxLength": 65535, - "example": "Body of the attachment" + "account": { + "anyOf": [ + { + "$ref": "#/components/schemas/simple-user" + }, + { + "$ref": "#/components/schemas/enterprise" + } + ] }, - "user": { - "$ref": "#/components/schemas/nullable-simple-user" + "requester": { + "$ref": "#/components/schemas/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" + "example": "2022-07-08T16:18:44-04:00" } }, "required": [ - "url", "id", - "node_id", - "user", - "body", - "author_association", - "created_at", - "updated_at" + "account", + "requester", + "created_at" ] }, - "gist-commit": { - "title": "Gist Commit", - "description": "Gist Commit", + "app-permissions": { + "title": "App Permissions", "type": "object", + "description": "The permissions granted to the fine-grained access token.", "properties": { - "url": { + "actions": { "type": "string", - "format": "uri", - "example": "https://api.github.com/gists/aa5a315d61ae9438b18d/57a7f021a713b1c5a6a199b54cc514735d2d462f" + "description": "The level of permission to grant the access token for GitHub Actions workflows, workflow runs, and artifacts.", + "enum": [ + "read", + "write" + ] }, - "version": { + "administration": { "type": "string", - "example": "57a7f021a713b1c5a6a199b54cc514735d2d462f" + "description": "The level of permission to grant the access token for repository creation, deletion, settings, teams, and collaborators creation.", + "enum": [ + "read", + "write" + ] }, - "user": { - "$ref": "#/components/schemas/nullable-simple-user" + "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" + ] }, - "change_status": { - "type": "object", - "properties": { - "total": { - "type": "integer" - }, - "additions": { - "type": "integer" - }, - "deletions": { - "type": "integer" - } - } + "attestations": { + "type": "string", + "description": "The level of permission to create and retrieve the access token for repository attestations.", + "enum": [ + "read", + "write" + ] }, - "committed_at": { + "checks": { "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": { + "description": "The level of permission to grant the access token for checks on code.", + "enum": [ + "read", + "write" + ] + }, + "code_quality": { "type": "string", - "example": "C" + "description": "The level of permission to grant the access token to view and manage code quality data.", + "enum": [ + "read", + "write" + ] }, - "source": { + "codespaces": { "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": { + "description": "The level of permission to grant the access token to create, edit, delete, and list Codespaces.", + "enum": [ + "read", + "write" + ] + }, + "contents": { "type": "string", - "example": "mit" + "description": "The level of permission to grant the access token for repository contents, commits, branches, downloads, releases, and merges.", + "enum": [ + "read", + "write" + ] }, - "name": { + "dependabot_secrets": { "type": "string", - "example": "MIT License" + "description": "The level of permission to grant the access token to manage Dependabot secrets.", + "enum": [ + "read", + "write" + ] }, - "url": { + "deployments": { "type": "string", - "nullable": true, - "format": "uri", - "example": "https://api.github.com/licenses/mit" + "description": "The level of permission to grant the access token for deployments and deployment statuses.", + "enum": [ + "read", + "write" + ] }, - "spdx_id": { + "discussions": { "type": "string", - "nullable": true, - "example": "MIT" + "description": "The level of permission to grant the access token for discussions and related comments and labels.", + "enum": [ + "read", + "write" + ] }, - "node_id": { + "environments": { "type": "string", - "example": "MDc6TGljZW5zZW1pdA==" + "description": "The level of permission to grant the access token for managing repository environments.", + "enum": [ + "read", + "write" + ] }, - "html_url": { + "issues": { "type": "string", - "format": "uri" + "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": [ + "read", + "write" + ] + }, + "organization_copilot_agent_settings": { + "type": "string", + "description": "The level of permission to grant the access token to view and manage Copilot cloud agent settings for an organization.", + "enum": [ + "read", + "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" + ] } }, - "required": [ - "key", - "name", - "url", - "spdx_id", - "node_id" - ] + "example": { + "contents": "read", + "issues": "read", + "deployments": "write", + "single_file": "read" + } }, - "license": { - "title": "License", - "description": "License", + "nullable-simple-user": { + "title": "Simple User", + "description": "A GitHub user.", "type": "object", "properties": { - "key": { + "name": { + "nullable": true, + "type": "string" + }, + "email": { + "nullable": true, + "type": "string" + }, + "login": { "type": "string", - "example": "mit" + "example": "octocat" }, - "name": { + "id": { + "type": "integer", + "format": "int64", + "example": 1 + }, + "node_id": { "type": "string", - "example": "MIT License" + "example": "MDQ6VXNlcjE=" }, - "spdx_id": { + "avatar_url": { "type": "string", - "example": "MIT", + "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/licenses/mit", - "nullable": true + "example": "https://api.github.com/users/octocat" }, - "node_id": { + "html_url": { "type": "string", - "example": "MDc6TGljZW5zZW1pdA==" + "format": "uri", + "example": "https://github.com/octocat" }, - "html_url": { + "followers_url": { "type": "string", "format": "uri", - "example": "http://choosealicense.com/licenses/mit/" + "example": "https://api.github.com/users/octocat/followers" }, - "description": { + "following_url": { "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." + "example": "https://api.github.com/users/octocat/following{/other_user}" }, - "implementation": { + "gists_url": { "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." + "example": "https://api.github.com/users/octocat/gists{/gist_id}" }, - "permissions": { - "type": "array", - "example": [ - "commercial-use", - "modifications", - "distribution", - "sublicense", - "private-use" - ], - "items": { - "type": "string" - } + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" }, - "conditions": { - "type": "array", - "example": [ - "include-copyright" - ], - "items": { - "type": "string" - } + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" }, - "limitations": { - "type": "array", - "example": [ - "no-liability" - ], - "items": { - "type": "string" - } + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" }, - "body": { + "repos_url": { "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" + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" }, - "featured": { - "type": "boolean", - "example": true + "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": [ - "key", - "name", - "url", - "spdx_id", - "node_id", + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", "html_url", - "description", - "implementation", - "permissions", - "conditions", - "limitations", - "body", - "featured" - ] + "id", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" + ], + "nullable": true }, - "marketplace-listing-plan": { - "title": "Marketplace Listing Plan", - "description": "Marketplace Listing Plan", + "installation": { + "title": "Installation", + "description": "Installation", "type": "object", "properties": { - "url": { + "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/marketplace_listing/plans/1313" + "example": "https://api.github.com/app/installations/1/access_tokens" }, - "accounts_url": { + "repositories_url": { "type": "string", "format": "uri", - "example": "https://api.github.com/marketplace_listing/plans/1313/accounts" + "example": "https://api.github.com/installation/repositories" }, - "id": { - "type": "integer", - "example": 1313 + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/organizations/github/settings/installations/1" }, - "number": { + "app_id": { "type": "integer", - "example": 3 + "example": 1 }, - "name": { + "client_id": { "type": "string", - "example": "Pro" + "example": "Iv1.ab1112223334445c" }, - "description": { + "target_id": { + "description": "The ID of the user or organization this token is being scoped to.", + "type": "integer" + }, + "target_type": { "type": "string", - "example": "A professional-grade CI solution" + "example": "Organization" }, - "monthly_price_in_cents": { - "type": "integer", - "example": 1099 + "permissions": { + "$ref": "#/components/schemas/app-permissions" }, - "yearly_price_in_cents": { - "type": "integer", - "example": 11870 + "events": { + "type": "array", + "items": { + "type": "string" + } }, - "price_model": { + "created_at": { "type": "string", - "enum": [ - "FREE", - "FLAT_RATE", - "PER_UNIT" - ], - "example": "FLAT_RATE" + "format": "date-time" }, - "has_free_trial": { - "type": "boolean", - "example": true + "updated_at": { + "type": "string", + "format": "date-time" }, - "unit_name": { + "single_file_name": { "type": "string", + "example": "config.yaml", "nullable": true }, - "state": { - "type": "string", - "example": "published" + "has_multiple_single_files": { + "type": "boolean", + "example": true }, - "bullets": { + "single_file_paths": { "type": "array", "items": { "type": "string" }, "example": [ - "Up to 25 private repositories", - "11 concurrent builds" + "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": [ - "url", - "accounts_url", "id", - "number", - "name", - "description", - "has_free_trial", - "price_model", - "unit_name", - "monthly_price_in_cents", - "state", - "yearly_price_in_cents", - "bullets" + "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" ] }, - "marketplace-purchase": { - "title": "Marketplace Purchase", - "description": "Marketplace Purchase", + "nullable-license-simple": { + "title": "License Simple", + "description": "License Simple", "type": "object", "properties": { - "url": { - "type": "string" - }, - "type": { - "type": "string" - }, - "id": { - "type": "integer" + "key": { + "type": "string", + "example": "mit" }, - "login": { - "type": "string" + "name": { + "type": "string", + "example": "MIT License" }, - "organization_billing_email": { - "type": "string" + "url": { + "type": "string", + "nullable": true, + "format": "uri", + "example": "https://api.github.com/licenses/mit" }, - "email": { + "spdx_id": { "type": "string", - "nullable": true + "nullable": true, + "example": "MIT" }, - "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 + "node_id": { + "type": "string", + "example": "MDc6TGljZW5zZW1pdA==" }, - "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" - } - } + "html_url": { + "type": "string", + "format": "uri" } }, "required": [ + "key", + "name", "url", - "id", - "type", - "login", - "marketplace_purchase" - ] + "spdx_id", + "node_id" + ], + "nullable": true }, - "api-overview": { - "title": "Api Overview", - "description": "Api Overview", + "repository": { + "title": "Repository", + "description": "A repository on GitHub.", "type": "object", "properties": { - "verifiable_password_authentication": { - "type": "boolean", - "example": true + "id": { + "description": "Unique identifier of the repository", + "example": 42, + "type": "integer", + "format": "int64" }, - "ssh_key_fingerprints": { + "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": { - "SHA256_RSA": { - "type": "string" + "admin": { + "type": "boolean" }, - "SHA256_DSA": { - "type": "string" + "pull": { + "type": "boolean" }, - "SHA256_ECDSA": { - "type": "string" + "triage": { + "type": "boolean" }, - "SHA256_ED25519": { - "type": "string" + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" } - } - }, - "ssh_keys": { - "type": "array", - "items": { - "type": "string" }, - "example": [ - "ssh-ed25519 ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "required": [ + "admin", + "pull", + "push" ] }, - "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" - ] - } - } - }, - "secret_scanning_delegated_bypass": { - "type": "object", - "properties": { - "status": { - "type": "string", - "enum": [ - "enabled", - "disabled" - ] - } - } - }, - "secret_scanning_delegated_bypass_options": { - "type": "object", - "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" - ] - }, - "mode": { - "type": "string", - "description": "The bypass mode for the reviewer", - "enum": [ - "ALWAYS", - "EXEMPT" - ], - "default": "ALWAYS" - } - } - } - } - } - } - } - }, - "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" + "owner": { + "$ref": "#/components/schemas/simple-user" }, "private": { + "description": "Whether the repository is private or public.", + "default": false, "type": "boolean" }, "html_url": { @@ -114977,7 +120095,8 @@ "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" }, "git_url": { - "type": "string" + "type": "string", + "example": "git:github.com/octocat/Hello-World.git" }, "issue_comment_url": { "type": "string", @@ -115026,7 +120145,8 @@ "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" }, "ssh_url": { - "type": "string" + "type": "string", + "example": "git@github.com:octocat/Hello-World.git" }, "stargazers_url": { "type": "string", @@ -115062,10 +120182,13 @@ "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" }, "clone_url": { - "type": "string" + "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": { @@ -115074,10 +120197,14 @@ "example": "http://api.github.com/repos/octocat/Hello-World/hooks" }, "svn_url": { - "type": "string" + "type": "string", + "format": "uri", + "example": "https://svn.github.com/octocat/Hello-World" }, "homepage": { "type": "string", + "format": "uri", + "example": "https://github.com", "nullable": true }, "language": { @@ -115085,26 +120212,36 @@ "nullable": true }, "forks_count": { - "type": "integer" + "type": "integer", + "example": 9 }, "stargazers_count": { - "type": "integer" + "type": "integer", + "example": 80 }, "watchers_count": { - "type": "integer" + "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" + "type": "integer", + "example": 108 }, "default_branch": { - "type": "string" + "description": "The default branch of the repository.", + "type": "string", + "example": "master" }, "open_issues_count": { - "type": "integer" + "type": "integer", + "example": 0 }, "is_template": { - "type": "boolean" + "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", @@ -115113,25 +120250,44 @@ } }, "has_issues": { - "type": "boolean" + "description": "Whether issues are enabled.", + "default": true, + "type": "boolean", + "example": true }, "has_projects": { - "type": "boolean" + "description": "Whether projects are enabled.", + "default": true, + "type": "boolean", + "example": true }, "has_wiki": { - "type": "boolean" + "description": "Whether the wiki is enabled.", + "default": true, + "type": "boolean", + "example": true }, "has_pages": { "type": "boolean" }, "has_downloads": { - "type": "boolean" + "description": "Whether downloads are enabled.", + "default": true, + "type": "boolean", + "example": true, + "deprecated": true }, "has_discussions": { - "type": "boolean" + "description": "Whether discussions are enabled.", + "default": false, + "type": "boolean", + "example": true }, "has_pull_requests": { - "type": "boolean" + "description": "Whether pull requests are enabled.", + "default": true, + "type": "boolean", + "example": true }, "pull_request_creation_policy": { "description": "The policy controlling who can create pull requests: all or collaborators_only.", @@ -115139,15 +120295,21 @@ "enum": [ "all", "collaborators_only" - ] + ], + "example": "all" }, "archived": { + "description": "Whether the repository is archived.", + "default": false, "type": "boolean" }, "disabled": { - "type": "boolean" + "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": { @@ -115168,93 +120330,122 @@ "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" + "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": { - "type": "boolean" + "description": "Whether to delete head branches when pull requests are merged", + "default": false, + "type": "boolean", + "example": false }, - "subscribers_count": { - "type": "integer" + "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 }, - "network_count": { - "type": "integer" + "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 }, - "code_of_conduct": { - "$ref": "#/components/schemas/code-of-conduct" + "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)." }, - "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 + "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." }, - "forks": { - "type": "integer", - "example": 0 + "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)." }, - "open_issues": { - "type": "integer", - "example": 0 + "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." }, - "watchers": { - "type": "integer", - "example": 0 + "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": { - "type": "boolean", - "example": false + "description": "Whether to require contributors to sign off on web-based commits", + "default": false, + "type": "boolean" }, - "security_and_analysis": { - "$ref": "#/components/schemas/security-and-analysis" + "open_issues": { + "type": "integer" }, - "custom_properties": { + "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 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 + "description": "The status of the code search index for this repository", + "properties": { + "lexical_search_ok": { + "type": "boolean" + }, + "lexical_commit_sha": { + "type": "string" + } + } } }, "required": [ @@ -115303,4590 +120494,4403 @@ "tags_url", "teams_url", "trees_url", - "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-breaking-changes": [ + { + "changeset": "remove_use_squash_pr_title_as_default", + "patch": { + "properties": { + "use_squash_pr_title_as_default": null + } + }, + "version": "2026-03-10" + }, + { + "changeset": "deprecate_beta_media_type", + "patch": { + "properties": { + "master_branch": null + } + }, + "version": "2026-03-10" + }, { "changeset": "remove_has_downloads", "patch": { "properties": { "has_downloads": null - } + }, + "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", + "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" + ] }, "version": "2026-03-10" } ] }, - "thread": { - "title": "Thread", - "description": "Thread", + "installation-token": { + "title": "Installation Token", + "description": "Authentication token for a GitHub App installed on a user or org.", "type": "object", "properties": { - "id": { + "token": { "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": { + "expires_at": { "type": "string" }, - "unread": { - "type": "boolean" - }, - "updated_at": { - "type": "string" + "permissions": { + "$ref": "#/components/schemas/app-permissions" }, - "last_read_at": { + "repository_selection": { "type": "string", - "nullable": true + "enum": [ + "all", + "selected" + ] }, - "url": { - "type": "string" + "repositories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/repository" + } }, - "subscription_url": { + "single_file": { "type": "string", - "example": "https://api.github.com/notifications/threads/2/subscription" + "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": [ - "id", - "unread", - "reason", - "updated_at", - "last_read_at", - "subject", - "repository", - "url", - "subscription_url" + "token", + "expires_at" ] }, - "thread-subscription": { - "title": "Thread Subscription", - "description": "Thread Subscription", + "nullable-scoped-installation": { + "title": "Scoped Installation", "type": "object", "properties": { - "subscribed": { - "type": "boolean", - "example": true - }, - "ignored": { - "type": "boolean" + "permissions": { + "$ref": "#/components/schemas/app-permissions" }, - "reason": { + "repository_selection": { + "description": "Describe whether all repositories have been selected or there's a selection involved", "type": "string", - "nullable": true + "enum": [ + "all", + "selected" + ] }, - "created_at": { + "single_file_name": { "type": "string", - "format": "date-time", - "example": "2012-10-06T21:34:12Z", + "example": "config.yaml", "nullable": true }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/notifications/threads/1/subscription" + "has_multiple_single_files": { + "type": "boolean", + "example": true }, - "thread_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/notifications/threads/1" + "single_file_paths": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "config.yml", + ".github/issue_TEMPLATE.md" + ] }, - "repository_url": { + "repositories_url": { "type": "string", "format": "uri", - "example": "https://api.github.com/repos/1" + "example": "https://api.github.com/users/octocat/repos" + }, + "account": { + "$ref": "#/components/schemas/simple-user" } }, "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 - } - } + "permissions", + "repository_selection", + "single_file_name", + "repositories_url", + "account" + ], + "nullable": true }, - "nullable-simple-repository": { - "title": "Simple Repository", - "description": "A GitHub repository.", + "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", - "example": 1296269, - "description": "A unique identifier of the repository." + "format": "int64" }, - "node_id": { + "url": { "type": "string", - "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", - "description": "The GraphQL identifier of the repository." + "format": "uri" }, - "name": { + "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", - "example": "Hello-World", - "description": "The name of the repository." + "nullable": true }, - "full_name": { + "hashed_token": { "type": "string", - "example": "octocat/Hello-World", - "description": "The full, globally unique, name of the repository." + "nullable": true }, - "owner": { - "$ref": "#/components/schemas/simple-user" + "app": { + "type": "object", + "properties": { + "client_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "client_id", + "name", + "url" + ] }, - "private": { - "type": "boolean", - "description": "Whether the repository is private." + "note": { + "type": "string", + "nullable": true }, - "html_url": { + "note_url": { "type": "string", "format": "uri", - "example": "https://github.com/octocat/Hello-World", - "description": "The URL to view the repository on GitHub.com." + "nullable": true }, - "description": { + "updated_at": { "type": "string", - "example": "This your first repo!", - "nullable": true, - "description": "The repository description." - }, - "fork": { - "type": "boolean", - "description": "Whether the repository is a fork." + "format": "date-time" }, - "url": { + "created_at": { "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." + "format": "date-time" }, - "archive_url": { + "fingerprint": { "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." + "nullable": true }, - "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." + "user": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "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." + "installation": { + "$ref": "#/components/schemas/nullable-scoped-installation" }, - "branches_url": { + "expires_at": { "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." + "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." }, - "collaborators_url": { + "full_name": { "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." + "example": "octocat/Hello-World", + "description": "The full, globally unique name of the repository." }, - "comments_url": { + "html_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." + "format": "uri", + "example": "https://github.com/octocat/Hello-World", + "description": "The URL to view the repository on GitHub.com." }, - "commits_url": { + "node_id": { "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." + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "description": "The GraphQL identifier of 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." + "private": { + "type": "boolean", + "description": "Whether the repository is private." }, - "contents_url": { + "default_branch": { "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." + "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 }, - "contributors_url": { + "login": { "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." + "example": "github" }, - "deployments_url": { + "node_id": { "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." + "example": "MDEyOk9yZ2FuaXphdGlvbjE=" }, - "downloads_url": { + "html_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." + "example": "https://github.com/github" }, - "events_url": { + "name": { "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." + "example": "Github - Code thigns happen here", + "nullable": true }, - "forks_url": { + "avatar_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." + "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" }, - "git_commits_url": { + "name": { + "description": "The name of the classroom.", "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." + "example": "Programming Elixir" }, - "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." + "archived": { + "description": "Whether classroom is archived.", + "type": "boolean", + "example": false }, - "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." + "organization": { + "$ref": "#/components/schemas/simple-classroom-organization" }, - "issue_comment_url": { + "url": { + "description": "The URL of the classroom on GitHub Classroom.", "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." + "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 }, - "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." + "public_repo": { + "description": "Whether an accepted assignment creates a public repository.", + "type": "boolean", + "example": true }, - "issues_url": { + "title": { + "description": "Assignment title.", "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." + "example": "Intro to Binaries" }, - "keys_url": { + "type": { + "description": "Whether it's a group assignment or individual assignment.", "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." + "example": "individual", + "enum": [ + "individual", + "group" + ] }, - "labels_url": { + "invite_link": { + "description": "The link that a student can use to accept the assignment.", "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." + "example": "https://classroom.github.com/a/Lx7jiUgx" }, - "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." + "invitations_enabled": { + "description": "Whether the invitation link is enabled. Visiting an enabled invitation link will accept the assignment.", + "type": "boolean", + "example": true }, - "merges_url": { + "slug": { + "description": "Sluggified name of the assignment.", "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/merges", - "description": "The API URL to merge branches in the repository." + "example": "intro-to-binaries" }, - "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." + "students_are_repo_admins": { + "description": "Whether students are admins on created repository when a student accepts the assignment.", + "type": "boolean", + "example": true }, - "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." + "feedback_pull_requests_enabled": { + "description": "Whether feedback pull request will be created when a student accepts the assignment.", + "type": "boolean", + "example": true }, - "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." + "max_teams": { + "description": "The maximum allowable teams for the assignment.", + "nullable": true, + "type": "integer", + "example": 0 }, - "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." + "max_members": { + "description": "The maximum allowable members per team.", + "nullable": true, + "type": "integer", + "example": 0 }, - "stargazers_url": { + "editor": { + "description": "The selected editor for the assignment.", "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." + "example": "codespaces" }, - "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." + "accepted": { + "description": "The number of students that have accepted the assignment.", + "type": "integer", + "example": 25 }, - "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." + "submitted": { + "description": "The number of students that have submitted the assignment.", + "type": "integer", + "example": 10 }, - "subscription_url": { + "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", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/subscription", - "description": "The API URL to subscribe to notifications for this repository." + "example": "elixir" }, - "tags_url": { + "deadline": { + "description": "The time at which the assignment is due.", "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." + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "nullable": true }, - "teams_url": { + "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", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/teams", - "description": "The API URL to list the teams on the repository." + "example": "octocat" }, - "trees_url": { + "avatar_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." + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" }, - "hooks_url": { + "html_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." + "example": "https://github.com/octocat" } }, "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 + "login", + "avatar_url", + "html_url" + ] }, - "dependabot-repository-access-details": { - "title": "Dependabot Repository Access Details", - "description": "Information about repositories that Dependabot is able to access in an organization", + "simple-classroom": { + "title": "Simple Classroom", + "description": "A GitHub Classroom classroom", "type": "object", "properties": { - "default_level": { + "id": { + "description": "Unique identifier of the classroom.", + "example": 42, + "type": "integer" + }, + "name": { + "description": "The name of the classroom.", "type": "string", - "description": "The default repository access level for Dependabot updates.", - "enum": [ - "public", - "internal" - ], - "example": "internal", - "nullable": true + "example": "Programming Elixir" }, - "accessible_repositories": { - "type": "array", - "items": { - "$ref": "#/components/schemas/nullable-simple-repository" - } + "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" } }, - "additionalProperties": false + "required": [ + "id", + "name", + "archived", + "url" + ] }, - "budget": { + "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", - "description": "The unique identifier for the budget", - "example": "2066deda-923f-43f9-88d2-62395a28c0cdd" + "example": "Intro to Binaries" }, - "budget_type": { - "description": "The type of pricing for the budget", - "example": "SkuPricing", - "oneOf": [ - { - "type": "string", - "enum": [ - "SkuPricing" - ] - }, - { - "type": "string", - "enum": [ - "ProductPricing" - ] - } + "type": { + "description": "Whether it's a Group Assignment or Individual Assignment.", + "type": "string", + "example": "individual", + "enum": [ + "individual", + "group" ] }, - "budget_amount": { - "type": "integer", - "description": "The budget amount limit in whole dollars. For license-based products, this represents the number of licenses." + "invite_link": { + "description": "The link that a student can use to accept the assignment.", + "type": "string", + "example": "https://classroom.github.com/a/Lx7jiUgx" }, - "prevent_further_usage": { + "invitations_enabled": { + "description": "Whether the invitation link is enabled. Visiting an enabled invitation link will accept the assignment.", "type": "boolean", - "description": "The type of limit enforcement for the budget", "example": true }, - "budget_scope": { + "slug": { + "description": "Sluggified name of the assignment.", "type": "string", - "description": "The scope of the budget (enterprise, organization, repository, cost center)", - "example": "enterprise" + "example": "intro-to-binaries" }, - "budget_entity_name": { + "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", - "description": "The name of the entity for the budget (enterprise does not require a name).", - "example": "octocat/hello-world" + "example": "codespaces" }, - "budget_product_sku": { + "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", - "description": "A single product or sku to apply the budget to." + "example": "elixir" }, - "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" - ] + "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", - "budget_type", - "budget_product_sku", - "budget_scope", - "budget_amount", - "prevent_further_usage", - "budget_alerting" + "public_repo", + "title", + "type", + "invite_link", + "invitations_enabled", + "slug", + "students_are_repo_admins", + "feedback_pull_requests_enabled", + "editor", + "accepted", + "submitted", + "passing", + "language", + "deadline", + "classroom" ] }, - "get_all_budgets": { + "classroom-accepted-assignment": { + "title": "Classroom Accepted Assignment", + "description": "A GitHub Classroom accepted assignment", "type": "object", "properties": { - "budgets": { - "type": "array", - "items": { - "$ref": "#/components/schemas/budget" - }, - "description": "Array of budget objects for the enterprise" + "id": { + "description": "Unique identifier of the repository.", + "type": "integer", + "example": 42 }, - "has_next_page": { + "submitted": { + "description": "Whether an accepted assignment has been submitted.", "type": "boolean", - "description": "Indicates if there are more pages of results available (maps to hasNextPage from billing platform)" + "example": true }, - "total_count": { + "passing": { + "description": "Whether a submission passed.", + "type": "boolean", + "example": true + }, + "commit_count": { + "description": "Count of student commits.", "type": "integer", - "description": "Total number of budgets matching the query" + "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": [ - "budgets" + "id", + "submitted", + "passing", + "commit_count", + "grade", + "students", + "repository", + "assignment" ] }, - "get-budget": { + "classroom-assignment-grade": { + "title": "Classroom Assignment Grade", + "description": "Grade for a student or groups GitHub Classroom assignment", "type": "object", "properties": { - "id": { - "type": "string", - "description": "ID of the budget." + "assignment_name": { + "description": "Name of the assignment", + "type": "string" }, - "budget_scope": { - "type": "string", - "description": "The type of scope for the budget", - "example": "enterprise", - "enum": [ - "enterprise", - "organization", - "repository", - "cost_center" - ] + "assignment_url": { + "description": "URL of the assignment", + "type": "string" }, - "budget_entity_name": { - "type": "string", - "description": "The name of the entity to apply the budget to", - "example": "octocat/hello-world" + "starter_code_url": { + "description": "URL of the starter code for the assignment", + "type": "string" }, - "budget_amount": { - "type": "integer", - "description": "The budget amount in whole dollars. For license-based products, this represents the number of licenses." + "github_username": { + "description": "GitHub username of the student", + "type": "string" }, - "prevent_further_usage": { - "type": "boolean", - "description": "Whether to prevent additional spending once the budget is exceeded", - "example": true + "roster_identifier": { + "description": "Roster identifier of the student", + "type": "string" }, - "budget_product_sku": { + "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", - "description": "A single product or sku to apply the budget to.", - "example": "actions_linux" + "example": "contributor_covenant" }, - "budget_type": { - "description": "The type of pricing for the budget", - "example": "ProductPricing", - "oneOf": [ - { - "type": "string", - "enum": [ - "ProductPricing" - ] - }, - { - "type": "string", - "enum": [ - "SkuPricing" - ] - } - ] + "name": { + "type": "string", + "example": "Contributor Covenant" }, - "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" - ] - } - } + "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": [ - "id", - "budget_amount", - "prevent_further_usage", - "budget_product_sku", - "budget_type", - "budget_alerting", - "budget_scope", - "budget_entity_name" + "url", + "html_url", + "key", + "name" ] }, - "delete-budget": { + "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": { - "message": { + "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 + } + } + }, + "oidc-custom-property-inclusion": { + "title": "Actions OIDC Custom Property Inclusion", + "description": "An OIDC custom property inclusion for repository properties", + "type": "object", + "properties": { + "custom_property_name": { "type": "string", - "description": "A message indicating the result of the deletion operation" + "description": "The name of the custom property that is included in the OIDC token" }, - "id": { + "inclusion_source": { "type": "string", - "description": "The ID of the deleted budget" + "description": "Whether the inclusion was defined at the organization or enterprise level", + "enum": [ + "organization", + "enterprise" + ], + "example": "organization" } }, "required": [ - "message", - "id" + "custom_property_name", + "inclusion_source" ] }, - "billing-premium-request-usage-report-org": { + "oidc-custom-property-inclusion-input": { + "title": "Actions OIDC Custom Property Inclusion Input", + "description": "Input for creating an OIDC custom property inclusion", "type": "object", "properties": { - "timePeriod": { + "custom_property_name": { + "type": "string", + "description": "The name of the custom property to include in the OIDC token" + } + }, + "required": [ + "custom_property_name" + ] + }, + "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", + "nullable": true, + "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": { - "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." + "labeled_runners": { + "type": "boolean", + "description": "Whether to use runners labeled with 'dependency-submission' or standard GitHub runners." } - }, - "required": [ - "year" - ] + } }, - "organization": { + "dependabot_alerts": { "type": "string", - "description": "The unique identifier of the organization." + "description": "The enablement status of Dependabot alerts", + "enum": [ + "enabled", + "disabled", + "not_set" + ] }, - "user": { + "dependabot_security_updates": { "type": "string", - "description": "The name of the user for the usage report." + "description": "The enablement status of Dependabot security updates", + "enum": [ + "enabled", + "disabled", + "not_set" + ] }, - "product": { + "dependabot_delegated_alert_dismissal": { "type": "string", - "description": "The product for the usage report." + "nullable": true, + "description": "The enablement status of Dependabot delegated alert dismissal", + "enum": [ + "enabled", + "disabled", + "not_set" + ] }, - "model": { + "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 model for the usage report." + "description": "The enablement status of code scanning default setup", + "enum": [ + "enabled", + "disabled", + "not_set" + ] }, - "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": { + "code_scanning_default_setup_options": { "type": "object", + "description": "Feature options for code scanning default setup", + "nullable": true, "properties": { - "year": { - "type": "integer", - "description": "The year for the usage report." - }, - "month": { - "type": "integer", - "description": "The month for the usage report." + "runner_type": { + "nullable": true, + "type": "string", + "enum": [ + "standard", + "labeled", + "not_set" + ], + "description": "Whether to use labeled runners or standard GitHub runners." }, - "day": { - "type": "integer", - "description": "The day for the usage report." + "runner_label": { + "nullable": true, + "type": "string", + "description": "The label of the runner to use for code scanning when runner_type is 'labeled'." } - }, - "required": [ - "year" - ] + } }, - "organization": { + "code_scanning_delegated_alert_dismissal": { "type": "string", - "description": "The unique identifier of the organization." + "description": "The enablement status of code scanning delegated alert dismissal", + "enum": [ + "enabled", + "disabled", + "not_set" + ] }, - "repository": { + "secret_scanning": { "type": "string", - "description": "The name of the repository for the usage report." + "description": "The enablement status of secret scanning", + "enum": [ + "enabled", + "disabled", + "not_set" + ] }, - "product": { + "secret_scanning_push_protection": { "type": "string", - "description": "The product for the usage report." + "description": "The enablement status of secret scanning push protection", + "enum": [ + "enabled", + "disabled", + "not_set" + ] }, - "sku": { + "secret_scanning_delegated_bypass": { "type": "string", - "description": "The SKU for the usage report." + "description": "The enablement status of secret scanning delegated bypass", + "enum": [ + "enabled", + "disabled", + "not_set" + ] }, - "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." + "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" + ] + }, + "mode": { + "type": "string", + "description": "The bypass mode for the reviewer", + "enum": [ + "ALWAYS", + "EXEMPT" + ], + "default": "ALWAYS" + }, + "security_configuration_id": { + "type": "integer", + "description": "The ID of the security configuration associated with this bypass reviewer" + } + } } - }, - "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": { + "secret_scanning_validity_checks": { "type": "string", - "example": "MDEyOk9yZ2FuaXphdGlvbjE=" + "description": "The enablement status of secret scanning validity checks", + "enum": [ + "enabled", + "disabled", + "not_set" + ] }, - "url": { + "secret_scanning_non_provider_patterns": { "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/github" + "description": "The enablement status of secret scanning non-provider patterns", + "enum": [ + "enabled", + "disabled", + "not_set" + ] }, - "repos_url": { + "secret_scanning_generic_secrets": { "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/github/repos" + "description": "The enablement status of Copilot secret scanning", + "enum": [ + "enabled", + "disabled", + "not_set" + ] }, - "events_url": { + "secret_scanning_delegated_alert_dismissal": { "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/github/events" + "description": "The enablement status of secret scanning delegated alert dismissal", + "enum": [ + "enabled", + "disabled", + "not_set" + ] }, - "hooks_url": { + "secret_scanning_extended_metadata": { "type": "string", - "example": "https://api.github.com/orgs/github/hooks" + "description": "The enablement status of secret scanning extended metadata", + "enum": [ + "enabled", + "disabled", + "not_set" + ] }, - "issues_url": { + "private_vulnerability_reporting": { "type": "string", - "example": "https://api.github.com/orgs/github/issues" + "description": "The enablement status of private vulnerability reporting", + "enum": [ + "enabled", + "disabled", + "not_set" + ] }, - "members_url": { + "enforcement": { "type": "string", - "example": "https://api.github.com/orgs/github/members{/member}" + "description": "The enforcement status for a security configuration", + "enum": [ + "enforced", + "unenforced" + ] }, - "public_members_url": { + "url": { "type": "string", - "example": "https://api.github.com/orgs/github/public_members{/member}" + "format": "uri", + "description": "The URL of the configuration" }, - "avatar_url": { + "html_url": { "type": "string", - "example": "https://github.com/images/error/octocat_happy.gif" + "format": "uri", + "description": "The URL of the configuration" }, - "description": { + "created_at": { "type": "string", - "example": "A great organization", - "nullable": true + "format": "date-time" }, - "name": { + "updated_at": { "type": "string", - "example": "github" - }, - "company": { + "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", - "example": "GitHub" + "enum": [ + "standard", + "labeled", + "not_set" + ], + "description": "Whether to use labeled runners or standard GitHub runners." }, - "blog": { + "runner_label": { + "nullable": true, "type": "string", - "format": "uri", - "example": "https://github.com/blog" + "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." }, - "location": { + "node_id": { "type": "string", - "example": "San Francisco" + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "description": "The GraphQL identifier of the repository." }, - "email": { + "name": { "type": "string", - "format": "email", - "example": "octocat@github.com" + "example": "Hello-World", + "description": "The name of the repository." }, - "twitter_username": { + "full_name": { "type": "string", - "example": "github", - "nullable": true - }, - "is_verified": { - "type": "boolean", - "example": true + "example": "octocat/Hello-World", + "description": "The full, globally unique, name of the repository." }, - "has_organization_projects": { - "type": "boolean", - "example": true + "owner": { + "$ref": "#/components/schemas/simple-user" }, - "has_repository_projects": { + "private": { "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 + "description": "Whether the repository is private." }, "html_url": { "type": "string", "format": "uri", - "example": "https://github.com/octocat" + "example": "https://github.com/octocat/Hello-World", + "description": "The URL to view the repository on GitHub.com." }, - "type": { + "description": { "type": "string", - "example": "Organization" - }, - "total_private_repos": { - "type": "integer", - "example": 100 - }, - "owned_private_repos": { - "type": "integer", - "example": 100 + "example": "This your first repo!", + "nullable": true, + "description": "The repository description." }, - "private_gists": { - "type": "integer", - "example": 81, - "nullable": true + "fork": { + "type": "boolean", + "description": "Whether the repository is a fork." }, - "disk_usage": { - "type": "integer", - "example": 10000, - "nullable": true + "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." }, - "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." + "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." }, - "billing_email": { + "assignees_url": { "type": "string", - "format": "email", - "example": "org@example.com", - "nullable": true + "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." }, - "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" - ] + "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." }, - "default_repository_permission": { + "branches_url": { "type": "string", - "nullable": true + "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." }, - "default_repository_branch": { + "collaborators_url": { "type": "string", - "example": "main", - "nullable": true, - "description": "The default branch for repositories created in this organization." + "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." }, - "members_can_create_repositories": { - "type": "boolean", - "example": true, - "nullable": true + "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." }, - "two_factor_requirement_enabled": { - "type": "boolean", - "example": true, - "nullable": true + "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." }, - "members_allowed_repository_creation_type": { + "compare_url": { "type": "string", - "example": "all" + "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." }, - "members_can_create_public_repositories": { - "type": "boolean", - "example": true + "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." }, - "members_can_create_private_repositories": { - "type": "boolean", - "example": true + "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." }, - "members_can_create_internal_repositories": { - "type": "boolean", - "example": true + "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." }, - "members_can_create_pages": { - "type": "boolean", - "example": true + "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." }, - "members_can_create_public_pages": { - "type": "boolean", - "example": true + "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." }, - "members_can_create_private_pages": { - "type": "boolean", - "example": true + "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." }, - "members_can_delete_repositories": { - "type": "boolean", - "example": true + "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." }, - "members_can_change_repo_visibility": { - "type": "boolean", - "example": true + "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." }, - "members_can_invite_outside_collaborators": { - "type": "boolean", - "example": true + "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." }, - "members_can_delete_issues": { - "type": "boolean", - "example": true + "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." }, - "display_commenter_full_name_setting_enabled": { - "type": "boolean", - "example": true + "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." }, - "readers_can_create_discussions": { - "type": "boolean", - "example": true + "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." }, - "members_can_create_teams": { - "type": "boolean", - "example": true + "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." }, - "members_can_view_dependency_insights": { - "type": "boolean", - "example": true + "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." }, - "members_can_fork_private_repositories": { - "type": "boolean", - "example": false, - "nullable": true + "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." }, - "web_commit_signoff_required": { - "type": "boolean", - "example": false + "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." }, - "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 + "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." }, - "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 + "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." }, - "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 + "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." }, - "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 + "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." }, - "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 + "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." }, - "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 + "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." }, - "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." + "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." }, - "secret_scanning_push_protection_custom_link": { + "subscription_url": { "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." + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/subscription", + "description": "The API URL to subscribe to notifications for this repository." }, - "created_at": { + "tags_url": { "type": "string", - "format": "date-time", - "example": "2008-01-14T04:33:35Z" + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/tags", + "description": "The API URL to get information about tags on the repository." }, - "updated_at": { + "teams_url": { "type": "string", - "format": "date-time" + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/teams", + "description": "The API URL to list the teams on the repository." }, - "archived_at": { + "trees_url": { "type": "string", - "format": "date-time", - "nullable": true + "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." }, - "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." + "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": [ - "login", - "url", - "id", - "node_id", - "repos_url", + "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", - "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" - ], - "x-github-breaking-changes": [ - { - "changeset": "remove_secret_scanning_custom_link_enablement_field", - "patch": [ - { - "op": "remove", - "path": "/properties/secret_scanning_push_protection_custom_link_enabled" - } - ], - "version": "2026-03-10" - } + "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" ] }, - "actions-cache-usage-org-enterprise": { + "code-security-configuration-repositories": { "type": "object", + "description": "Repositories associated with a code security configuration and attachment status", "properties": { - "total_active_caches_count": { - "type": "integer", - "description": "The count of active caches across all repositories of an enterprise or an organization." + "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" + ] }, - "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." + "repository": { + "$ref": "#/components/schemas/simple-repository" + } + } + }, + "copilot-usage-metrics-1-day-report": { + "type": "object", + "title": "Copilot Metrics 1 Day Report", + "description": "Links to download the Copilot usage metrics report for an enterprise/organization for a specific day.", + "properties": { + "download_links": { + "type": "array", + "items": { + "type": "string", + "format": "uri" + }, + "description": "The URLs to download the Copilot usage metrics report for the enterprise/organization for the specified day." + }, + "report_day": { + "type": "string", + "format": "date", + "description": "The day of the report in `YYYY-MM-DD` format." } }, "required": [ - "total_active_caches_count", - "total_active_caches_size_in_bytes" + "download_links", + "report_day" ] }, - "actions-cache-usage-by-repository": { - "title": "Actions Cache Usage by repository", - "description": "GitHub Actions Cache Usage by repository.", + "copilot-usage-metrics-28-day-report": { "type": "object", + "title": "Copilot Metrics 28 Day Report", + "description": "Links to download the latest Copilot usage metrics report for an enterprise/organization.", "properties": { - "full_name": { - "description": "The repository owner and name for the cache usage being shown.", - "type": "string", - "example": "octo-org/Hello-World" + "download_links": { + "type": "array", + "items": { + "type": "string", + "format": "uri" + }, + "description": "The URLs to download the latest Copilot usage metrics report for the enterprise/organization." }, - "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 + "report_start_day": { + "type": "string", + "format": "date", + "description": "The start date of the report period in `YYYY-MM-DD` format." }, - "active_caches_count": { - "description": "The number of active caches in the repository.", - "type": "integer", - "example": 3 + "report_end_day": { + "type": "string", + "format": "date", + "description": "The end date of the report period in `YYYY-MM-DD` format." } }, "required": [ - "full_name", - "active_caches_size_in_bytes", - "active_caches_count" + "download_links", + "report_start_day", + "report_end_day" ] }, - "nullable-actions-hosted-runner-pool-image": { - "title": "GitHub-hosted runner image details.", - "description": "Provides details of a hosted runner image", + "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": { - "id": { - "description": "The ID of the image. Use this ID for the `image` parameter when creating a new larger runner.", + "ecosystem": { "type": "string", - "example": "ubuntu-20.04" + "description": "The package's language or package management ecosystem.", + "readOnly": true }, - "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.", + "name": { "type": "string", - "example": "latest" + "description": "The unique package name within its ecosystem.", + "readOnly": true } }, "required": [ - "id", - "size_gb", - "display_name", - "source" + "ecosystem", + "name" ], - "nullable": true + "additionalProperties": false }, - "actions-hosted-runner-machine-spec": { - "title": "Github-owned VM details.", - "description": "Provides details of a particular machine spec.", + "dependabot-alert-security-vulnerability": { "type": "object", + "description": "Details pertaining to one vulnerable version range for the advisory.", + "readOnly": true, "properties": { - "id": { - "description": "The ID used for the `size` parameter when creating a new runner.", - "type": "string", - "example": "8-core" + "package": { + "$ref": "#/components/schemas/dependabot-alert-package" }, - "cpu_cores": { - "description": "The number of cores.", - "type": "integer", - "example": 8 + "severity": { + "type": "string", + "description": "The severity of the vulnerability.", + "readOnly": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] }, - "memory_gb": { - "description": "The available RAM for the machine spec.", - "type": "integer", - "example": 32 + "vulnerable_version_range": { + "type": "string", + "description": "Conditions that identify vulnerable versions of this vulnerability's package.", + "readOnly": true }, - "storage_gb": { - "description": "The available SSD storage for the machine spec.", - "type": "integer", - "example": 300 + "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": [ - "id", - "cpu_cores", - "memory_gb", - "storage_gb" - ] + "package", + "severity", + "vulnerable_version_range", + "first_patched_version" + ], + "additionalProperties": false }, - "public-ip": { - "title": "Public IP for a GitHub-hosted larger runners.", - "description": "Provides details of Public IP for a GitHub-hosted larger runners", + "dependabot-alert-security-advisory": { "type": "object", + "description": "Details for the GitHub Security Advisory.", + "readOnly": true, "properties": { - "enabled": { - "description": "Whether public IP is enabled.", - "type": "boolean", - "example": true - }, - "prefix": { - "description": "The prefix for the public IP.", + "ghsa_id": { "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 + "description": "The unique GitHub Security Advisory ID assigned to the advisory.", + "readOnly": true }, - "name": { - "description": "The name of the hosted runner.", + "cve_id": { "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" + "description": "The unique CVE ID assigned to the advisory.", + "readOnly": true, + "nullable": true }, - "status": { - "description": "The status of the runner.", + "summary": { "type": "string", - "example": "Ready", - "enum": [ - "Ready", - "Provisioning", - "Shutdown", - "Deleting", - "Stuck" - ] + "description": "A short, plain text summary of the advisory.", + "readOnly": true, + "maxLength": 1024 }, - "platform": { - "description": "The operating system of the image.", + "description": { "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 + "description": "A long-form Markdown-supported description of the advisory.", + "readOnly": true }, - "public_ips": { - "description": "The public IP ranges when public IP is enabled for the hosted runners.", + "vulnerabilities": { "type": "array", + "description": "Vulnerable version range information for the advisory.", + "readOnly": true, "items": { - "$ref": "#/components/schemas/public-ip" + "$ref": "#/components/schemas/dependabot-alert-security-vulnerability" } }, - "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.", + "severity": { "type": "string", - "example": "CustomImage" + "description": "The severity of the advisory.", + "readOnly": true, + "enum": [ + "low", + "medium", + "high", + "critical" + ] }, - "source": { - "description": "The image provider.", + "classification": { "type": "string", - "example": "custom" - }, - "versions_count": { - "description": "The number of image versions associated with the image.", - "type": "integer", - "example": 4 + "description": "The classification of the advisory.", + "readOnly": true, + "enum": [ + "general", + "malware" + ] }, - "latest_version": { - "description": "The latest image version associated with the image.", - "type": "string", - "example": "1.3.0" + "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 }, - "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" + "cvss_severities": { + "$ref": "#/components/schemas/cvss-severities" }, - "state": { - "description": "The state of image version.", - "type": "string", - "example": "Ready" + "epss": { + "$ref": "#/components/schemas/security-advisory-epss" }, - "size_gb": { - "description": "Image version size in GB.", - "type": "integer", - "example": 30 + "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 + } }, - "created_on": { - "description": "The creation date time of the image version.", - "type": "string", - "example": "2024-11-09T23:39:01Z" + "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 + } }, - "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" + "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 + } }, - "platform": { - "description": "The operating system of the image.", + "published_at": { "type": "string", - "example": "linux-x64" - }, - "size_gb": { - "description": "Image size in GB.", - "type": "integer", - "example": 86 + "description": "The time that the advisory was published in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true }, - "display_name": { - "description": "Display name for this image.", + "updated_at": { "type": "string", - "example": 20.04 + "description": "The time that the advisory was last modified in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true }, - "source": { - "description": "The image provider.", + "withdrawn_at": { "type": "string", - "enum": [ - "github", - "partner", - "custom" - ] + "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": [ - "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 + "ghsa_id", + "cve_id", + "summary", + "description", + "vulnerabilities", + "severity", + "cvss", + "cwes", + "identifiers", + "references", + "published_at", + "updated_at", + "withdrawn_at" + ], + "additionalProperties": false, + "x-github-breaking-changes": [ + { + "changeset": "deprecate_cvss", + "patch": { + "properties": { + "cvss": null }, - "current_usage": { - "type": "integer", - "description": "The current number of static public IP addresses in use by Hosted Runners.", - "example": 17 - } + "required": [ + "ghsa_id", + "cve_id", + "summary", + "description", + "vulnerabilities", + "severity", + "cwes", + "identifiers", + "references", + "published_at", + "updated_at", + "withdrawn_at" + ] }, - "required": [ - "maximum", - "current_usage" - ] + "version": "2026-03-10" } - }, - "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" - ] + "alert-url": { + "type": "string", + "description": "The REST API URL of the alert resource.", + "format": "uri", + "readOnly": true }, - "empty-object": { - "title": "Empty Object", - "description": "An object without any properties.", - "type": "object", - "properties": {}, - "additionalProperties": false + "alert-html-url": { + "type": "string", + "description": "The GitHub URL of the alert resource.", + "format": "uri", + "readOnly": true }, - "enabled-repositories": { + "alert-created-at": { "type": "string", - "description": "The policy that controls the repositories in the organization that are allowed to run GitHub Actions.", - "enum": [ - "all", - "none", - "selected" - ] + "description": "The time that the alert was created in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true }, - "allowed-actions": { + "alert-updated-at": { "type": "string", - "description": "The permissions policy that controls the actions and reusable workflows that are allowed to run.", - "enum": [ - "all", - "local_only", - "selected" - ] + "description": "The time that the alert was last updated in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true }, - "selected-actions-url": { + "alert-dismissed-at": { "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`." + "description": "The time that the alert was dismissed in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "format": "date-time", + "readOnly": true, + "nullable": true }, - "sha-pinning-required": { - "type": "boolean", - "description": "Whether actions must be pinned to a full-length commit SHA." + "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 }, - "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" - ] + "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 }, - "actions-artifact-and-log-retention-response": { + "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": { - "days": { + "id": { "type": "integer", - "description": "The number of days artifacts and logs are retained" + "description": "The unique identifier of the dismissal request." }, - "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": { + "status": { "type": "string", + "description": "The current status of the dismissal request.", "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." + "pending", + "approved", + "rejected", + "cancelled" + ] }, - "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." + "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." + } + } }, - "send_secrets_and_variables": { - "type": "boolean", - "description": "Whether to make secrets and variables available to workflows triggered by pull requests from forks." + "created_at": { + "type": "string", + "format": "date-time", + "description": "The date and time when the dismissal request was created." }, - "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." + "url": { + "type": "string", + "format": "uri", + "description": "The API URL to get more information about this dismissal request." } } }, - "selected-actions": { + "dependabot-alert-with-repository": { "type": "object", + "description": "A Dependabot alert.", "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." + "number": { + "$ref": "#/components/schemas/alert-number" }, - "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": { + "state": { "type": "string", - "description": "The policy that controls whether self-hosted runners can be used by repositories in the organization", + "description": "The state of the Dependabot alert.", + "readOnly": true, "enum": [ - "all", - "selected", - "none" + "auto_dismissed", + "dismissed", + "fixed", + "open" ] }, - "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" + "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", + "inconclusive" + ] + } + } }, - "can_approve_pull_request_reviews": { - "$ref": "#/components/schemas/actions-can-approve-pull-request-reviews" - } - } - }, - "runner-groups-org": { - "type": "object", - "properties": { - "id": { - "type": "number" + "security_advisory": { + "$ref": "#/components/schemas/dependabot-alert-security-advisory" }, - "name": { - "type": "string" + "security_vulnerability": { + "$ref": "#/components/schemas/dependabot-alert-security-vulnerability" }, - "visibility": { - "type": "string" + "url": { + "$ref": "#/components/schemas/alert-url" }, - "default": { - "type": "boolean" + "html_url": { + "$ref": "#/components/schemas/alert-html-url" }, - "selected_repositories_url": { - "description": "Link to the selected repositories resource for this runner group. Not present unless visibility was set to `selected`", - "type": "string" + "created_at": { + "$ref": "#/components/schemas/alert-created-at" }, - "runners_url": { - "type": "string" + "updated_at": { + "$ref": "#/components/schemas/alert-updated-at" }, - "hosted_runners_url": { - "type": "string" + "dismissed_at": { + "$ref": "#/components/schemas/alert-dismissed-at" }, - "network_configuration_id": { - "description": "The identifier of a hosted compute network configuration.", - "type": "string" + "dismissed_by": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "inherited": { - "type": "boolean" + "dismissed_reason": { + "type": "string", + "description": "The reason that the alert was dismissed.", + "nullable": true, + "enum": [ + "fix_started", + "inaccurate", + "no_bandwidth", + "not_used", + "tolerable_risk" + ] }, - "inherited_allows_public_repositories": { - "type": "boolean" + "dismissed_comment": { + "type": "string", + "description": "An optional comment associated with the alert's dismissal.", + "nullable": true, + "maxLength": 280 }, - "allows_public_repositories": { - "type": "boolean" + "fixed_at": { + "$ref": "#/components/schemas/alert-fixed-at" }, - "workflow_restrictions_read_only": { - "description": "If `true`, the `restricted_to_workflows` and `selected_workflows` fields cannot be modified.", - "type": "boolean", - "default": false + "auto_dismissed_at": { + "$ref": "#/components/schemas/alert-auto-dismissed-at" }, - "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 + "dismissal_request": { + "$ref": "#/components/schemas/dependabot-alert-dismissal-request-simple" }, - "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`.", + "assignees": { "type": "array", + "description": "The users assigned to this alert.", + "readOnly": true, "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" + "$ref": "#/components/schemas/simple-user" } - } - }, - "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" - ] + "repository": { + "$ref": "#/components/schemas/simple-repository" } }, "required": [ - "name" - ] + "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 }, - "runner": { - "title": "Self hosted runners", - "description": "A self hosted runner", + "nullable-simple-repository": { + "title": "Simple Repository", + "description": "A GitHub repository.", "type": "object", "properties": { "id": { - "description": "The ID of the runner.", "type": "integer", - "example": 5 + "format": "int64", + "example": 1296269, + "description": "A unique identifier of the repository." }, - "runner_group_id": { - "description": "The ID of the runner group.", - "type": "integer", - "example": 1 + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5", + "description": "The GraphQL identifier of the repository." }, "name": { - "description": "The name of the runner.", "type": "string", - "example": "iMac" + "example": "Hello-World", + "description": "The name of the repository." }, - "os": { - "description": "The Operating System of the runner.", + "full_name": { "type": "string", - "example": "macos" + "example": "octocat/Hello-World", + "description": "The full, globally unique, name of the repository." }, - "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" + "owner": { + "$ref": "#/components/schemas/simple-user" }, - "temp_download_token": { - "description": "A short lived bearer token used to download the runner, if needed.", - "type": "string" + "private": { + "type": "boolean", + "description": "Whether the repository is private." }, - "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", + "html_url": { "type": "string", - "example": "v1.1f699f1069f60xxx" + "format": "uri", + "example": "https://github.com/octocat/Hello-World", + "description": "The URL to view the repository on GitHub.com." }, - "expires_at": { - "description": "The time this token expires", + "description": { "type": "string", - "format": "date-time", - "example": "2016-07-11T22:14:10Z" - }, - "permissions": { - "type": "object", - "example": { - "issues": "read", - "deployments": "write" - } + "example": "This your first repo!", + "nullable": true, + "description": "The repository description." }, - "repositories": { - "description": "The repositories this token has access to", - "type": "array", - "items": { - "$ref": "#/components/schemas/repository" - } + "fork": { + "type": "boolean", + "description": "Whether the repository is a fork." }, - "single_file": { + "url": { "type": "string", - "example": "config.yaml", - "nullable": true + "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." }, - "repository_selection": { - "description": "Describe whether all repositories have been selected or there's a selection involved", + "archive_url": { "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" + "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." }, - "created_at": { + "assignees_url": { "type": "string", - "format": "date-time" + "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." }, - "updated_at": { + "blobs_url": { "type": "string", - "format": "date-time" - }, - "visibility": { - "description": "Visibility of a secret", - "enum": [ - "all", - "private", - "selected" - ], - "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." }, - "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.", + "branches_url": { "type": "string", - "example": "1234567" + "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." }, - "key": { - "description": "The Base64 encoded public key.", + "collaborators_url": { "type": "string", - "example": "hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs=" - }, - "id": { - "type": "integer", - "example": 2 + "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." }, - "url": { + "comments_url": { "type": "string", - "example": "https://api.github.com/user/keys/2" + "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." }, - "title": { + "commits_url": { "type": "string", - "example": "ssh-rsa AAAAB3NzaC1yc2EAAA" + "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." }, - "created_at": { + "compare_url": { "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" + "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." }, - "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", + "contents_url": { "type": "string", - "format": "date-time" + "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." }, - "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", + "contributors_url": { "type": "string", - "format": "date-time" + "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." }, - "visibility": { - "description": "Visibility of a variable", - "enum": [ - "all", - "private", - "selected" - ], - "type": "string" + "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." }, - "selected_repositories_url": { + "downloads_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" + "example": "https://api.github.com/repos/octocat/Hello-World/downloads", + "description": "The API URL to list the downloads on the repository." }, - "digest": { - "type": "string" + "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." }, - "logical_environment": { - "type": "string" + "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." }, - "physical_environment": { - "type": "string" + "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." }, - "cluster": { - "type": "string" + "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." }, - "deployment_name": { - "type": "string" + "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." }, - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "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." }, - "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" - ] - } + "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." }, - "created_at": { - "type": "string" + "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." }, - "updated_at": { - "type": "string" + "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." }, - "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 + "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." }, - "node_id": { + "languages_url": { "type": "string", - "example": "MDQ6VGVhbTE=" + "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." }, - "url": { - "description": "URL for the team", + "merges_url": { "type": "string", "format": "uri", - "example": "https://api.github.com/organizations/1/team/1" + "example": "https://api.github.com/repos/octocat/Hello-World/merges", + "description": "The API URL to merge branches in the repository." }, - "members_url": { + "milestones_url": { "type": "string", - "example": "https://api.github.com/organizations/1/team/1/members{/member}" + "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." }, - "name": { - "description": "Name of the team", + "notifications_url": { "type": "string", - "example": "Justice League" + "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." }, - "description": { - "description": "Description of the team", + "pulls_url": { "type": "string", - "nullable": true, - "example": "A great team." + "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." }, - "permission": { - "description": "Permission that the team will have for its repositories", + "releases_url": { "type": "string", - "example": "admin" + "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." }, - "privacy": { - "description": "The level of privacy this team should have", + "stargazers_url": { "type": "string", - "example": "closed" + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/stargazers", + "description": "The API URL to list the stargazers on the repository." }, - "notification_setting": { - "description": "The notification setting the team has set", + "statuses_url": { "type": "string", - "example": "notifications_enabled" + "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." }, - "html_url": { + "subscribers_url": { "type": "string", "format": "uri", - "example": "https://github.com/orgs/rails/teams/core" + "example": "https://api.github.com/repos/octocat/Hello-World/subscribers", + "description": "The API URL to list the subscribers on the repository." }, - "repositories_url": { + "subscription_url": { "type": "string", "format": "uri", - "example": "https://api.github.com/organizations/1/team/1/repos" + "example": "https://api.github.com/repos/octocat/Hello-World/subscription", + "description": "The API URL to subscribe to notifications for this repository." }, - "slug": { + "tags_url": { "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" + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/tags", + "description": "The API URL to get information about tags on the repository." }, - "type": { - "description": "The ownership type of the team", + "teams_url": { "type": "string", - "enum": [ - "enterprise", - "organization" - ] + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/teams", + "description": "The API URL to list the teams on the repository." }, - "organization_id": { - "type": "integer", - "description": "Unique identifier of the organization to which this team belongs", - "example": 37 + "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." }, - "enterprise_id": { - "type": "integer", - "description": "Unique identifier of the enterprise to which this team belongs", - "example": 42 + "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", - "url", - "members_url", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", "name", - "description", - "permission", - "html_url", - "repositories_url", - "slug", - "type" + "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 }, - "team": { - "title": "Team", - "description": "Groups of organization members that gives permissions on specified repositories.", + "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 + }, + "enterprise-team": { + "title": "Enterprise Team", + "description": "Group of enterprise owners and/or members", "type": "object", "properties": { "id": { - "type": "integer" + "type": "integer", + "format": "int64" }, - "node_id": { + "name": { "type": "string" }, - "name": { + "description": { "type": "string" }, "slug": { "type": "string" }, - "description": { + "url": { "type": "string", - "nullable": true - }, - "privacy": { - "type": "string" + "format": "uri" }, - "notification_setting": { - "type": "string" + "sync_to_organizations": { + "type": "string", + "description": "Retired: this field will not be returned with GHEC enterprise teams.", + "example": "disabled | all" }, - "permission": { - "type": "string" + "organization_selection_type": { + "type": "string", + "example": "disabled | selected | all" }, - "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" - ] + "group_id": { + "nullable": true, + "type": "string", + "example": "62ab9291-fae2-468e-974b-7e45096d5021" }, - "url": { + "group_name": { + "nullable": true, "type": "string", - "format": "uri" + "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/orgs/rails/teams/core" + "example": "https://github.com/enterprises/dc/teams/justice-league" }, "members_url": { "type": "string" }, - "repositories_url": { + "created_at": { "type": "string", - "format": "uri" + "format": "date-time" }, - "type": { - "description": "The ownership type of the team", + "updated_at": { "type": "string", + "format": "date-time" + }, + "notification_setting": { + "type": "string", + "description": "Whether team members will receive notifications when the team is mentioned.", + "example": "notifications_enabled", "enum": [ - "enterprise", - "organization" + "notifications_enabled", + "notifications_disabled" ] - }, - "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" + "created_at", + "updated_at", + "group_id" ] }, - "campaign-summary": { - "title": "Campaign summary", - "description": "The campaign metadata and alert stats.", + "organization-simple": { + "title": "Organization Simple", + "description": "A GitHub organization.", "type": "object", "properties": { - "number": { + "login": { + "type": "string", + "example": "github" + }, + "id": { "type": "integer", - "description": "The number of the newly created campaign" + "example": 1 }, - "created_at": { + "node_id": { "type": "string", - "format": "date-time", - "description": "The date and time the campaign was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + "example": "MDEyOk9yZ2FuaXphdGlvbjE=" }, - "updated_at": { + "url": { "type": "string", - "format": "date-time", - "description": "The date and time the campaign was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." + "format": "uri", + "example": "https://api.github.com/orgs/github" }, - "name": { + "repos_url": { "type": "string", - "description": "The campaign name" + "format": "uri", + "example": "https://api.github.com/orgs/github/repos" }, - "description": { + "events_url": { "type": "string", - "description": "The campaign description" - }, - "managers": { - "description": "The campaign managers", - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "format": "uri", + "example": "https://api.github.com/orgs/github/events" }, - "team_managers": { - "description": "The campaign team managers", - "type": "array", - "items": { - "$ref": "#/components/schemas/team" - } + "hooks_url": { + "type": "string", + "example": "https://api.github.com/orgs/github/hooks" }, - "published_at": { - "description": "The date and time the campaign was published, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "issues_url": { "type": "string", - "format": "date-time" + "example": "https://api.github.com/orgs/github/issues" }, - "ends_at": { - "description": "The date and time the campaign has ended, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "members_url": { "type": "string", - "format": "date-time" + "example": "https://api.github.com/orgs/github/members{/member}" }, - "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.", + "public_members_url": { "type": "string", - "format": "date-time", - "nullable": true + "example": "https://api.github.com/orgs/github/public_members{/member}" }, - "state": { - "$ref": "#/components/schemas/campaign-state" + "avatar_url": { + "type": "string", + "example": "https://github.com/images/error/octocat_happy.gif" }, - "contact_link": { - "description": "The contact link of the campaign.", + "description": { "type": "string", - "format": "uri", + "example": "A great organization", "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" + "login", + "url", + "id", + "node_id", + "repos_url", + "events_url", + "hooks_url", + "issues_url", + "members_url", + "public_members_url", + "avatar_url", + "description" ] }, - "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": { + "actor": { + "title": "Actor", + "description": "Actor", "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" - ] + "type": "integer" }, - "security_severity_level": { - "nullable": true, - "type": "string", - "description": "The security severity of the alert.", - "enum": [ - "low", - "medium", - "high", - "critical" - ] + "login": { + "type": "string" }, - "description": { - "type": "string", - "description": "A short description of the rule used to detect the alert." + "display_login": { + "type": "string" }, - "full_description": { + "gravatar_id": { "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" - } + "nullable": true }, - "help": { - "nullable": true, + "url": { "type": "string", - "description": "Detailed documentation for the rule as GitHub Flavored Markdown." + "format": "uri" }, - "help_uri": { - "nullable": true, + "avatar_url": { "type": "string", - "description": "A link to the documentation for the rule used to detect the alert." + "format": "uri" } - } - }, - "code-scanning-analysis-tool-version": { - "nullable": true, - "type": "string", - "description": "The version of the tool used to generate the code scanning analysis." + }, + "required": [ + "id", + "login", + "gravatar_id", + "url", + "avatar_url" + ] }, - "code-scanning-analysis-tool": { + "label": { + "title": "Label", + "description": "Color-coded labels help you categorize and filter your issues (just like labels in Gmail).", "type": "object", "properties": { - "name": { - "$ref": "#/components/schemas/code-scanning-analysis-tool-name" + "id": { + "description": "Unique identifier for the label.", + "type": "integer", + "format": "int64", + "example": 208045946 }, - "version": { - "$ref": "#/components/schemas/code-scanning-analysis-tool-version" + "node_id": { + "type": "string", + "example": "MDU6TGFiZWwyMDgwNDU5NDY=" }, - "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" + "url": { + "description": "URL for the label", + "example": "https://api.github.com/repositories/42/labels/bug", + "type": "string", + "format": "uri" }, - "start_line": { - "type": "integer" + "name": { + "description": "The name of the label.", + "example": "bug", + "type": "string" }, - "end_line": { - "type": "integer" + "description": { + "description": "Optional description of the label, such as its purpose.", + "type": "string", + "example": "Something isn't working", + "nullable": true }, - "start_column": { - "type": "integer" + "color": { + "description": "6-character hex code, without the leading #, identifying the color", + "example": "FFFFFF", + "type": "string" }, - "end_column": { - "type": "integer" + "default": { + "description": "Whether this label comes by default in a new repository.", + "type": "boolean", + "example": true } - } - }, - "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" + }, + "required": [ + "id", + "node_id", + "url", + "name", + "description", + "color", + "default" ] }, - "code-scanning-alert-instance": { + "discussion": { + "title": "Discussion", + "description": "A Discussion in a repository.", "type": "object", "properties": { - "ref": { - "$ref": "#/components/schemas/code-scanning-ref" - }, - "analysis_key": { - "$ref": "#/components/schemas/code-scanning-analysis-analysis-key" + "active_lock_reason": { + "type": "string", + "nullable": true }, - "environment": { - "$ref": "#/components/schemas/code-scanning-alert-environment" + "answer_chosen_at": { + "type": "string", + "nullable": true }, - "category": { - "$ref": "#/components/schemas/code-scanning-analysis-category" - }, - "state": { - "$ref": "#/components/schemas/code-scanning-alert-state" - }, - "commit_sha": { - "type": "string" - }, - "message": { + "answer_chosen_by": { + "title": "User", "type": "object", + "nullable": true, "properties": { - "text": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { "type": "string" }, - "markdown": { + "html_url": { "type": "string", - "description": "The message text as GitHub-flavored Markdown, with placeholder links for related locations replaced by links to the relevant code. Only populated when related locations are available for the alert instance." + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "type": "string", + "format": "uri" + }, + "type": { + "type": "string", + "enum": [ + "Bot", + "User", + "Organization" + ] + }, + "url": { + "type": "string", + "format": "uri" + }, + "user_view_type": { + "type": "string" } - } + }, + "required": [ + "login", + "id" + ] }, - "location": { - "$ref": "#/components/schemas/code-scanning-alert-location" + "answer_html_url": { + "type": "string", + "nullable": true }, - "html_url": { - "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" + ] }, - "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" + "body": { + "type": "string" }, - "created_at": { - "$ref": "#/components/schemas/alert-created-at" + "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" + ] }, - "updated_at": { - "$ref": "#/components/schemas/alert-updated-at" + "comments": { + "type": "integer" }, - "url": { - "$ref": "#/components/schemas/alert-url" + "created_at": { + "type": "string", + "format": "date-time" }, "html_url": { - "$ref": "#/components/schemas/alert-html-url" + "type": "string" }, - "instances_url": { - "$ref": "#/components/schemas/alert-instances-url" + "id": { + "type": "integer" }, - "state": { - "$ref": "#/components/schemas/code-scanning-alert-state" + "locked": { + "type": "boolean" }, - "fixed_at": { - "$ref": "#/components/schemas/alert-fixed-at" + "node_id": { + "type": "string" }, - "dismissed_by": { - "$ref": "#/components/schemas/nullable-simple-user" + "number": { + "type": "integer" }, - "dismissed_at": { - "$ref": "#/components/schemas/alert-dismissed-at" + "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" + ] }, - "dismissed_reason": { - "$ref": "#/components/schemas/code-scanning-alert-dismissed-reason" + "repository_url": { + "type": "string" }, - "dismissed_comment": { - "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + "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" + ] }, - "rule": { - "$ref": "#/components/schemas/code-scanning-alert-rule-summary" + "state_reason": { + "description": "The reason for the current state", + "example": "resolved", + "type": "string", + "nullable": true, + "enum": [ + "resolved", + "outdated", + "duplicate", + "reopened" + ] }, - "tool": { - "$ref": "#/components/schemas/code-scanning-analysis-tool" + "timeline_url": { + "type": "string" }, - "most_recent_instance": { - "$ref": "#/components/schemas/code-scanning-alert-instance" + "title": { + "type": "string" }, - "repository": { - "$ref": "#/components/schemas/simple-repository" + "updated_at": { + "type": "string", + "format": "date-time" }, - "dismissal_approved_by": { - "$ref": "#/components/schemas/nullable-simple-user" + "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" + ] }, - "assignees": { + "labels": { "type": "array", "items": { - "$ref": "#/components/schemas/simple-user" + "$ref": "#/components/schemas/label" } } }, "required": [ - "number", - "created_at", - "url", + "repository_url", + "category", + "answer_html_url", + "answer_chosen_at", + "answer_chosen_by", "html_url", - "instances_url", + "id", + "node_id", + "number", + "title", + "user", "state", - "dismissed_by", - "dismissed_at", - "dismissed_reason", - "rule", - "tool", - "most_recent_instance", - "repository" + "state_reason", + "locked", + "comments", + "created_at", + "updated_at", + "active_lock_reason", + "body" ] }, - "nullable-codespace-machine": { + "nullable-milestone": { + "title": "Milestone", + "description": "A collection of related issues and pull requests.", "type": "object", - "title": "Codespace machine", - "description": "A description of the machine powering a codespace.", "properties": { - "name": { + "url": { "type": "string", - "description": "The name of the machine.", - "example": "standardLinux" + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/milestones/1" }, - "display_name": { + "html_url": { "type": "string", - "description": "The display name of the machine includes cores, memory, and storage.", - "example": "4 cores, 16 GB RAM, 64 GB storage" + "format": "uri", + "example": "https://github.com/octocat/Hello-World/milestones/v1.0" }, - "operating_system": { + "labels_url": { "type": "string", - "description": "The operating system of the machine.", - "example": "linux" + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/milestones/1/labels" }, - "storage_in_bytes": { + "id": { "type": "integer", - "description": "How much storage is available to the codespace.", - "example": 68719476736 + "example": 1002604 }, - "memory_in_bytes": { - "type": "integer", - "description": "How much memory is available to the codespace.", - "example": 17179869184 + "node_id": { + "type": "string", + "example": "MDk6TWlsZXN0b25lMTAwMjYwNA==" }, - "cpus": { + "number": { + "description": "The number of the milestone.", "type": "integer", - "description": "How many cores are available to the codespace.", - "example": 4 + "example": 42 }, - "prebuild_availability": { + "state": { + "description": "The state of the milestone.", + "example": "open", "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" + "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": [ - "name", - "display_name", - "operating_system", - "storage_in_bytes", - "memory_in_bytes", - "cpus", - "prebuild_availability" + "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 }, - "codespace": { + "issue-type": { + "title": "Issue Type", + "description": "The type assigned to the issue. This is only present for issues in repositories where issue types are supported.", "type": "object", - "title": "Codespace", - "description": "A codespace.", + "nullable": true, "properties": { "id": { "type": "integer", - "format": "int64", - "example": 1 + "description": "The unique identifier of the issue type." }, - "name": { - "description": "Automatically generated name of this codespace.", + "node_id": { "type": "string", - "example": "monalisa-octocat-hello-world-g4wpq6h95q" + "description": "The node identifier of the issue type." }, - "display_name": { - "description": "Display name for this codespace.", + "name": { "type": "string", - "example": "bookish space pancake", - "nullable": true + "description": "The name of the issue type." }, - "environment_id": { - "description": "UUID identifying this codespace's environment.", + "description": { "type": "string", - "example": "26a7c758-7299-4a73-b978-5a92a7ae98a0", + "description": "The description of the issue type.", "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.", + "color": { "type": "string", - "example": ".devcontainer/example/devcontainer.json", - "nullable": true - }, - "prebuild": { - "description": "Whether the codespace was created from a prebuild.", - "type": "boolean", - "example": false, + "description": "The color of the issue type.", + "enum": [ + "gray", + "blue", + "green", + "yellow", + "orange", + "red", + "pink", + "purple" + ], "nullable": true }, "created_at": { "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z" + "description": "The time the issue type created.", + "format": "date-time" }, "updated_at": { "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z" + "description": "The time the issue type last updated.", + "format": "date-time" }, - "last_used_at": { - "description": "Last known time this codespace was started.", - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z" + "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" }, - "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", + "slug": { + "description": "The slug name of the GitHub app", + "example": "probot-owners", "type": "string" }, - "url": { - "description": "API URL for this codespace.", + "node_id": { "type": "string", - "format": "uri" + "example": "MDExOkludGVncmF0aW9uMQ==" }, - "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" + "client_id": { + "type": "string", + "example": "\"Iv1.25b5d1e65ffc4022\"" + }, + "owner": { + "oneOf": [ + { + "$ref": "#/components/schemas/simple-user" }, - "ref": { - "description": "The current branch (or SHA if in detached HEAD state) of the local repository.", - "type": "string", - "example": "main" + { + "$ref": "#/components/schemas/enterprise" } - } + ] }, - "location": { - "description": "The initally assigned location of a new codespace.", - "enum": [ - "EastUs", - "SouthEastAsia", - "WestEurope", - "WestUs2" - ], - "example": "WestUs2", + "name": { + "description": "The name of the GitHub app", + "example": "Probot Owners", "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.", + "description": { "type": "string", - "format": "uri" + "example": "The description of the app.", + "nullable": true }, - "stop_url": { - "description": "API URL to stop this codespace.", + "external_url": { "type": "string", - "format": "uri" + "format": "uri", + "example": "https://example.com" }, - "publish_url": { - "description": "API URL to publish this codespace to a new repository.", + "html_url": { "type": "string", "format": "uri", - "nullable": true + "example": "https://github.com/apps/super-ci" }, - "pulls_url": { - "description": "API URL for the Pull Request associated with this codespace, if any.", + "created_at": { "type": "string", - "format": "uri", - "nullable": true + "format": "date-time", + "example": "2017-07-08T16:18:44-04:00" }, - "recent_folders": { - "type": "array", - "items": { - "type": "string" - } + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2017-07-08T16:18:44-04:00" }, - "runtime_constraints": { + "permissions": { + "description": "The set of permissions for the GitHub app", "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 + "issues": { + "type": "string" + }, + "checks": { + "type": "string" + }, + "metadata": { + "type": "string" + }, + "contents": { + "type": "string" + }, + "deployments": { + "type": "string" } + }, + "additionalProperties": { + "type": "string" + }, + "example": { + "issues": "read", + "deployments": "write" } }, - "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 + "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" + } }, - "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 + "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", - "name", - "environment_id", + "node_id", "owner", - "billable_owner", - "repository", - "machine", - "prebuild", + "name", + "description", + "external_url", + "html_url", "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" + "permissions", + "events" ] }, - "codespaces-org-secret": { - "title": "Codespaces Secret", - "description": "Secrets for a GitHub Codespace.", + "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": { - "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.", + "url": { "type": "string", - "format": "date-time" + "format": "uri" }, - "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" + "total_count": { + "type": "integer" }, - "visibility": { - "description": "The type of repositories in the organization that the secret is visible to", - "enum": [ - "all", - "private", - "selected" - ], - "type": "string" + "+1": { + "type": "integer" }, - "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" + "-1": { + "type": "integer" + }, + "laugh": { + "type": "integer" + }, + "confused": { + "type": "integer" + }, + "heart": { + "type": "integer" + }, + "hooray": { + "type": "integer" + }, + "eyes": { + "type": "integer" + }, + "rocket": { + "type": "integer" } }, "required": [ - "name", - "created_at", - "updated_at", - "visibility" + "url", + "total_count", + "+1", + "-1", + "laugh", + "confused", + "heart", + "hooray", + "eyes", + "rocket" ] }, - "codespaces-public-key": { - "title": "CodespacesPublicKey", - "description": "The public key used for setting Codespaces secrets.", + "sub-issues-summary": { + "title": "Sub-issues Summary", "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" + "total": { + "type": "integer" }, - "title": { - "type": "string", - "example": "ssh-rsa AAAAB3NzaC1yc2EAAA" + "completed": { + "type": "integer" }, - "created_at": { - "type": "string", - "example": "2011-01-26T19:01:12Z" + "percent_completed": { + "type": "integer" } }, "required": [ - "key_id", - "key" + "total", + "completed", + "percent_completed" ] }, - "copilot-organization-seat-breakdown": { - "title": "Copilot Seat Breakdown", - "description": "The breakdown of Copilot Business seats for the organization.", + "nullable-pinned-issue-comment": { + "title": "Pinned Issue Comment", + "description": "Context around who pinned an issue comment and when it was pinned.", "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." + "pinned_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" }, - "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." + "pinned_by": { + "$ref": "#/components/schemas/nullable-simple-user" } - } + }, + "required": [ + "pinned_at", + "pinned_by" + ], + "nullable": true }, - "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.", + "nullable-issue-comment-minimized": { + "title": "Minimized Issue Comment", + "description": "Details about why an issue comment was minimized.", "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": { + "reason": { + "description": "The reason the comment was minimized.", "type": "string", - "description": "The Copilot plan of the organization, or the parent enterprise, when applicable.", - "enum": [ - "business", - "enterprise" - ] + "nullable": true, + "example": "low-quality" } }, "required": [ - "seat_breakdown", - "public_code_suggestions", - "seat_management_setting" + "reason" ], - "additionalProperties": true + "nullable": true }, - "nullable-organization-simple": { - "title": "Organization Simple", - "description": "A GitHub organization.", + "nullable-issue-comment": { + "title": "Issue Comment", + "description": "Comments provide a way for people to collaborate on an issue.", "type": "object", "properties": { - "login": { - "type": "string", - "example": "github" - }, "id": { + "description": "Unique identifier of the issue comment", + "example": 42, "type": "integer", - "example": 1 + "format": "int64" }, "node_id": { - "type": "string", - "example": "MDEyOk9yZ2FuaXphdGlvbjE=" + "type": "string" }, "url": { + "description": "URL for the issue comment", + "example": "https://api.github.com/repositories/42/issues/comments/1", "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/github" + "format": "uri" }, - "repos_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/github/repos" + "body": { + "description": "Contents of the issue comment", + "example": "What version of Safari were you using when you observed this bug?", + "type": "string" }, - "events_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/orgs/github/events" + "body_text": { + "type": "string" }, - "hooks_url": { - "type": "string", - "example": "https://api.github.com/orgs/github/hooks" + "body_html": { + "type": "string" }, - "issues_url": { + "html_url": { "type": "string", - "example": "https://api.github.com/orgs/github/issues" + "format": "uri" }, - "members_url": { - "type": "string", - "example": "https://api.github.com/orgs/github/members{/member}" + "user": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "public_members_url": { + "created_at": { "type": "string", - "example": "https://api.github.com/orgs/github/public_members{/member}" + "format": "date-time", + "example": "2011-04-14T16:00:49Z" }, - "avatar_url": { + "updated_at": { "type": "string", - "example": "https://github.com/images/error/octocat_happy.gif" + "format": "date-time", + "example": "2011-04-14T16:00:49Z" }, - "description": { + "issue_url": { "type": "string", - "example": "A great organization", - "nullable": true + "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" + }, + "minimized": { + "$ref": "#/components/schemas/nullable-issue-comment-minimized" } }, "required": [ - "login", - "url", "id", "node_id", - "repos_url", - "events_url", - "hooks_url", - "issues_url", - "members_url", - "public_members_url", - "avatar_url", - "description" + "html_url", + "issue_url", + "user", + "url", + "created_at", + "updated_at" ], "nullable": true }, - "copilot-seat-details": { - "title": "Copilot Business Seat Detail", - "description": "Information about a Copilot Business seat assignment for a user, team, or organization.", + "issue-dependencies-summary": { + "title": "Issue Dependencies Summary", "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." + "blocked_by": { + "type": "integer" }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "Timestamp of when the assignee was last granted access to GitHub Copilot, in ISO 8601 format." + "blocking": { + "type": "integer" }, - "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." + "total_blocked_by": { + "type": "integer" }, - "plan_type": { - "type": "string", - "description": "The Copilot plan of the organization, or the parent enterprise, when applicable.", - "enum": [ - "business", - "enterprise", - "unknown" - ] + "total_blocking": { + "type": "integer" } }, "required": [ - "created_at" - ], - "additionalProperties": false - }, - "copilot-organization-content-exclusion-details": { - "title": "Copilot Organization Content Exclusion Details", - "description": "List all Copilot Content Exclusion rules for an organization.", - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string", - "description": "The path to the file that will be excluded." - } - } + "blocked_by", + "blocking", + "total_blocked_by", + "total_blocking" + ] }, - "copilot-ide-code-completions": { + "issue-field-value": { + "title": "Issue Field Value", + "description": "A value assigned to an issue field", "type": "object", - "description": "Usage metrics for Copilot editor code completions in the IDE.", - "nullable": true, - "additionalProperties": true, "properties": { - "total_engaged_users": { + "issue_field_id": { + "description": "Unique identifier for the issue field.", "type": "integer", - "description": "Number of users who accepted at least one Copilot code suggestion, across all active editors. Includes both full and partial acceptances." + "format": "int64", + "example": 1 }, - "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." - } - } - } + "issue_field_name": { + "description": "The human-readable name of the issue field.", + "type": "string", + "example": "Priority" }, - "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." - } - } - } - } - } - } - } + "node_id": { + "type": "string", + "example": "IFT_GDKND" + }, + "data_type": { + "description": "The data type of the issue field", + "type": "string", + "enum": [ + "text", + "single_select", + "multi_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 } - } - } - } - }, - "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." + ], + "nullable": true }, - "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." - } - } - } - } + "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" } - } - } - } - }, - "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." + }, + "required": [ + "id", + "name", + "color" + ], + "nullable": true }, - "models": { + "multi_select_options": { + "description": "Details about the selected options", "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": { + "id": { + "description": "Unique identifier for the option.", "type": "integer", - "description": "Total number of users who prompted Copilot Chat on github.com at least once for each model." + "format": "int64", + "example": 1 }, - "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": { + "description": "The name of the option", "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." + "example": "High" }, - "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." - } - } - } + "color": { + "description": "The color of the option", + "type": "string", + "example": "red" } - } - } - } - } - }, - "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": [ + "id", + "name", + "color" + ] + }, + "nullable": true } }, "required": [ - "date" - ], - "additionalProperties": true + "issue_field_id", + "node_id", + "data_type", + "value" + ] }, - "organization-dependabot-secret": { - "title": "Dependabot Secret for an Organization", - "description": "Secrets for GitHub Dependabot for an organization.", + "issue": { + "title": "Issue", + "description": "Issues are a great way to keep track of tasks, enhancements, and bugs for your projects.", "type": "object", "properties": { - "name": { - "description": "The name of the secret.", - "example": "SECRET_TOKEN", + "id": { + "type": "integer", + "format": "int64" + }, + "node_id": { "type": "string" }, - "created_at": { + "url": { + "description": "URL for the issue", + "example": "https://api.github.com/repositories/42/issues/1", "type": "string", - "format": "date-time" + "format": "uri" }, - "updated_at": { + "repository_url": { "type": "string", - "format": "date-time" + "format": "uri" }, - "visibility": { - "description": "Visibility of a secret", - "enum": [ - "all", - "private", - "selected" - ], + "labels_url": { "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": { + "comments_url": { "type": "string", - "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + "format": "uri" }, - "name": { + "events_url": { "type": "string", - "example": "Hello-World" + "format": "uri" }, - "full_name": { + "html_url": { "type": "string", - "example": "octocat/Hello-World" + "format": "uri" }, - "owner": { - "$ref": "#/components/schemas/simple-user" + "number": { + "description": "Number uniquely identifying the issue within its repository", + "example": 42, + "type": "integer" }, - "private": { - "type": "boolean" + "state": { + "description": "State of the issue; either 'open' or 'closed'", + "example": "open", + "type": "string" }, - "html_url": { + "state_reason": { + "description": "The reason for the current state", + "example": "not_planned", "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World" + "nullable": true, + "enum": [ + "completed", + "reopened", + "not_planned", + "duplicate" + ] }, - "description": { + "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", - "example": "This your first repo!", "nullable": true }, - "fork": { - "type": "boolean" + "user": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World" + "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" + } + } + } + ] + } }, - "archive_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + "assignee": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "assignees_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + "assignees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } }, - "blobs_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + "milestone": { + "$ref": "#/components/schemas/nullable-milestone" }, - "branches_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + "locked": { + "type": "boolean" }, - "collaborators_url": { + "active_lock_reason": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + "nullable": true }, - "comments_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + "comments": { + "type": "integer" }, - "commits_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + "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" + ] }, - "compare_url": { + "closed_at": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + "format": "date-time", + "nullable": true }, - "contents_url": { + "created_at": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + "format": "date-time" }, - "contributors_url": { + "updated_at": { "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + "format": "date-time" }, - "deployments_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + "draft": { + "type": "boolean" }, - "downloads_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + "closed_by": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "events_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/events" + "body_html": { + "type": "string" }, - "forks_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/forks" + "body_text": { + "type": "string" }, - "git_commits_url": { + "timeline_url": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + "format": "uri" }, - "git_refs_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + "type": { + "$ref": "#/components/schemas/issue-type" }, - "git_tags_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + "repository": { + "$ref": "#/components/schemas/repository" }, - "git_url": { - "type": "string" + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" }, - "issue_comment_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + "author_association": { + "$ref": "#/components/schemas/author-association" }, - "issue_events_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + "reactions": { + "$ref": "#/components/schemas/reaction-rollup" }, - "issues_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + "sub_issues_summary": { + "$ref": "#/components/schemas/sub-issues-summary" }, - "keys_url": { + "parent_issue_url": { + "description": "URL to get the parent issue of this issue, if it is a sub-issue", "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + "format": "uri", + "nullable": true }, - "labels_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + "pinned_comment": { + "$ref": "#/components/schemas/nullable-issue-comment" }, - "languages_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/languages" + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" }, - "merges_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/merges" + "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" + ], + "x-github-breaking-changes": [ + { + "changeset": "deprecate_beta_media_type", + "patch": { + "properties": { + "pull_request": { + "type": "object", + "properties": { + "merged_at": { + "nullable": false + }, + "diff_url": { + "nullable": false + }, + "html_url": { + "nullable": false + }, + "patch_url": { + "nullable": false + }, + "url": { + "nullable": false + } + } + } + } + }, + "version": "2026-03-10" }, - "milestones_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + { + "changeset": "remove_singular_assignee_from_issues_and_pull_requests", + "patch": { + "properties": { + "assignee": null + }, + "required": [ + "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" + ] + }, + "version": "2026-03-10" + } + ] + }, + "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" }, - "notifications_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + "node_id": { + "type": "string" }, - "pulls_url": { + "url": { + "description": "URL for the issue comment", + "example": "https://api.github.com/repositories/42/issues/comments/1", "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + "format": "uri" }, - "releases_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + "body": { + "description": "Contents of the issue comment", + "example": "What version of Safari were you using when you observed this bug?", + "type": "string" }, - "ssh_url": { + "body_text": { "type": "string" }, - "stargazers_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + "body_html": { + "type": "string" }, - "statuses_url": { + "html_url": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + "format": "uri" }, - "subscribers_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + "user": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "subscription_url": { + "created_at": { "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + "format": "date-time", + "example": "2011-04-14T16:00:49Z" }, - "tags_url": { + "updated_at": { "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/tags" + "format": "date-time", + "example": "2011-04-14T16:00:49Z" }, - "teams_url": { + "issue_url": { "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/teams" + "format": "uri" }, - "trees_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + "author_association": { + "$ref": "#/components/schemas/author-association" }, - "clone_url": { - "type": "string" + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" }, - "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" + "reactions": { + "$ref": "#/components/schemas/reaction-rollup" }, - "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" + "pin": { + "$ref": "#/components/schemas/nullable-pinned-issue-comment" }, - "default_branch": { - "type": "string" + "minimized": { + "$ref": "#/components/schemas/nullable-issue-comment-minimized" + } + }, + "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" }, - "open_issues_count": { + "number": { "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" - }, - "pull_request_creation_policy": { - "description": "The policy controlling who can create pull requests: all or collaborators_only.", - "type": "string", - "enum": [ - "all", - "collaborators_only" - ] - }, - "archived": { - "type": "boolean" - }, - "disabled": { - "type": "boolean" - }, - "visibility": { + "url": { "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": { + "head": { "type": "object", "properties": { - "admin": { - "type": "boolean" - }, - "maintain": { - "type": "boolean" - }, - "push": { - "type": "boolean" + "ref": { + "type": "string" }, - "triage": { - "type": "boolean" + "sha": { + "type": "string" }, - "pull": { - "type": "boolean" + "repo": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "url": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "name" + ] } - } - }, - "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" + }, + "required": [ + "ref", + "sha", + "repo" + ] }, - "license": { + "base": { "type": "object", "properties": { - "key": { - "type": "string" - }, - "name": { + "ref": { "type": "string" }, - "spdx_id": { + "sha": { "type": "string" }, - "url": { - "type": "string", - "nullable": true - }, - "node_id": { - "type": "string" + "repo": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "url": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "id", + "url", + "name" + ] } }, - "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": [ + "ref", + "sha", + "repo" + ] } }, "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" - ], - "x-github-breaking-changes": [ - { - "changeset": "remove_has_downloads", - "patch": { - "properties": { - "has_downloads": null - } - }, - "version": "2026-03-10" - } - ], - "nullable": true + "number", + "url", + "head", + "base" + ] }, - "package": { - "title": "Package", - "description": "A software package", + "release-asset": { + "title": "Release Asset", + "description": "Data related to a release.", "type": "object", "properties": { - "id": { - "description": "Unique identifier of the package.", - "type": "integer", - "example": 1 - }, - "name": { - "description": "The name of the package.", + "url": { "type": "string", - "example": "super-linter" + "format": "uri" }, - "package_type": { + "browser_download_url": { "type": "string", - "example": "docker", - "enum": [ - "npm", - "maven", - "rubygems", - "docker", - "nuget", - "container" - ] + "format": "uri" }, - "url": { - "type": "string", - "example": "https://api.github.com/orgs/github/packages/container/super-linter" + "id": { + "type": "integer" }, - "html_url": { + "node_id": { + "type": "string" + }, + "name": { + "description": "The file name of the asset.", "type": "string", - "example": "https://github.com/orgs/github/packages/container/package/super-linter" + "example": "Team Environment" }, - "version_count": { - "description": "The number of versions of the package.", - "type": "integer", - "example": 1 + "label": { + "type": "string", + "nullable": true }, - "visibility": { + "state": { + "description": "State of the release asset.", "type": "string", - "example": "private", "enum": [ - "private", - "public" + "uploaded", + "open" ] }, - "owner": { - "$ref": "#/components/schemas/nullable-simple-user" + "content_type": { + "type": "string" }, - "repository": { - "$ref": "#/components/schemas/nullable-minimal-repository" + "size": { + "type": "integer" + }, + "digest": { + "type": "string", + "nullable": true + }, + "download_count": { + "type": "integer" }, "created_at": { "type": "string", @@ -119895,1321 +124899,725 @@ "updated_at": { "type": "string", "format": "date-time" + }, + "uploader": { + "$ref": "#/components/schemas/nullable-simple-user" } }, "required": [ "id", "name", - "package_type", - "visibility", + "content_type", + "size", + "digest", + "state", "url", - "html_url", - "version_count", + "node_id", + "download_count", + "label", + "uploader", + "browser_download_url", "created_at", "updated_at" ] }, - "organization-invitation": { - "title": "Organization Invitation", - "description": "Organization Invitation", + "release": { + "title": "Release", + "description": "A release.", "type": "object", "properties": { - "id": { - "type": "integer", - "format": "int64" + "url": { + "type": "string", + "format": "uri" }, - "login": { + "html_url": { + "type": "string", + "format": "uri" + }, + "assets_url": { + "type": "string", + "format": "uri" + }, + "upload_url": { + "type": "string" + }, + "tarball_url": { "type": "string", + "format": "uri", "nullable": true }, - "email": { + "zipball_url": { "type": "string", + "format": "uri", "nullable": true }, - "role": { + "id": { + "type": "integer" + }, + "node_id": { "type": "string" }, - "created_at": { + "tag_name": { + "description": "The name of the tag.", + "example": "v1.0.0", "type": "string" }, - "failed_at": { + "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 }, - "failed_reason": { + "body": { "type": "string", "nullable": true }, - "inviter": { - "$ref": "#/components/schemas/simple-user" + "draft": { + "description": "true to create a draft (unpublished) release, false to create a published one.", + "example": false, + "type": "boolean" }, - "team_count": { - "type": "integer" + "prerelease": { + "description": "Whether to identify the release as a prerelease or a full release.", + "example": false, + "type": "boolean" }, - "node_id": { + "immutable": { + "description": "Whether or not the release is immutable.", + "example": false, + "type": "boolean" + }, + "created_at": { "type": "string", - "example": "\"MDIyOk9yZ2FuaXphdGlvbkludml0YXRpb24x\"" + "format": "date-time" }, - "invitation_teams_url": { + "published_at": { "type": "string", - "example": "\"https://api.github.com/organizations/16/invitations/1/teams\"" + "format": "date-time", + "nullable": true }, - "invitation_source": { + "updated_at": { "type": "string", - "example": "\"member\"" + "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": [ - "id", - "login", - "email", - "role", + "assets_url", + "upload_url", + "tarball_url", + "zipball_url", "created_at", - "inviter", - "team_count", - "invitation_teams_url", - "node_id" + "published_at", + "draft", + "id", + "node_id", + "author", + "html_url", + "name", + "prerelease", + "tag_name", + "target_commitish", + "assets", + "url" ] }, - "org-hook": { - "title": "Org Hook", - "description": "Org Hook", + "event": { + "title": "Event", + "description": "Event", "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" + "type": "string" }, - "name": { + "type": { "type": "string", - "example": "web" - }, - "events": { - "type": "array", - "example": [ - "push", - "pull_request" - ], - "items": { - "type": "string" - } + "nullable": true }, - "active": { - "type": "boolean", - "example": true + "actor": { + "$ref": "#/components/schemas/actor" }, - "config": { + "repo": { "type": "object", "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, "url": { "type": "string", - "example": "\"http://example.com/2\"" + "format": "uri" + } + }, + "required": [ + "id", + "name", + "url" + ] + }, + "org": { + "$ref": "#/components/schemas/actor" + }, + "payload": { + "oneOf": [ + { + "$ref": "#/components/schemas/create-event" }, - "insecure_ssl": { - "type": "string", - "example": "\"0\"" + { + "$ref": "#/components/schemas/delete-event" }, - "content_type": { - "type": "string", - "example": "\"form\"" + { + "$ref": "#/components/schemas/discussion-event" }, - "secret": { - "type": "string", - "example": "\"********\"" + { + "$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" } - } + ] }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2011-09-06T20:39:23Z" + "public": { + "type": "boolean" }, "created_at": { "type": "string", "format": "date-time", - "example": "2011-09-06T17:26:27Z" - }, - "type": { - "type": "string" + "nullable": true } }, "required": [ "id", - "url", "type", - "name", - "active", - "events", - "config", - "ping_url", - "created_at", - "updated_at" + "actor", + "repo", + "payload", + "public", + "created_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", + "link-with-type": { + "title": "Link With Type", + "description": "Hypermedia Link with Type", "type": "object", "properties": { - "total_request_count": { - "description": "The total number of requests within the queried time period", - "type": "integer", - "format": "int64" + "href": { + "type": "string" }, - "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" - } + "type": { + "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" + }, + "required": [ + "href", + "type" ] }, - "interaction-limit-response": { - "title": "Interaction Limits", - "description": "Interaction limit settings.", + "feed": { + "title": "Feed", + "description": "Feed", "type": "object", "properties": { - "limit": { - "$ref": "#/components/schemas/interaction-group" + "timeline_url": { + "type": "string", + "example": "https://github.com/timeline" }, - "origin": { + "user_url": { "type": "string", - "example": "repository" + "example": "https://github.com/{user}" }, - "expires_at": { + "current_user_public_url": { "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" + "example": "https://github.com/octocat" }, - "expiry": { - "$ref": "#/components/schemas/interaction-expiry" + "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": [ - "limit" + "_links", + "timeline_url", + "user_url" ] }, - "issue-field": { - "title": "Issue Field", - "description": "A custom attribute defined at the organization level for attaching structured data to issues.", + "base-gist": { + "title": "Base Gist", + "description": "Base Gist", "type": "object", - "nullable": true, "properties": { - "id": { - "type": "integer", - "description": "The unique identifier of the issue field." + "url": { + "type": "string", + "format": "uri" }, - "node_id": { + "forks_url": { "type": "string", - "description": "The node identifier of the issue field." + "format": "uri" }, - "name": { + "commits_url": { "type": "string", - "description": "The name of the issue field." + "format": "uri" }, - "description": { + "id": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "git_pull_url": { "type": "string", - "description": "The description of the issue field.", - "nullable": true + "format": "uri" }, - "data_type": { + "git_push_url": { "type": "string", - "description": "The data type of the issue field.", - "enum": [ - "text", - "date", - "single_select", - "number" - ] + "format": "uri" }, - "visibility": { + "html_url": { "type": "string", - "description": "The visibility of the issue field. Can be `organization_members_only` (visible only within the organization) or `all` (visible to all users who can see issues).", - "enum": [ - "organization_members_only", - "all" - ] + "format": "uri" }, - "options": { - "description": "Available options for single select fields.", - "type": "array", - "items": { + "files": { + "type": "object", + "additionalProperties": { "type": "object", "properties": { - "id": { - "type": "integer", - "description": "The unique identifier of the option." - }, - "name": { - "type": "string", - "description": "The name of the option." - }, - "description": { - "type": "string", - "description": "The description of the option.", - "nullable": true - }, - "color": { - "type": "string", - "description": "The color of the option.", - "enum": [ - "gray", - "blue", - "green", - "yellow", - "orange", - "red", - "pink", - "purple" - ], - "nullable": true - }, - "priority": { - "type": "integer", - "description": "The priority of the option for ordering.", - "nullable": true - }, - "created_at": { - "type": "string", - "description": "The time the option was created.", - "format": "date-time" - }, - "updated_at": { - "type": "string", - "description": "The time the option was last updated.", - "format": "date-time" - } - }, - "required": [ - "id", - "name" - ] - }, - "nullable": true - }, - "created_at": { - "type": "string", - "description": "The time the issue field was created.", - "format": "date-time" - }, - "updated_at": { - "type": "string", - "description": "The time the issue field was last updated.", - "format": "date-time" - } - }, - "required": [ - "id", - "node_id", - "name", - "data_type" - ] - }, - "organization-create-issue-field": { - "type": "object", - "properties": { - "name": { - "description": "Name of the issue field.", - "type": "string" - }, - "description": { - "description": "Description of the issue field.", - "type": "string", - "nullable": true - }, - "data_type": { - "description": "The data type of the issue field.", - "type": "string", - "enum": [ - "text", - "date", - "single_select", - "number" - ] - }, - "visibility": { - "description": "The visibility of the issue field. Can be `organization_members_only` (visible only within the organization) or `all` (visible to all users who can see issues). Only used when the visibility settings feature is enabled. Defaults to `organization_members_only`.", - "type": "string", - "enum": [ - "organization_members_only", - "all" - ] - }, - "options": { - "description": "Options for single select fields. Required when data_type is 'single_select'.", - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "description": "Name of the option.", + "filename": { "type": "string" }, - "description": { - "description": "Description of the option.", - "type": "string", - "nullable": true + "type": { + "type": "string" }, - "color": { - "description": "Color for the option.", - "type": "string", - "enum": [ - "gray", - "blue", - "green", - "yellow", - "orange", - "red", - "pink", - "purple" - ] + "language": { + "type": "string" }, - "priority": { - "description": "Priority of the option for ordering.", - "type": "integer" - } - }, - "required": [ - "name", - "color", - "priority" - ] - }, - "nullable": true - } - }, - "required": [ - "name", - "data_type" - ] - }, - "organization-update-issue-field": { - "type": "object", - "properties": { - "name": { - "description": "Name of the issue field.", - "type": "string" - }, - "description": { - "description": "Description of the issue field.", - "type": "string", - "nullable": true - }, - "visibility": { - "description": "The visibility of the issue field. Can be `organization_members_only` (visible only within the organization) or `all` (visible to all users who can see issues). Only used when the visibility settings feature is enabled.", - "type": "string", - "enum": [ - "organization_members_only", - "all" - ] - }, - "options": { - "description": "Options for single select fields. Only applicable when updating single_select fields.", - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "description": "Name of the option.", + "raw_url": { "type": "string" }, - "description": { - "description": "Description of the option.", - "type": "string", - "nullable": true + "size": { + "type": "integer" }, - "color": { - "description": "Color for the option.", + "encoding": { "type": "string", - "enum": [ - "gray", - "blue", - "green", - "yellow", - "orange", - "red", - "pink", - "purple" - ] - }, - "priority": { - "description": "Priority of the option for ordering.", - "type": "integer" + "description": "The encoding used for `content`. Currently, `\"utf-8\"` and `\"base64\"` are supported.", + "default": "utf-8" } - }, - "required": [ - "name", - "color", - "priority" - ] + } } - } - } - }, - "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.", + "public": { "type": "boolean" }, - "description": { - "description": "Description of the issue type.", + "created_at": { "type": "string", - "nullable": true + "format": "date-time" }, - "color": { - "description": "Color for the issue type.", + "updated_at": { "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" + "format": "date-time" }, "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" + "comments": { + "type": "integer" }, - "organization": { - "$ref": "#/components/schemas/organization-simple" + "comments_enabled": { + "type": "boolean" }, "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": { + "comments_url": { "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" + "format": "uri" }, - "exclude_owner_projects": { - "type": "boolean" + "owner": { + "$ref": "#/components/schemas/simple-user" }, - "org_metadata_only": { + "truncated": { "type": "boolean" }, - "repositories": { + "forks": { "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" + "items": {} }, - "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\"`.", + "history": { "type": "array", - "items": { - "description": "Allowed values that can be passed to the exclude parameter. The array can include any of: `\"repositories\"`.", - "type": "string" - } + "items": {} } }, "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", + "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-breaking-changes": [ { - "changeset": "restrict_repo_fields_in_migration_resource", + "changeset": "deprecate_beta_media_type", + "patch": { + "properties": { + "user": null + }, + "required": [ + "id", + "node_id", + "url", + "forks_url", + "commits_url", + "git_pull_url", + "git_push_url", + "html_url", + "comments_url", + "public", + "description", + "comments", + "files", + "created_at", + "updated_at" + ] + }, + "version": "2026-03-10" + }, + { + "changeset": "remove_forks_history_from_base_gist", "patch": [ { - "op": "replace", - "path": "/properties/repositories", - "value": { - "type": "array", - "description": "The repositories included in the migration. Only returned for export migrations.", - "items": { - "$ref": "#/components/schemas/simple-repository" - } - } + "op": "remove", + "path": "/properties/forks" + }, + { + "op": "remove", + "path": "/properties/history" } ], "version": "2026-03-10" } ] }, - "organization-role": { - "title": "Organization Role", - "description": "Organization roles", + "public-user": { + "title": "Public User", + "description": "Public User", "type": "object", "properties": { + "login": { + "type": "string" + }, "id": { - "description": "The unique identifier of the role.", "type": "integer", "format": "int64" }, - "name": { - "description": "The name of the role.", + "user_view_type": { "type": "string" }, - "description": { - "description": "A short description about who this role is for or what permissions it grants.", - "type": "string", - "nullable": true + "node_id": { + "type": "string" }, - "base_role": { + "avatar_url": { "type": "string", - "nullable": true, - "description": "The system role from which this role inherits permissions.", - "enum": [ - "read", - "triage", - "write", - "maintain", - "admin" - ] + "format": "uri" }, - "source": { + "gravatar_id": { "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" + "nullable": true }, - "created_at": { - "description": "The date and time the role was created.", + "url": { "type": "string", - "format": "date-time" + "format": "uri" }, - "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": { + "html_url": { "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" + "format": "uri" }, - "description": { + "followers_url": { "type": "string", - "nullable": true + "format": "uri" }, - "privacy": { + "following_url": { "type": "string" }, - "notification_setting": { + "gists_url": { "type": "string" }, - "permission": { + "starred_url": { "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" - ] + "subscriptions_url": { + "type": "string", + "format": "uri" }, - "url": { + "organizations_url": { "type": "string", "format": "uri" }, - "html_url": { + "repos_url": { "type": "string", - "format": "uri", - "example": "https://github.com/orgs/rails/teams/core" + "format": "uri" }, - "members_url": { + "events_url": { "type": "string" }, - "repositories_url": { + "received_events_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" + "type": "string" }, - "members_url": { - "type": "string", - "example": "https://api.github.com/organizations/1/team/1/members{/member}" + "site_admin": { + "type": "boolean" }, "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" + "nullable": true }, - "slug": { + "company": { "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" + "nullable": true }, - "type": { - "description": "The ownership type of the team", + "blog": { "type": "string", - "enum": [ - "enterprise", - "organization" - ] - }, - "organization_id": { - "type": "integer", - "description": "Unique identifier of the organization to which this team belongs", - "example": 37 + "nullable": true }, - "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": { + "location": { "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" + "nullable": true }, "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" + "format": "email", + "nullable": true }, - "gravatar_id": { + "notification_email": { "type": "string", - "example": "41d064eb2195891e12d0413f63227ea7", + "format": "email", "nullable": true }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat" + "hireable": { + "type": "boolean", + "nullable": true }, - "html_url": { + "bio": { "type": "string", - "format": "uri", - "example": "https://github.com/octocat" + "nullable": true }, - "followers_url": { + "twitter_username": { "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/followers" + "nullable": true }, - "following_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/following{/other_user}" + "public_repos": { + "type": "integer" }, - "gists_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/gists{/gist_id}" + "public_gists": { + "type": "integer" }, - "starred_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + "followers": { + "type": "integer" }, - "subscriptions_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/subscriptions" + "following": { + "type": "integer" }, - "organizations_url": { + "created_at": { "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/orgs" + "format": "date-time" }, - "repos_url": { + "updated_at": { "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/repos" + "format": "date-time" }, - "events_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/events{/privacy}" + "plan": { + "type": "object", + "properties": { + "collaborators": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "space": { + "type": "integer" + }, + "private_repos": { + "type": "integer" + } + }, + "required": [ + "collaborators", + "name", + "space", + "private_repos" + ] }, - "received_events_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/received_events" + "private_gists": { + "type": "integer", + "example": 1 }, - "type": { - "type": "string", - "example": "User" + "total_private_repos": { + "type": "integer", + "example": 2 }, - "site_admin": { - "type": "boolean" + "owned_private_repos": { + "type": "integer", + "example": 2 }, - "starred_at": { - "type": "string", - "example": "\"2020-07-09T00:17:55Z\"" + "disk_usage": { + "type": "integer", + "example": 1 }, - "user_view_type": { - "type": "string", - "example": "public" + "collaborators": { + "type": "integer", + "example": 3 } }, "required": [ @@ -121230,2048 +125638,1207 @@ "starred_url", "subscriptions_url", "type", - "url" - ] + "url", + "bio", + "blog", + "company", + "email", + "followers", + "following", + "hireable", + "location", + "name", + "public_gists", + "public_repos", + "created_at", + "updated_at" + ], + "additionalProperties": false }, - "package-version": { - "title": "Package Version", - "description": "A version of a software package", + "gist-history": { + "title": "Gist History", + "description": "Gist History", "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" + "user": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "description": { + "version": { "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": { + "committed_at": { "type": "string", - "format": "date-time", - "example": "2014-03-03T18:58:10Z" + "format": "date-time" }, - "metadata": { + "change_status": { "type": "object", - "title": "Package Version Metadata", "properties": { - "package_type": { - "type": "string", - "example": "docker", - "enum": [ - "npm", - "maven", - "rubygems", - "docker", - "nuget", - "container" - ] + "total": { + "type": "integer" }, - "container": { - "type": "object", - "title": "Container Metadata", - "properties": { - "tags": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "tags" - ] + "additions": { + "type": "integer" }, - "docker": { - "type": "object", - "title": "Docker Metadata", - "properties": { - "tag": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "tags" - ] + "deletions": { + "type": "integer" } - }, - "required": [ - "package_type" - ] + } + }, + "url": { + "type": "string", + "format": "uri" } - }, - "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", + "gist-simple": { + "title": "Gist Simple", + "description": "Gist Simple", "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", + "forks": { + "deprecated": true, "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." + "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" + } + } + } }, - "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`." + "history": { + "deprecated": true, + "nullable": true, + "type": "array", + "items": { + "$ref": "#/components/schemas/gist-history" + } }, - "permissions": { + "fork_of": { + "nullable": true, + "title": "Gist", + "description": "Gist", "type": "object", - "description": "Permissions requested, categorized by type of permission.", "properties": { - "organization": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "url": { + "type": "string", + "format": "uri" }, - "repository": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "forks_url": { + "type": "string", + "format": "uri" }, - "other": { + "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": "string" + "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": {} } - } - }, - "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." + }, + "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" + ] }, - "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." + "url": { + "type": "string" }, - "token_expired": { - "type": "boolean", - "description": "Whether the associated fine-grained personal access token has expired." + "forks_url": { + "type": "string" }, - "token_expires_at": { - "type": "string", - "nullable": true, - "description": "Date and time when the associated fine-grained personal access token expires." + "commits_url": { + "type": "string" }, - "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." + "type": "string" }, - "owner": { - "$ref": "#/components/schemas/simple-user" + "node_id": { + "type": "string" }, - "repository_selection": { - "type": "string", - "enum": [ - "none", - "all", - "subset" - ], - "description": "Type of repository selection requested." + "git_pull_url": { + "type": "string" }, - "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`." + "git_push_url": { + "type": "string" }, - "permissions": { + "html_url": { + "type": "string" + }, + "files": { "type": "object", - "description": "Permissions requested, categorized by type of permission.", - "properties": { - "organization": { - "type": "object", - "additionalProperties": { + "additionalProperties": { + "nullable": true, + "type": "object", + "properties": { + "filename": { "type": "string" - } - }, - "repository": { - "type": "object", - "additionalProperties": { + }, + "type": { "type": "string" - } - }, - "other": { - "type": "object", - "additionalProperties": { + }, + "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" } } } }, - "access_granted_at": { - "type": "string", - "description": "Date and time when the fine-grained personal access token was approved to access the organization." + "public": { + "type": "boolean" }, - "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." + "created_at": { + "type": "string" }, - "token_name": { + "updated_at": { + "type": "string" + }, + "description": { "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." + "nullable": true }, - "token_expired": { - "type": "boolean", - "description": "Whether the associated fine-grained personal access token has expired." + "comments": { + "type": "integer" }, - "token_expires_at": { - "type": "string", - "nullable": true, - "description": "Date and time when the associated fine-grained personal access token expires." + "comments_enabled": { + "type": "boolean" }, - "token_last_used_at": { + "user": { "type": "string", - "nullable": true, - "description": "Date and time when the associated fine-grained personal access token was last used for authentication." + "nullable": true + }, + "comments_url": { + "type": "string" + }, + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "truncated": { + "type": "boolean" } }, - "required": [ - "id", - "owner", - "repository_selection", - "repositories_url", - "permissions", - "access_granted_at", - "token_id", - "token_name", - "token_expired", - "token_expires_at", - "token_last_used_at" + "x-github-breaking-changes": [ + { + "changeset": "remove_forks_history_from_base_gist", + "patch": [ + { + "op": "remove", + "path": "/properties/forks" + }, + { + "op": "remove", + "path": "/properties/history" + } + ], + "version": "2026-03-10" + } ] }, - "org-private-registry-configuration": { - "title": "Organization private registry", - "description": "Private registry configuration for an organization", + "gist-comment": { + "title": "Gist Comment", + "description": "A comment made to a gist.", "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" + "id": { + "type": "integer", + "example": 1 }, - "auth_type": { - "description": "The authentication type for the private registry.", - "enum": [ - "token", - "username_password", - "oidc_azure", - "oidc_aws", - "oidc_jfrog" - ], - "type": "string" + "node_id": { + "type": "string", + "example": "MDExOkdpc3RDb21tZW50MQ==" }, "url": { - "description": "The URL of the private registry.", "type": "string", - "format": "uri" + "format": "uri", + "example": "https://api.github.com/gists/a6db0bec360bb87e9418/comments/1" }, - "username": { - "description": "The username to use when authenticating with the private registry.", - "example": "monalisa", + "body": { + "description": "The comment text.", "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" - }, - "tenant_id": { - "description": "The tenant ID of the Azure AD application.", - "type": "string" - }, - "client_id": { - "description": "The client ID of the Azure AD application.", - "type": "string" - }, - "aws_region": { - "description": "The AWS region.", - "type": "string" - }, - "account_id": { - "description": "The AWS account ID.", - "type": "string" - }, - "role_name": { - "description": "The AWS IAM role name.", - "type": "string" - }, - "domain": { - "description": "The CodeArtifact domain.", - "type": "string" - }, - "domain_owner": { - "description": "The CodeArtifact domain owner.", - "type": "string" - }, - "jfrog_oidc_provider_name": { - "description": "The JFrog OIDC provider name.", - "type": "string" - }, - "audience": { - "description": "The OIDC audience.", - "type": "string" + "maxLength": 65535, + "example": "Body of the attachment" }, - "identity_mapping_name": { - "description": "The JFrog identity mapping name.", - "type": "string" + "user": { + "$ref": "#/components/schemas/nullable-simple-user" }, "created_at": { "type": "string", - "format": "date-time" + "format": "date-time", + "example": "2011-04-18T23:23:56Z" }, "updated_at": { "type": "string", - "format": "date-time" + "format": "date-time", + "example": "2011-04-18T23:23:56Z" + }, + "author_association": { + "$ref": "#/components/schemas/author-association" } }, "required": [ - "name", - "registry_type", - "visibility", + "url", + "id", + "node_id", + "user", + "body", + "author_association", "created_at", "updated_at" ] }, - "org-private-registry-configuration-with-selected-repositories": { - "title": "Organization private registry", - "description": "Private registry configuration for an organization", + "gist-commit": { + "title": "Gist Commit", + "description": "Gist Commit", "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" - }, - "auth_type": { - "description": "The authentication type for the private registry.", - "enum": [ - "token", - "username_password", - "oidc_azure", - "oidc_aws", - "oidc_jfrog" - ], - "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" + "format": "uri", + "example": "https://api.github.com/gists/aa5a315d61ae9438b18d/57a7f021a713b1c5a6a199b54cc514735d2d462f" }, - "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 + "version": { + "type": "string", + "example": "57a7f021a713b1c5a6a199b54cc514735d2d462f" }, - "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" + "user": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "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" + "change_status": { + "type": "object", + "properties": { + "total": { + "type": "integer" + }, + "additions": { + "type": "integer" + }, + "deletions": { + "type": "integer" + } } }, - "tenant_id": { - "description": "The tenant ID of the Azure AD application.", - "type": "string" - }, - "client_id": { - "description": "The client ID of the Azure AD application.", - "type": "string" - }, - "aws_region": { - "description": "The AWS region.", - "type": "string" - }, - "account_id": { - "description": "The AWS account ID.", - "type": "string" - }, - "role_name": { - "description": "The AWS IAM role name.", - "type": "string" - }, - "domain": { - "description": "The CodeArtifact domain.", - "type": "string" - }, - "domain_owner": { - "description": "The CodeArtifact domain owner.", - "type": "string" - }, - "jfrog_oidc_provider_name": { - "description": "The JFrog OIDC provider name.", - "type": "string" - }, - "audience": { - "description": "The OIDC audience.", - "type": "string" - }, - "identity_mapping_name": { - "description": "The JFrog identity mapping name.", - "type": "string" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { + "committed_at": { "type": "string", - "format": "date-time" + "format": "date-time", + "example": "2010-04-14T02:15:15Z" } }, "required": [ - "name", - "registry_type", - "visibility", - "created_at", - "updated_at" + "url", + "user", + "version", + "committed_at", + "change_status" ] }, - "nullable-projects-v2-status-update": { - "title": "Projects v2 Status Update", - "description": "An status update belonging to a project", + "gitignore-template": { + "title": "Gitignore Template", + "description": "Gitignore Template", "type": "object", "properties": { - "id": { - "type": "number", - "description": "The unique identifier of the status update." - }, - "node_id": { + "name": { "type": "string", - "description": "The node ID of the status update." + "example": "C" }, - "project_node_id": { + "source": { "type": "string", - "description": "The node ID of the project that this status update belongs to." - }, - "creator": { - "$ref": "#/components/schemas/simple-user" - }, - "created_at": { + "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", - "format": "date-time", - "example": "2022-04-28T12:00:00Z", - "description": "The time when the status update was created." + "example": "mit" }, - "updated_at": { + "name": { "type": "string", - "format": "date-time", - "example": "2022-04-28T12:00:00Z", - "description": "The time when the status update was last updated." + "example": "MIT License" }, - "status": { + "url": { "type": "string", - "enum": [ - "INACTIVE", - "ON_TRACK", - "AT_RISK", - "OFF_TRACK", - "COMPLETE" - ], "nullable": true, - "description": "The current status." + "format": "uri", + "example": "https://api.github.com/licenses/mit" }, - "start_date": { + "spdx_id": { "type": "string", - "format": "date", - "example": "2022-04-28", - "description": "The start date of the period covered by the update." + "nullable": true, + "example": "MIT" }, - "target_date": { + "node_id": { "type": "string", - "format": "date", - "example": "2022-04-28", - "description": "The target date associated with the update." + "example": "MDc6TGljZW5zZW1pdA==" }, - "body": { - "description": "Body of the status update", - "example": "The project is off to a great start!", + "html_url": { "type": "string", - "nullable": true + "format": "uri" } }, "required": [ - "id", - "node_id", - "created_at", - "updated_at" - ], - "nullable": true + "key", + "name", + "url", + "spdx_id", + "node_id" + ] }, - "projects-v2": { - "title": "Projects v2 Project", - "description": "A projects v2 project", + "license": { + "title": "License", + "description": "License", "type": "object", "properties": { - "id": { - "type": "number", - "description": "The unique identifier of the project." - }, - "node_id": { + "key": { "type": "string", - "description": "The node ID of the project." - }, - "owner": { - "$ref": "#/components/schemas/simple-user" - }, - "creator": { - "$ref": "#/components/schemas/simple-user" + "example": "mit" }, - "title": { + "name": { "type": "string", - "description": "The project title." + "example": "MIT License" }, - "description": { + "spdx_id": { "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." + "example": "MIT", + "nullable": true }, - "closed_at": { + "url": { "type": "string", - "format": "date-time", - "example": "2022-04-28T12:00:00Z", - "nullable": true, - "description": "The time when the project was closed." + "format": "uri", + "example": "https://api.github.com/licenses/mit", + "nullable": true }, - "created_at": { + "node_id": { "type": "string", - "format": "date-time", - "example": "2022-04-28T12:00:00Z", - "description": "The time when the project was created." + "example": "MDc6TGljZW5zZW1pdA==" }, - "updated_at": { + "html_url": { "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." + "format": "uri", + "example": "http://choosealicense.com/licenses/mit/" }, - "short_description": { + "description": { "type": "string", - "nullable": true, - "description": "A concise summary of the project." + "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." }, - "deleted_at": { + "implementation": { "type": "string", - "format": "date-time", - "example": "2022-04-28T12:00:00Z", - "nullable": true, - "description": "The time when the project was deleted." + "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." }, - "deleted_by": { - "$ref": "#/components/schemas/nullable-simple-user" + "permissions": { + "type": "array", + "example": [ + "commercial-use", + "modifications", + "distribution", + "sublicense", + "private-use" + ], + "items": { + "type": "string" + } }, - "state": { - "type": "string", - "enum": [ - "open", - "closed" + "conditions": { + "type": "array", + "example": [ + "include-copyright" ], - "description": "The current state of the project." + "items": { + "type": "string" + } }, - "latest_status_update": { - "$ref": "#/components/schemas/nullable-projects-v2-status-update" + "limitations": { + "type": "array", + "example": [ + "no-liability" + ], + "items": { + "type": "string" + } }, - "is_template": { + "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", - "description": "Whether this project is a template" + "example": true } }, "required": [ - "id", + "key", + "name", + "url", + "spdx_id", "node_id", - "owner", - "creator", - "title", + "html_url", "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" + "implementation", + "permissions", + "conditions", + "limitations", + "body", + "featured" ] }, - "auto-merge": { - "title": "Auto merge", - "description": "The status of auto merging a pull request.", + "marketplace-listing-plan": { + "title": "Marketplace Listing Plan", + "description": "Marketplace Listing Plan", "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": { + "url": { "type": "string", - "description": "Title for the merge commit message." + "format": "uri", + "example": "https://api.github.com/marketplace_listing/plans/1313" }, - "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": { + "accounts_url": { "type": "string", "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347" + "example": "https://api.github.com/marketplace_listing/plans/1313/accounts" }, "id": { "type": "integer", - "format": "int64", - "example": 1 + "example": 1313 }, - "node_id": { - "type": "string", - "example": "MDExOlB1bGxSZXF1ZXN0MQ==" + "number": { + "type": "integer", + "example": 3 }, - "html_url": { + "name": { "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/pull/1347" + "example": "Pro" }, - "diff_url": { + "description": { "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/pull/1347.diff" + "example": "A professional-grade CI solution" }, - "patch_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/pull/1347.patch" + "monthly_price_in_cents": { + "type": "integer", + "example": 1099 }, - "issue_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347" + "yearly_price_in_cents": { + "type": "integer", + "example": 11870 }, - "commits_url": { + "price_model": { "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" + "enum": [ + "FREE", + "FLAT_RATE", + "PER_UNIT" + ], + "example": "FLAT_RATE" }, - "locked": { + "has_free_trial": { "type": "boolean", "example": true }, - "title": { + "unit_name": { "type": "string", - "example": "new-feature" - }, - "user": { - "$ref": "#/components/schemas/nullable-simple-user" + "nullable": true }, - "body": { + "state": { "type": "string", - "example": "Please pull these awesome changes", - "nullable": true + "example": "published" }, - "labels": { + "bullets": { "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 + "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" }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z" + "type": { + "type": "string" }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z" + "id": { + "type": "integer" }, - "closed_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z", - "nullable": true + "login": { + "type": "string" }, - "merged_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z", - "nullable": true + "organization_billing_email": { + "type": "string" }, - "merge_commit_sha": { + "email": { "type": "string", - "example": "e5bd3914e2e596debea16f433f57875b5b90bcd6", "nullable": true }, - "assignee": { - "$ref": "#/components/schemas/nullable-simple-user" - }, - "assignees": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } - }, - "requested_reviewers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } - }, - "requested_teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team" - } - }, - "head": { + "marketplace_pending_change": { "type": "object", "properties": { - "label": { - "type": "string" + "is_installed": { + "type": "boolean" }, - "ref": { + "effective_date": { "type": "string" }, - "repo": { - "$ref": "#/components/schemas/repository" + "unit_count": { + "type": "integer", + "nullable": true }, - "sha": { - "type": "string" + "id": { + "type": "integer" }, - "user": { - "$ref": "#/components/schemas/nullable-simple-user" + "plan": { + "$ref": "#/components/schemas/marketplace-listing-plan" } }, - "required": [ - "label", - "ref", - "repo", - "sha", - "user" - ] + "nullable": true }, - "base": { + "marketplace_purchase": { "type": "object", "properties": { - "label": { + "billing_cycle": { "type": "string" }, - "ref": { - "type": "string" + "next_billing_date": { + "type": "string", + "nullable": true }, - "repo": { - "$ref": "#/components/schemas/repository" + "is_installed": { + "type": "boolean" }, - "sha": { + "unit_count": { + "type": "integer", + "nullable": true + }, + "on_free_trial": { + "type": "boolean" + }, + "free_trial_ends_on": { + "type": "string", + "nullable": true + }, + "updated_at": { "type": "string" }, - "user": { - "$ref": "#/components/schemas/nullable-simple-user" + "plan": { + "$ref": "#/components/schemas/marketplace-listing-plan" } - }, - "required": [ - "label", - "ref", - "repo", - "sha", - "user" - ] + } + } + }, + "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 }, - "_links": { + "ssh_key_fingerprints": { "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" + "SHA256_RSA": { + "type": "string" }, - "review_comments": { - "$ref": "#/components/schemas/link" + "SHA256_DSA": { + "type": "string" }, - "review_comment": { - "$ref": "#/components/schemas/link" + "SHA256_ECDSA": { + "type": "string" }, - "self": { - "$ref": "#/components/schemas/link" + "SHA256_ED25519": { + "type": "string" } + } + }, + "ssh_keys": { + "type": "array", + "items": { + "type": "string" }, - "required": [ - "comments", - "commits", - "statuses", - "html", - "issue", - "review_comments", - "review_comment", - "self" + "example": [ + "ssh-ed25519 ABCDEFGHIJKLMNOPQRSTUVWXYZ" ] }, - "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" - ], - "x-github-breaking-changes": [ - { - "changeset": "remove_pull_request_merge_commit_sha", - "patch": { - "properties": { - "merge_commit_sha": null - }, - "required": [ - "_links", - "assignee", - "labels", - "base", - "body", - "closed_at", - "comments_url", - "commits_url", - "created_at", - "diff_url", - "head", - "html_url", - "id", - "node_id", - "issue_url", - "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" - ] + "hooks": { + "type": "array", + "items": { + "type": "string" }, - "version": "2026-03-10" + "example": [ + "192.0.2.1" + ] }, - { - "changeset": "remove_singular_assignee_from_issues_and_pull_requests", - "patch": { - "properties": { - "assignee": null - }, - "required": [ - "_links", - "labels", - "base", - "body", - "closed_at", - "comments_url", - "commits_url", - "created_at", - "diff_url", - "head", - "html_url", - "id", - "node_id", - "issue_url", - "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" - ] + "github_enterprise_importer": { + "type": "array", + "items": { + "type": "string" }, - "version": "2026-03-10" - } - ] - }, - "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" + "example": [ + "192.0.2.1" + ] }, - "body": { - "type": "string", - "description": "The body content of the draft issue", - "nullable": true + "web": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] }, - "user": { - "$ref": "#/components/schemas/nullable-simple-user" + "api": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] }, - "created_at": { - "type": "string", - "format": "date-time", - "description": "The time the draft issue was created" + "git": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] }, - "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." + "packages": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] }, - "node_id": { - "type": "string", - "description": "The node ID of the project item." + "pages": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] }, - "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." + "importer": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] }, - "content_type": { - "$ref": "#/components/schemas/projects-v2-item-content-type" + "actions": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] }, - "creator": { - "$ref": "#/components/schemas/simple-user" + "actions_macos": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2022-04-28T12:00:00Z", - "description": "The time when the item was created." + "codespaces": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2022-04-28T12:00:00Z", - "description": "The time when the item was last updated." + "dependabot": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] }, - "archived_at": { - "type": "string", - "format": "date-time", - "example": "2022-04-28T12:00:00Z", - "nullable": true, - "description": "The time when the item was archived." + "copilot": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "192.0.2.1" + ] }, - "project_url": { - "type": "string", - "format": "uri", - "description": "The URL of the project this item belongs to." + "commit_signing_keys": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + ] }, - "item_url": { - "type": "string", - "format": "uri", - "description": "The URL of the item in the project." + "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" + ] + } + }, + "storage": { + "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": [ - "id", - "content_type", - "created_at", - "updated_at", - "archived_at" + "verifiable_password_authentication" ] }, - "projects-v2-single-select-options": { - "title": "Projects v2 Single Select Option", - "description": "An option for a single select field", + "security-and-analysis": { + "nullable": true, "type": "object", "properties": { - "id": { - "type": "string", - "description": "The unique identifier of the option." + "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" + ] + } + } }, - "name": { + "code_security": { "type": "object", - "description": "The display name of the option, in raw text and HTML formats.", "properties": { - "raw": { - "type": "string" - }, - "html": { - "type": "string" + "status": { + "type": "string", + "enum": [ + "enabled", + "disabled" + ] } - }, - "required": [ - "raw", - "html" - ] + } }, - "description": { + "dependabot_security_updates": { + "description": "Enable or disable Dependabot security updates for the repository.", "type": "object", - "description": "The description of the option, in raw text and HTML formats.", "properties": { - "raw": { - "type": "string" - }, - "html": { - "type": "string" + "status": { + "description": "The enablement status of Dependabot security updates for the repository.", + "type": "string", + "enum": [ + "enabled", + "disabled" + ] } - }, - "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." + "secret_scanning": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "enabled", + "disabled" + ] + } + } }, - "start_date": { - "type": "string", - "format": "date", - "description": "The start date of the iteration." + "secret_scanning_push_protection": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "enabled", + "disabled" + ] + } + } }, - "duration": { - "type": "integer", - "description": "The duration of the iteration in days." + "secret_scanning_non_provider_patterns": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "enabled", + "disabled" + ] + } + } }, - "title": { + "secret_scanning_ai_detection": { "type": "object", "properties": { - "raw": { - "type": "string" - }, - "html": { - "type": "string" + "status": { + "type": "string", + "enum": [ + "enabled", + "disabled" + ] } - }, - "required": [ - "raw", - "html" - ], - "description": "The iteration title, in raw text and HTML formats." + } }, - "completed": { - "type": "boolean", - "description": "Whether the iteration has been completed." + "secret_scanning_delegated_alert_dismissal": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "enabled", + "disabled" + ] + } + } + }, + "secret_scanning_delegated_bypass": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "enabled", + "disabled" + ] + } + } + }, + "secret_scanning_delegated_bypass_options": { + "type": "object", + "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" + ] + }, + "mode": { + "type": "string", + "description": "The bypass mode for the reviewer", + "enum": [ + "ALWAYS", + "EXEMPT" + ], + "default": "ALWAYS" + } + } + } + } + } } - }, - "required": [ - "id", - "start_date", - "duration", - "title", - "completed" - ] + } }, - "projects-v2-field": { - "title": "Projects v2 Field", - "description": "A field inside a projects v2 project", + "minimal-repository": { + "title": "Minimal Repository", + "description": "Minimal Repository", "type": "object", "properties": { "id": { "type": "integer", - "description": "The unique identifier of the field." - }, - "issue_field_id": { - "type": "integer", - "description": "The ID of the issue field." + "format": "int64", + "example": 1296269 }, "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" + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" }, "name": { "type": "string", - "description": "The name of the field." + "example": "Hello-World" }, - "data_type": { + "full_name": { "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" - ] + "example": "octocat/Hello-World" }, - "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", - "additionalProperties": false, - "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" - }, - "require_explicit_values": { - "type": "boolean", - "description": "Whether setting properties values is mandatory" - } - }, - "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" - }, - "require_explicit_values": { - "type": "boolean", - "description": "Whether setting properties values is mandatory" - } - }, - "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" + "owner": { + "$ref": "#/components/schemas/simple-user" }, "private": { - "description": "Whether the repository is private or public.", - "default": false, "type": "boolean" }, "html_url": { @@ -123366,8 +126933,7 @@ "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" }, "git_url": { - "type": "string", - "example": "git:github.com/octocat/Hello-World.git" + "type": "string" }, "issue_comment_url": { "type": "string", @@ -123416,8 +126982,7 @@ "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" }, "ssh_url": { - "type": "string", - "example": "git@github.com:octocat/Hello-World.git" + "type": "string" }, "stargazers_url": { "type": "string", @@ -123453,13 +127018,10 @@ "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" }, "clone_url": { - "type": "string", - "example": "https://github.com/octocat/Hello-World.git" + "type": "string" }, "mirror_url": { "type": "string", - "format": "uri", - "example": "git:git.example.com/octocat/Hello-World", "nullable": true }, "hooks_url": { @@ -123468,14 +127030,10 @@ "example": "http://api.github.com/repos/octocat/Hello-World/hooks" }, "svn_url": { - "type": "string", - "format": "uri", - "example": "https://svn.github.com/octocat/Hello-World" + "type": "string" }, "homepage": { "type": "string", - "format": "uri", - "example": "https://github.com", "nullable": true }, "language": { @@ -123483,36 +127041,26 @@ "nullable": true }, "forks_count": { - "type": "integer", - "example": 9 + "type": "integer" }, "stargazers_count": { - "type": "integer", - "example": 80 + "type": "integer" }, "watchers_count": { - "type": "integer", - "example": 80 + "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", - "example": 108 + "type": "integer" }, "default_branch": { - "description": "The default branch of the repository.", - "type": "string", - "example": "master" + "type": "string" }, "open_issues_count": { - "type": "integer", - "example": 0 + "type": "integer" }, "is_template": { - "description": "Whether this repository acts as a template that can be used to generate new repositories.", - "default": false, - "type": "boolean", - "example": true + "type": "boolean" }, "topics": { "type": "array", @@ -123521,44 +127069,25 @@ } }, "has_issues": { - "description": "Whether issues are enabled.", - "default": true, - "type": "boolean", - "example": true + "type": "boolean" }, "has_projects": { - "description": "Whether projects are enabled.", - "default": true, - "type": "boolean", - "example": true + "type": "boolean" }, "has_wiki": { - "description": "Whether the wiki is enabled.", - "default": true, - "type": "boolean", - "example": true + "type": "boolean" }, "has_pages": { "type": "boolean" }, "has_downloads": { - "description": "Whether downloads are enabled.", - "default": true, - "type": "boolean", - "example": true, - "deprecated": true + "type": "boolean" }, "has_discussions": { - "description": "Whether discussions are enabled.", - "default": false, - "type": "boolean", - "example": true + "type": "boolean" }, "has_pull_requests": { - "description": "Whether pull requests are enabled.", - "default": true, - "type": "boolean", - "example": true + "type": "boolean" }, "pull_request_creation_policy": { "description": "The policy controlling who can create pull requests: all or collaborators_only.", @@ -123566,21 +127095,15 @@ "enum": [ "all", "collaborators_only" - ], - "example": "all" + ] }, "archived": { - "description": "Whether the repository is archived.", - "default": false, "type": "boolean" }, "disabled": { - "type": "boolean", - "description": "Returns whether or not this repository disabled." + "type": "boolean" }, "visibility": { - "description": "The repository visibility: public, private, or internal.", - "default": "public", "type": "string" }, "pushed_at": { @@ -123601,122 +127124,93 @@ "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 + "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" }, - "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 + "type": "boolean" }, - "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 + "subscribers_count": { + "type": "integer" }, - "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 + "network_count": { + "type": "integer" }, - "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)." + "code_of_conduct": { + "$ref": "#/components/schemas/code-of-conduct" }, - "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." + "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 }, - "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)." + "forks": { + "type": "integer", + "example": 0 }, - "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." + "open_issues": { + "type": "integer", + "example": 0 }, - "allow_merge_commit": { - "description": "Whether to allow merge commits for pull requests.", - "default": true, - "type": "boolean", - "example": true + "watchers": { + "type": "integer", + "example": 0 }, "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" + "example": false }, - "code_search_index_status": { + "security_and_analysis": { + "$ref": "#/components/schemas/security-and-analysis" + }, + "custom_properties": { "type": "object", - "description": "The status of the code search index for this repository", - "properties": { - "lexical_search_ok": { - "type": "boolean" - }, - "lexical_commit_sha": { - "type": "string" - } - } + "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": [ @@ -123765,2945 +127259,3041 @@ "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" + "url" ], "x-github-breaking-changes": [ - { - "changeset": "remove_use_squash_pr_title_as_default", - "patch": { - "properties": { - "use_squash_pr_title_as_default": null - } - }, - "version": "2026-03-10" - }, - { - "changeset": "deprecate_beta_media_type", - "patch": { - "properties": { - "master_branch": null - } - }, - "version": "2026-03-10" - }, { "changeset": "remove_has_downloads", "patch": { "properties": { "has_downloads": null - }, - "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", - "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" - ] + } }, "version": "2026-03-10" } - ], - "nullable": true + ] }, - "code-of-conduct-simple": { - "title": "Code Of Conduct Simple", - "description": "Code of Conduct Simple", + "thread": { + "title": "Thread", + "description": "Thread", "type": "object", "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/github/docs/community/code_of_conduct" + "id": { + "type": "string" }, - "key": { - "type": "string", - "example": "citizen_code_of_conduct" + "repository": { + "$ref": "#/components/schemas/minimal-repository" }, - "name": { + "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", - "example": "Citizen Code of Conduct" + "nullable": true }, - "html_url": { + "url": { + "type": "string" + }, + "subscription_url": { "type": "string", - "nullable": true, - "format": "uri", - "example": "https://github.com/github/docs/blob/main/CODE_OF_CONDUCT.md" + "example": "https://api.github.com/notifications/threads/2/subscription" } }, "required": [ + "id", + "unread", + "reason", + "updated_at", + "last_read_at", + "subject", + "repository", "url", - "key", - "name", - "html_url" + "subscription_url" ] }, - "full-repository": { - "title": "Full Repository", - "description": "Full Repository", + "thread-subscription": { + "title": "Thread Subscription", + "description": "Thread Subscription", "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" + "subscribed": { + "type": "boolean", + "example": true }, - "private": { + "ignored": { "type": "boolean" }, - "html_url": { + "reason": { "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World" + "nullable": true }, - "description": { + "created_at": { "type": "string", - "example": "This your first repo!", + "format": "date-time", + "example": "2012-10-06T21:34:12Z", "nullable": true }, - "fork": { - "type": "boolean" - }, "url": { "type": "string", "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World" + "example": "https://api.github.com/notifications/threads/1/subscription" }, - "archive_url": { + "thread_url": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + "format": "uri", + "example": "https://api.github.com/notifications/threads/1" }, - "assignees_url": { + "repository_url": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + "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 + } + } + }, + "billing-ai-credit-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" + ] }, - "blobs_url": { + "organization": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + "description": "The unique identifier of the organization." }, - "branches_url": { + "user": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + "description": "The name of the user for the usage report." }, - "collaborators_url": { + "product": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + "description": "The product for the usage report." }, - "comments_url": { + "model": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + "description": "The model for the usage report." }, - "commits_url": { + "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" + ] + }, + "budget": { + "type": "object", + "properties": { + "id": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + "description": "The unique identifier for the budget", + "example": "2066deda-923f-43f9-88d2-62395a28c0cdd" }, - "compare_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + "budget_type": { + "description": "The type of pricing for the budget", + "example": "SkuPricing", + "oneOf": [ + { + "type": "string", + "enum": [ + "SkuPricing" + ] + }, + { + "type": "string", + "enum": [ + "ProductPricing" + ] + } + ] }, - "contents_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + "budget_amount": { + "type": "integer", + "description": "The budget amount limit in whole dollars. For license-based products, this represents the number of licenses." }, - "contributors_url": { + "prevent_further_usage": { + "type": "boolean", + "description": "The type of limit enforcement for the budget", + "example": true + }, + "budget_scope": { "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + "description": "The scope of the budget", + "example": "enterprise", + "enum": [ + "enterprise", + "organization", + "repository", + "cost_center", + "multi_user_customer", + "multi_user_cost_center", + "user" + ] }, - "deployments_url": { + "budget_entity_name": { "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + "description": "The name of the entity for the budget (enterprise does not require a name).", + "example": "octocat/hello-world" }, - "downloads_url": { + "user": { "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + "description": "The user login when the budget is scoped to a single user (`user` scope).", + "example": "octocat" }, - "events_url": { + "consumed_amount": { + "type": "number", + "description": "The amount consumed for a user-scoped budget, or for a multi-user budget when filtering by user." + }, + "budget_product_sku": { "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/events" + "description": "A single product or sku to apply the budget to." }, - "forks_url": { + "budget_alerting": { + "type": "object", + "properties": { + "will_alert": { + "type": "boolean", + "description": "Whether alerts are enabled for this budget. Ignored for user-scope as alerting is disabled for them.", + "example": true + }, + "alert_recipients": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of user login names who will receive alerts. Ignored for user-scope as alerting is disabled for them.", + "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" + }, + "user": { "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/forks" + "description": "User login included when the response is scoped with the `user` query parameter." }, - "git_commits_url": { + "effective_budget": { + "type": "object", + "description": "Effective user-level budget details returned when the response is scoped with the `user` query parameter.", + "properties": { + "id": { + "type": "string", + "description": "The unique identifier of the effective budget." + }, + "budget_amount": { + "type": "integer", + "description": "The budget amount for the effective budget." + }, + "consumed_amount": { + "type": "number", + "description": "The consumed amount for the specified user within the effective budget." + } + }, + "required": [ + "id", + "budget_amount", + "consumed_amount" + ] + }, + "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" + ] + }, + "create-budget": { + "type": "object", + "properties": { + "message": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + "description": "A message indicating the result of the create operation" }, - "git_refs_url": { + "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", + "multi_user_customer", + "multi_user_cost_center", + "user" + ] + }, + "budget_entity_name": { + "type": "string", + "description": "The name of the entity to apply the budget to", + "example": "example-repository-name" + }, + "budget_amount": { + "type": "integer", + "description": "The budget amount in whole dollars. For license-based products, this represents the number of licenses.", + "example": 100, + "minimum": 0 + }, + "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": { + "description": "The type of pricing for the budget", + "example": "ProductPricing", + "oneOf": [ + { + "type": "string", + "enum": [ + "ProductPricing" + ] + }, + { + "type": "string", + "enum": [ + "SkuPricing" + ] + } + ] + }, + "budget_alerting": { + "type": "object", + "properties": { + "will_alert": { + "type": "boolean", + "description": "Whether alerts are enabled for this budget. Rejected for user-scope as alerting is always disabled for them.", + "example": true + }, + "alert_recipients": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of user login names who will receive alerts. Rejected for user-scope as alerting is always disabled for them.", + "example": [ + "mona", + "lisa" + ] + } + } + } + } + } + }, + "required": [ + "message", + "budget" + ] + }, + "get-budget": { + "type": "object", + "properties": { + "id": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + "description": "ID of the budget." }, - "git_tags_url": { + "budget_scope": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + "description": "The type of scope for the budget", + "example": "enterprise", + "enum": [ + "enterprise", + "organization", + "repository", + "cost_center", + "multi_user_customer", + "multi_user_cost_center", + "user" + ] }, - "git_url": { + "budget_entity_name": { "type": "string", - "example": "git:github.com/octocat/Hello-World.git" + "description": "The name of the entity to apply the budget to", + "example": "octocat/hello-world" }, - "issue_comment_url": { + "user": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + "description": "The user login when the budget is scoped to a single user (`user` scope).", + "example": "octocat" }, - "issue_events_url": { + "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", - "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + "description": "A single product or sku to apply the budget to.", + "example": "actions_linux" }, - "issues_url": { + "budget_type": { + "description": "The type of pricing for the budget", + "example": "ProductPricing", + "oneOf": [ + { + "type": "string", + "enum": [ + "ProductPricing" + ] + }, + { + "type": "string", + "enum": [ + "SkuPricing" + ] + } + ] + }, + "budget_alerting": { + "type": "object", + "properties": { + "will_alert": { + "type": "boolean", + "description": "Whether alerts are enabled for this budget. Present but not applicable for user-scope as alerting is always disabled for them.", + "example": true + }, + "alert_recipients": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of user login names who will receive alerts. Present but not applicable for user-scope as alerting is always disabled for them.", + "example": [ + "mona", + "lisa" + ] + } + } + } + }, + "required": [ + "id", + "budget_amount", + "prevent_further_usage", + "budget_product_sku", + "budget_type", + "budget_alerting", + "budget_scope", + "budget_entity_name" + ] + }, + "update-budget": { + "type": "object", + "properties": { + "message": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + "description": "A message indicating the result of the update operation" }, - "keys_url": { + "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", + "multi_user_customer", + "multi_user_cost_center", + "user" + ] + }, + "budget_entity_name": { + "type": "string", + "description": "The name of the entity to apply the budget to", + "example": "example-repository-name" + }, + "user": { + "type": "string", + "description": "The user login when the budget is scoped to a single user (`user` scope).", + "example": "octocat" + }, + "consumed_amount": { + "type": "number", + "description": "The consumed amount for the specified user within the budget. Only included for `user`-scoped budgets.", + "example": 42.5 + }, + "budget_amount": { + "type": "integer", + "description": "The budget amount in whole dollars. For license-based products, this represents the number of licenses.", + "example": 100, + "minimum": 0 + }, + "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": { + "description": "The type of pricing for the budget", + "example": "ProductPricing", + "oneOf": [ + { + "type": "string", + "enum": [ + "ProductPricing" + ] + }, + { + "type": "string", + "enum": [ + "SkuPricing" + ] + } + ] + }, + "budget_alerting": { + "type": "object", + "properties": { + "will_alert": { + "type": "boolean", + "description": "Whether alerts are enabled for this budget. Ignored for user-scope as alerting is always disabled for them.", + "example": true + }, + "alert_recipients": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of user login names who will receive alerts. Ignored for user-scope as alerting is always disabled for them.", + "example": [ + "mona", + "lisa" + ] + } + } + } + } + } + }, + "required": [ + "budget", + "message" + ] + }, + "delete-budget": { + "type": "object", + "properties": { + "message": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + "description": "A message indicating the result of the deletion operation" }, - "labels_url": { + "id": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + "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" + ] }, - "languages_url": { + "organization": { "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/languages" + "description": "The unique identifier of the organization." }, - "merges_url": { + "user": { "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/merges" + "description": "The name of the user for the usage report." }, - "milestones_url": { + "product": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + "description": "The product for the usage report." }, - "notifications_url": { + "model": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + "description": "The model for the usage report." }, - "pulls_url": { + "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", - "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + "description": "The unique identifier of the organization." }, - "releases_url": { + "repository": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + "description": "The name of the repository for the usage report." }, - "ssh_url": { + "product": { "type": "string", - "example": "git@github.com:octocat/Hello-World.git" + "description": "The product for the usage report." }, - "stargazers_url": { + "sku": { "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + "description": "The SKU for the usage report." }, - "statuses_url": { + "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": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + "example": "github" }, - "subscribers_url": { + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + "example": "MDEyOk9yZ2FuaXphdGlvbjE=" }, - "subscription_url": { + "url": { "type": "string", "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + "example": "https://api.github.com/orgs/github" }, - "tags_url": { + "repos_url": { "type": "string", "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/tags" + "example": "https://api.github.com/orgs/github/repos" }, - "teams_url": { + "events_url": { "type": "string", "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/teams" + "example": "https://api.github.com/orgs/github/events" }, - "trees_url": { + "hooks_url": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + "example": "https://api.github.com/orgs/github/hooks" }, - "clone_url": { + "issues_url": { "type": "string", - "example": "https://github.com/octocat/Hello-World.git" + "example": "https://api.github.com/orgs/github/issues" }, - "mirror_url": { + "members_url": { "type": "string", - "format": "uri", - "example": "git:git.example.com/octocat/Hello-World", - "nullable": true + "example": "https://api.github.com/orgs/github/members{/member}" }, - "hooks_url": { + "public_members_url": { "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + "example": "https://api.github.com/orgs/github/public_members{/member}" }, - "svn_url": { + "avatar_url": { "type": "string", - "format": "uri", - "example": "https://svn.github.com/octocat/Hello-World" + "example": "https://github.com/images/error/octocat_happy.gif" }, - "homepage": { + "description": { "type": "string", - "format": "uri", - "example": "https://github.com", + "example": "A great organization", "nullable": true }, - "language": { + "name": { "type": "string", - "nullable": true - }, - "forks_count": { - "type": "integer", - "example": 9 - }, - "stargazers_count": { - "type": "integer", - "example": 80 - }, - "watchers_count": { - "type": "integer", - "example": 80 + "example": "github" }, - "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 + "company": { + "type": "string", + "example": "GitHub" }, - "default_branch": { + "blog": { "type": "string", - "example": "master" + "format": "uri", + "example": "https://github.com/blog" }, - "open_issues_count": { - "type": "integer", - "example": 0 + "location": { + "type": "string", + "example": "San Francisco" }, - "is_template": { - "type": "boolean", - "example": true + "email": { + "type": "string", + "format": "email", + "example": "octocat@github.com" }, - "topics": { - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "octocat", - "atom", - "electron", - "API" - ] + "twitter_username": { + "type": "string", + "example": "github", + "nullable": true }, - "has_issues": { + "is_verified": { "type": "boolean", "example": true }, - "has_projects": { + "has_organization_projects": { "type": "boolean", "example": true }, - "has_wiki": { + "has_repository_projects": { "type": "boolean", "example": true }, - "has_pages": { - "type": "boolean" + "public_repos": { + "type": "integer", + "example": 2 }, - "has_downloads": { - "type": "boolean", - "example": true + "public_gists": { + "type": "integer", + "example": 1 }, - "has_discussions": { - "type": "boolean", - "example": true + "followers": { + "type": "integer", + "example": 20 }, - "has_pull_requests": { - "type": "boolean", - "example": true + "following": { + "type": "integer", + "example": 0 }, - "pull_request_creation_policy": { - "description": "The policy controlling who can create pull requests: all or collaborators_only.", + "html_url": { "type": "string", - "enum": [ - "all", - "collaborators_only" - ], - "example": "all" - }, - "archived": { - "type": "boolean" - }, - "disabled": { - "type": "boolean", - "description": "Returns whether or not this repository disabled." + "format": "uri", + "example": "https://github.com/octocat" }, - "visibility": { - "description": "The repository visibility: public, private, or internal.", + "type": { "type": "string", - "example": "public" + "example": "Organization" }, - "pushed_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:06:43Z" + "total_private_repos": { + "type": "integer", + "example": 100 }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z" + "owned_private_repos": { + "type": "integer", + "example": 100 }, - "updated_at": { + "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": "date-time", - "example": "2011-01-26T19:14:43Z" + "format": "email", + "example": "org@example.com", + "nullable": true }, - "permissions": { + "plan": { "type": "object", "properties": { - "admin": { - "type": "boolean" + "name": { + "type": "string" }, - "maintain": { - "type": "boolean" + "space": { + "type": "integer" }, - "push": { - "type": "boolean" + "private_repos": { + "type": "integer" }, - "triage": { - "type": "boolean" + "filled_seats": { + "type": "integer" }, - "pull": { - "type": "boolean" + "seats": { + "type": "integer" } }, "required": [ - "admin", - "pull", - "push" + "name", + "space", + "private_repos" ] }, - "allow_rebase_merge": { + "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 + "example": true, + "nullable": true }, - "template_repository": { - "$ref": "#/components/schemas/nullable-repository" + "two_factor_requirement_enabled": { + "type": "boolean", + "example": true, + "nullable": true }, - "temp_clone_token": { + "members_allowed_repository_creation_type": { "type": "string", - "nullable": true + "example": "all" }, - "allow_squash_merge": { + "members_can_create_public_repositories": { "type": "boolean", "example": true }, - "allow_auto_merge": { + "members_can_create_private_repositories": { "type": "boolean", - "example": false + "example": true }, - "delete_branch_on_merge": { + "members_can_create_internal_repositories": { "type": "boolean", - "example": false + "example": true }, - "allow_merge_commit": { + "members_can_create_pages": { "type": "boolean", "example": true }, - "allow_update_branch": { + "members_can_create_public_pages": { "type": "boolean", "example": true }, - "use_squash_pr_title_as_default": { + "members_can_create_private_pages": { "type": "boolean", - "example": false + "example": true }, - "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)." + "members_can_delete_repositories": { + "type": "boolean", + "example": true }, - "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." + "members_can_change_repo_visibility": { + "type": "boolean", + "example": true }, - "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)." + "members_can_invite_outside_collaborators": { + "type": "boolean", + "example": true }, - "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." + "members_can_delete_issues": { + "type": "boolean", + "example": true }, - "allow_forking": { + "display_commenter_full_name_setting_enabled": { "type": "boolean", "example": true }, - "web_commit_signoff_required": { + "readers_can_create_discussions": { "type": "boolean", - "example": false + "example": true }, - "subscribers_count": { - "type": "integer", - "example": 42 + "members_can_create_teams": { + "type": "boolean", + "example": true }, - "network_count": { - "type": "integer", - "example": 0 + "members_can_view_dependency_insights": { + "type": "boolean", + "example": true }, - "license": { - "$ref": "#/components/schemas/nullable-license-simple" + "members_can_fork_private_repositories": { + "type": "boolean", + "example": false, + "nullable": true }, - "organization": { - "$ref": "#/components/schemas/nullable-simple-user" + "web_commit_signoff_required": { + "type": "boolean", + "example": false }, - "parent": { - "$ref": "#/components/schemas/repository" + "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 }, - "source": { - "$ref": "#/components/schemas/repository" + "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 }, - "forks": { - "type": "integer" + "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 }, - "master_branch": { - "type": "string" + "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 }, - "open_issues": { - "type": "integer" + "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 }, - "watchers": { - "type": "integer" + "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 }, - "anonymous_access_enabled": { - "description": "Whether anonymous git access is allowed.", - "default": true, - "type": "boolean" + "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." }, - "code_of_conduct": { - "$ref": "#/components/schemas/code-of-conduct-simple" + "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." }, - "security_and_analysis": { - "$ref": "#/components/schemas/security-and-analysis" + "created_at": { + "type": "string", + "format": "date-time", + "example": "2008-01-14T04:33:35Z" }, - "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 + "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": [ - "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", + "login", + "url", "id", "node_id", - "issue_comment_url", - "issue_events_url", + "repos_url", + "events_url", + "hooks_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", + "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", - "network_count", - "subscribers_count" + "archived_at" ], "x-github-breaking-changes": [ { - "changeset": "remove_use_squash_pr_title_as_default", - "patch": { - "properties": { - "use_squash_pr_title_as_default": null - } - }, - "version": "2026-03-10" - }, - { - "changeset": "remove_has_downloads", - "patch": { - "properties": { - "has_downloads": null + "changeset": "remove_secret_scanning_custom_link_enablement_field", + "patch": [ + { + "op": "remove", + "path": "/properties/secret_scanning_push_protection_custom_link_enabled" } - }, + ], "version": "2026-03-10" } ] }, - "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" + "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" ] }, - "repository-ruleset-bypass-actor": { - "title": "Repository Ruleset Bypass Actor", + "actions-cache-usage-by-repository": { + "title": "Actions Cache Usage by repository", + "description": "GitHub Actions Cache Usage by repository.", "type": "object", - "description": "An actor that can bypass rules in a ruleset", + "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": [ - "actor_type" - ], + "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": { - "actor_id": { + "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", - "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." + "example": 86 }, - "actor_type": { + "display_name": { + "description": "Display name for this image.", "type": "string", - "enum": [ - "Integration", - "OrganizationAdmin", - "RepositoryRole", - "Team", - "DeployKey" - ], - "description": "The type of actor that can bypass a ruleset." + "example": 20.04 }, - "bypass_mode": { + "source": { + "description": "The image provider.", "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" - } - } - } + "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 }, - "repository-ruleset-conditions-repository-name-target": { - "title": "Repository ruleset conditions for repository names", + "actions-hosted-runner-machine-spec": { + "title": "Github-owned VM details.", + "description": "Provides details of a particular machine spec.", "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." - } - } + "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": [ - "repository_name" + "id", + "cpu_cores", + "memory_gb", + "storage_gb" ] }, - "repository-ruleset-conditions-repository-id-target": { - "title": "Repository ruleset conditions for repository IDs", + "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", - "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" - } - } - } + "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 } - }, - "required": [ - "repository_id" - ] + } }, - "repository-ruleset-conditions-repository-property-spec": { - "title": "Repository ruleset property targeting definition", + "actions-hosted-runner": { + "title": "GitHub-hosted hosted runner", + "description": "A Github-hosted hosted runner.", "type": "object", - "description": "Parameters for a targeting a repository property", "properties": { + "id": { + "description": "The unique identifier of the hosted runner.", + "type": "integer", + "example": 5 + }, "name": { + "description": "The name of the hosted runner.", "type": "string", - "description": "The name of the repository property to target" + "example": "my-github-hosted-runner" }, - "property_values": { + "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", - "description": "The values to match for the repository property", "items": { - "type": "string" + "$ref": "#/components/schemas/public-ip" } }, - "source": { + "last_active_on": { + "description": "The time at which the runner was last used, in ISO 8601 format.", "type": "string", - "description": "The source of the repository property. Defaults to 'custom' if not specified.", - "enum": [ - "custom", - "system" - ] + "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", - "property_values" + "image_details", + "machine_size_details", + "status", + "public_ip_enabled", + "platform" ] }, - "repository-ruleset-conditions-repository-property-target": { - "title": "Repository ruleset conditions for repository properties", + "actions-hosted-runner-custom-image": { + "title": "GitHub-hosted runner custom image details", + "description": "Provides details of a custom runner image", "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" - } - } - } + "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": [ - "repository_property" + "id", + "platform", + "name", + "source", + "versions_count", + "total_versions_size", + "latest_version", + "state" ] }, - "org-ruleset-conditions": { - "title": "Organization ruleset conditions", + "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", - "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" - } - ] + "properties": { + "version": { + "description": "The version of image.", + "type": "string", + "example": "1.0.0" }, - { - "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" - } - ] + "state": { + "description": "The state of image version.", + "type": "string", + "example": "Ready" }, - { - "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" - } - ] + "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" ] }, - "repository-rule-creation": { - "title": "creation", - "description": "Only allow users with bypass permission to create matching refs.", + "actions-hosted-runner-curated-image": { + "title": "GitHub-hosted runner image details.", + "description": "Provides details of a hosted runner image", "type": "object", - "required": [ - "type" - ], "properties": { - "type": { + "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": [ - "creation" + "github", + "partner", + "custom" ] } - } + }, + "required": [ + "id", + "platform", + "size_gb", + "display_name", + "source" + ] }, - "repository-rule-update": { - "title": "update", - "description": "Only allow users with bypass permission to update matching refs.", + "actions-hosted-runner-limits": { "type": "object", - "required": [ - "type" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "update" - ] - }, - "parameters": { + "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": { - "update_allows_fetch_and_merge": { - "type": "boolean", - "description": "Branch can pull changes from its upstream repository" + "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": [ - "update_allows_fetch_and_merge" + "maximum", + "current_usage" ] } - } + }, + "required": [ + "public_ips" + ] }, - "repository-rule-deletion": { - "title": "deletion", - "description": "Only allow users with bypass permissions to delete matching refs.", + "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" + } + }, + "use_immutable_subject": { + "description": "Whether to opt in to the immutable OIDC subject claim format for the organization. When `true`, new OIDC tokens will use a stable, repository-ID-based `sub` claim instead of the name-based format.", + "type": "boolean" + } + }, "required": [ - "type" - ], + "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": { - "type": { + "enabled_repositories": { + "$ref": "#/components/schemas/enabled-repositories" + }, + "selected_repositories_url": { "type": "string", - "enum": [ - "deletion" - ] + "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" + ] }, - "repository-rule-required-linear-history": { - "title": "required_linear_history", - "description": "Prevent merge commits from being pushed to matching refs.", + "actions-artifact-and-log-retention-response": { "type": "object", - "required": [ - "type" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "required_linear_history" - ] + "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" + ] }, - "repository-rule-merge-queue": { - "title": "merge_queue", - "description": "Merges must be performed via a merge queue.", + "actions-artifact-and-log-retention": { "type": "object", + "properties": { + "days": { + "type": "integer", + "description": "The number of days to retain artifacts and logs" + } + }, "required": [ - "type" - ], + "days" + ] + }, + "actions-fork-pr-contributor-approval": { + "type": "object", "properties": { - "type": { + "approval_policy": { "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" - ] + "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" + ] }, - "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.", + "actions-fork-pr-workflows-private-repos": { "type": "object", "required": [ - "type" + "run_workflows_from_fork_pull_requests", + "send_write_tokens_to_workflows", + "send_secrets_and_variables", + "require_approval_for_fork_pr_workflows" ], "properties": { - "type": { - "type": "string", - "enum": [ - "required_deployments" - ] + "run_workflows_from_fork_pull_requests": { + "type": "boolean", + "description": "Whether workflows triggered by pull requests from forks are allowed to run on private repositories." }, - "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" - ] + "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." } } }, - "repository-rule-required-signatures": { - "title": "required_signatures", - "description": "Commits pushed to matching refs must have verified signatures.", + "actions-fork-pr-workflows-private-repos-request": { "type": "object", "required": [ - "type" + "run_workflows_from_fork_pull_requests" ], "properties": { - "type": { - "type": "string", - "enum": [ - "required_signatures" - ] + "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." } } }, - "repository-rule-params-reviewer": { - "title": "Reviewer", - "description": "A required reviewing team", + "selected-actions": { "type": "object", "properties": { - "id": { - "type": "integer", - "description": "ID of the reviewer which must review changes to matching files." + "github_owned_allowed": { + "type": "boolean", + "description": "Whether GitHub-owned actions are allowed. For example, this includes the actions in the `actions` organization." }, - "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": { + "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": "Array of file patterns. Pull requests which change matching files must be approved by the specified team. File patterns use fnmatch syntax.", + "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" } - }, - "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.", + "self-hosted-runners-settings": { "type": "object", "required": [ - "type" + "enabled_repositories" ], "properties": { - "type": { + "enabled_repositories": { "type": "string", + "description": "The policy that controls whether self-hosted runners can be used by repositories in the organization", "enum": [ - "pull_request" + "all", + "selected", + "none" ] }, - "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" - ] + "selected_repositories_url": { + "type": "string", + "description": "The URL to the endpoint for managing selected repositories for self-hosted runners in the organization" } } }, - "repository-rule-params-status-check-configuration": { - "title": "StatusCheckConfiguration", - "description": "Required status check", + "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": { - "context": { - "type": "string", - "description": "The status check context name that must be present on the commit." + "default_workflow_permissions": { + "$ref": "#/components/schemas/actions-default-workflow-permissions" }, - "integration_id": { - "type": "integer", - "description": "The optional integration ID that this status check must originate from." + "can_approve_pull_request_reviews": { + "$ref": "#/components/schemas/actions-can-approve-pull-request-reviews" } }, "required": [ - "context" + "default_workflow_permissions", + "can_approve_pull_request_reviews" ] }, - "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.", + "actions-set-default-workflow-permissions": { "type": "object", - "required": [ - "type" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "required_status_checks" - ] + "default_workflow_permissions": { + "$ref": "#/components/schemas/actions-default-workflow-permissions" }, - "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" - ] + "can_approve_pull_request_reviews": { + "$ref": "#/components/schemas/actions-can-approve-pull-request-reviews" } } }, - "repository-rule-non-fast-forward": { - "title": "non_fast_forward", - "description": "Prevent users with push access from force pushing to refs.", + "runner-groups-org": { "type": "object", - "required": [ - "type" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "non_fast_forward" - ] + "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" + ] }, - "repository-rule-commit-message-pattern": { - "title": "commit_message_pattern", - "description": "Parameters to be used for the commit_message_pattern rule", + "runner-label": { + "title": "Self hosted runner label", + "description": "A label for a self hosted runner", "type": "object", - "required": [ - "type" - ], "properties": { - "type": { + "id": { + "type": "integer", + "description": "Unique identifier of the label." + }, + "name": { "type": "string", - "enum": [ - "commit_message_pattern" - ] + "description": "Name of the label." }, - "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", + "description": "The type of label. Read-only labels are applied automatically when the runner is configured.", "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" + "read-only", + "custom" ] } - } + }, + "required": [ + "name" + ] }, - "repository-rule-committer-email-pattern": { - "title": "committer_email_pattern", - "description": "Parameters to be used for the committer_email_pattern rule", + "runner": { + "title": "Self hosted runners", + "description": "A self hosted runner", "type": "object", - "required": [ - "type" - ], "properties": { - "type": { + "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", - "enum": [ - "committer_email_pattern" - ] + "example": "iMac" }, - "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": { + "os": { + "description": "The Operating System of the runner.", "type": "string", - "enum": [ - "branch_name_pattern" - ] + "example": "macos" }, - "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": { + "status": { + "description": "The status of the runner.", "type": "string", - "enum": [ - "tag_name_pattern" - ] + "example": "online" }, - "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" - ] + "busy": { + "type": "boolean" + }, + "labels": { + "type": "array", + "items": { + "$ref": "#/components/schemas/runner-label" + } + }, + "ephemeral": { + "type": "boolean" + }, + "version": { + "description": "The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once.", + "nullable": true, + "type": "string", + "example": "2.323.0" } - } + }, + "required": [ + "id", + "name", + "os", + "status", + "busy", + "labels" + ] }, - "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.", + "runner-application": { + "title": "Runner Application", + "description": "Runner Application", "type": "object", - "required": [ - "type" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "file_path_restriction" - ] + "os": { + "type": "string" }, - "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" - ] + "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" + ] }, - "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.", + "authentication-token": { + "title": "Authentication Token", + "description": "Authentication Token", "type": "object", - "required": [ - "type" - ], "properties": { - "type": { + "token": { + "description": "The token used for authentication", "type": "string", - "enum": [ - "max_file_path_length" - ] + "example": "v1.1f699f1069f60xxx" }, - "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": { + "expires_at": { + "description": "The time this token expires", "type": "string", - "enum": [ - "file_extension_restriction" - ] + "format": "date-time", + "example": "2016-07-11T22:14:10Z" }, - "parameters": { + "permissions": { "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": { + "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", - "enum": [ - "max_file_size" - ] + "example": "config.yaml", + "nullable": true }, - "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_selection": { + "description": "Describe whether all repositories have been selected or there's a selection involved", + "type": "string", + "enum": [ + "all", + "selected" ] } - } + }, + "required": [ + "token", + "expires_at" + ] }, - "repository-rule-params-restricted-commits": { - "title": "RestrictedCommits", - "description": "Restricted commit", + "organization-actions-secret": { + "title": "Actions Secret for an Organization", + "description": "Secrets for GitHub Actions for an organization.", "type": "object", "properties": { - "oid": { + "name": { + "description": "The name of the secret.", + "example": "SECRET_TOKEN", + "type": "string" + }, + "created_at": { "type": "string", - "description": "Full or abbreviated commit hash to reject" + "format": "date-time" }, - "reason": { + "updated_at": { "type": "string", - "description": "Reason for restriction" + "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": [ - "oid" + "name", + "created_at", + "updated_at", + "visibility" ] }, - "repository-rule-params-workflow-file-reference": { - "title": "WorkflowFileReference", - "description": "A workflow that must run for this rule to pass", + "actions-public-key": { + "title": "ActionsPublicKey", + "description": "The public key used for setting Actions Secrets.", "type": "object", "properties": { - "path": { + "key_id": { + "description": "The identifier for the key.", "type": "string", - "description": "The path to the workflow file" + "example": "1234567" }, - "ref": { + "key": { + "description": "The Base64 encoded public key.", "type": "string", - "description": "The ref (branch or tag) of the workflow file to use" + "example": "hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs=" }, - "repository_id": { + "id": { "type": "integer", - "description": "The ID of the repository where the workflow is defined" + "example": 2 }, - "sha": { + "url": { "type": "string", - "description": "The commit SHA of the workflow file to use" + "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": [ - "path", - "repository_id" + "key_id", + "key" ] }, - "repository-rule-workflows": { - "title": "workflows", - "description": "Require all changes made to a targeted branch to pass the specified workflows before they can be merged.", + "organization-actions-variable": { + "title": "Actions Variable for an Organization", + "description": "Organization variable for GitHub Actions.", "type": "object", - "required": [ - "type" - ], "properties": { - "type": { - "type": "string", - "enum": [ - "workflows" - ] + "name": { + "description": "The name of the variable.", + "example": "USERNAME", + "type": "string" }, - "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": { + "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", - "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" - ] + "format": "date-time" }, - "security_alerts_threshold": { + "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", - "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).\"", + "format": "date-time" + }, + "visibility": { + "description": "Visibility of a variable", "enum": [ - "none", - "critical", - "high_or_higher", - "medium_or_higher", - "all" - ] + "all", + "private", + "selected" + ], + "type": "string" }, - "tool": { + "selected_repositories_url": { "type": "string", - "description": "The name of a code scanning tool" + "format": "uri", + "example": "https://api.github.com/organizations/org/variables/USERNAME/repositories" } }, "required": [ - "alerts_threshold", - "security_alerts_threshold", - "tool" + "name", + "value", + "created_at", + "updated_at", + "visibility" ] }, - "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.", + "artifact-deployment-record": { + "title": "Artifact Deployment Record", + "description": "Artifact Metadata Deployment Record", "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": { - "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" + "id": { + "type": "integer" }, - { - "$ref": "#/components/schemas/repository-rule-committer-email-pattern" + "digest": { + "type": "string" }, - { - "$ref": "#/components/schemas/repository-rule-branch-name-pattern" + "logical_environment": { + "type": "string" }, - { - "$ref": "#/components/schemas/repository-rule-tag-name-pattern" + "physical_environment": { + "type": "string" }, - { - "$ref": "#/components/schemas/repository-rule-file-path-restriction" + "cluster": { + "type": "string" }, - { - "$ref": "#/components/schemas/repository-rule-max-file-path-length" + "deployment_name": { + "type": "string" }, - { - "$ref": "#/components/schemas/repository-rule-file-extension-restriction" + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } }, - { - "$ref": "#/components/schemas/repository-rule-max-file-size" + "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" + ] + } }, - { - "$ref": "#/components/schemas/repository-rule-workflows" + "created_at": { + "type": "string" }, - { - "$ref": "#/components/schemas/repository-rule-code-scanning" + "updated_at": { + "type": "string" }, - { - "$ref": "#/components/schemas/repository-rule-copilot-code-review" + "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" ] }, - "repository-ruleset": { - "title": "Repository ruleset", + "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", - "description": "A set of rules to apply when specified conditions are met.", - "required": [ - "id", - "name", - "source", - "enforcement" - ], "properties": { "id": { + "description": "Unique identifier of the team", "type": "integer", - "description": "The ID of the ruleset" + "example": 1 }, - "name": { + "node_id": { "type": "string", - "description": "The name of the ruleset" + "example": "MDQ6VGVhbTE=" }, - "target": { + "url": { + "description": "URL for the team", "type": "string", - "description": "The target of the ruleset", - "enum": [ - "branch", - "tag", - "push", - "repository" - ] + "format": "uri", + "example": "https://api.github.com/organizations/1/team/1" }, - "source_type": { + "members_url": { "type": "string", - "description": "The type of the source of the ruleset", - "enum": [ - "Repository", - "Organization", - "Enterprise" - ] + "example": "https://api.github.com/organizations/1/team/1/members{/member}" }, - "source": { + "name": { + "description": "Name of the team", "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" - } + "example": "Justice League" }, - "current_user_can_bypass": { + "description": { + "description": "Description of the team", "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" - } + "example": "A great team." }, - "created_at": { + "permission": { + "description": "Permission that the team will have for its repositories", "type": "string", - "format": "date-time" + "example": "admin" }, - "updated_at": { + "privacy": { + "description": "The level of privacy this team should have", "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" + "example": "closed" }, - { - "$ref": "#/components/schemas/repository-rule-required-signatures" + "notification_setting": { + "description": "The notification setting the team has set", + "type": "string", + "example": "notifications_enabled" }, - { - "$ref": "#/components/schemas/repository-rule-pull-request" + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/orgs/rails/teams/core" }, - { - "$ref": "#/components/schemas/repository-rule-required-status-checks" + "repositories_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/1/team/1/repos" }, - { - "$ref": "#/components/schemas/repository-rule-non-fast-forward" + "slug": { + "type": "string", + "example": "justice-league" }, - { - "$ref": "#/components/schemas/repository-rule-commit-message-pattern" + "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/schemas/repository-rule-commit-author-email-pattern" + "type": { + "description": "The ownership type of the team", + "type": "string", + "enum": [ + "enterprise", + "organization" + ] }, - { - "$ref": "#/components/schemas/repository-rule-committer-email-pattern" + "organization_id": { + "type": "integer", + "description": "Unique identifier of the organization to which this team belongs", + "example": 37 }, - { - "$ref": "#/components/schemas/repository-rule-branch-name-pattern" + "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" }, - { - "$ref": "#/components/schemas/repository-rule-tag-name-pattern" + "node_id": { + "type": "string" }, - { - "$ref": "#/components/schemas/repository-rule-file-path-restriction" + "name": { + "type": "string" }, - { - "$ref": "#/components/schemas/repository-rule-max-file-path-length" + "slug": { + "type": "string" }, - { - "$ref": "#/components/schemas/repository-rule-file-extension-restriction" + "description": { + "type": "string", + "nullable": true }, - { - "$ref": "#/components/schemas/repository-rule-max-file-size" + "privacy": { + "type": "string" }, - { - "$ref": "#/components/schemas/repository-rule-workflows" + "notification_setting": { + "type": "string" }, - { - "$ref": "#/components/schemas/repository-rule-code-scanning" + "permission": { + "type": "string" }, - { - "$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-pull-request": { - "title": "Pull request rule suite metadata", - "description": "Metadata for a pull request rule evaluation result.", - "type": "object", - "properties": { - "pull_request": { + "permissions": { "type": "object", - "description": "The pull request associated with the rule evaluation.", "properties": { - "id": { - "type": "integer", - "description": "The unique identifier of the pull request." + "pull": { + "type": "boolean" }, - "number": { - "type": "integer", - "description": "The number of the pull request." + "triage": { + "type": "boolean" }, - "user": { - "type": "object", - "description": "The user who created the pull request.", - "properties": { - "id": { - "type": "integer", - "description": "The unique identifier of the user." - }, - "login": { - "type": "string", - "description": "The handle for the GitHub user account." - }, - "type": { - "type": "string", - "description": "The type of the user." - } - } + "push": { + "type": "boolean" }, - "reviews": { - "type": "array", - "description": "The reviews associated with the pull request.", - "items": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "description": "The unique identifier of the review." - }, - "user": { - "type": "object", - "description": "The user who submitted the review.", - "properties": { - "id": { - "type": "integer", - "description": "The unique identifier of the user." - }, - "login": { - "type": "string", - "description": "The handle for the GitHub user account." - }, - "type": { - "type": "string", - "description": "The type of the user." - } - } - }, - "state": { - "type": "string", - "description": "The state of the review." - } - } - } - } - } - } - } - }, - "rule-suite-required-status-checks": { - "title": "Required status checks rule suite metadata", - "description": "Metadata for a required status checks rule evaluation result.", - "type": "object", - "properties": { - "checks": { - "type": "array", - "description": "The status checks associated with the rule evaluation.", - "items": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "description": "The unique identifier of the status check." - }, - "context": { - "type": "string", - "description": "The context name of the status check." - }, - "state": { - "type": "string", - "description": "The state of the status check." - }, - "type": { - "type": "string", - "description": "The type of the status check." - }, - "app": { - "type": "object", - "nullable": true, - "description": "The GitHub App associated with the status check.", - "properties": { - "id": { - "type": "integer", - "description": "The unique identifier of the GitHub App." - }, - "slug": { - "type": "string", - "description": "The slug of the GitHub App." - }, - "name": { - "type": "string", - "description": "The name of the GitHub App." - } - } - } + "maintain": { + "type": "boolean" + }, + "admin": { + "type": "boolean" } - } - } - } - }, - "rule-suite": { - "title": "Rule Suite", - "description": "Response", - "type": "object", - "properties": { - "id": { - "type": "integer", - "description": "The unique identifier of the rule insight." + }, + "required": [ + "pull", + "triage", + "push", + "maintain", + "admin" + ] }, - "actor_id": { - "type": "integer", - "description": "The number that identifies the user.", - "nullable": true + "url": { + "type": "string", + "format": "uri" }, - "actor_name": { + "html_url": { "type": "string", - "description": "The handle for the GitHub user account.", - "nullable": true + "format": "uri", + "example": "https://github.com/orgs/rails/teams/core" }, - "before_sha": { + "members_url": { + "type": "string" + }, + "repositories_url": { "type": "string", - "description": "The previous commit SHA of the ref." + "format": "uri" }, - "after_sha": { + "type": { + "description": "The ownership type of the team", "type": "string", - "description": "The new commit SHA of the ref." + "enum": [ + "enterprise", + "organization" + ] }, - "ref": { + "access_source": { + "description": "How the team's access to the repository was granted. This property is only\npresent when the team is returned in a repository context, such as\n`GET /repos/{owner}/{repo}/teams`.", "type": "string", - "description": "The ref name that the evaluation ran on." + "enum": [ + "direct", + "organization", + "enterprise" + ], + "example": "direct" }, - "repository_id": { + "organization_id": { "type": "integer", - "description": "The ID of the repository associated with the rule evaluation." + "description": "Unique identifier of the organization to which this team belongs", + "example": 37 }, - "repository_name": { + "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", - "description": "The name of the repository without the `.git` extension." + "format": "date-time", + "description": "The date and time the campaign was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." }, - "pushed_at": { + "updated_at": { "type": "string", "format": "date-time", - "example": "2011-01-26T19:06:43Z" + "description": "The date and time the campaign was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." }, - "result": { + "name": { "type": "string", - "enum": [ - "pass", - "fail", - "bypass" - ], - "description": "The result of the rule evaluations for rules with the `active` enforcement status." + "description": "The campaign name" }, - "evaluation_result": { + "description": { "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." + "description": "The campaign description" }, - "rule_evaluations": { + "managers": { + "description": "The campaign managers", "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." - } - } + "$ref": "#/components/schemas/simple-user" } - } - } - }, - "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" - } + "team_managers": { + "description": "The campaign team managers", + "type": "array", + "items": { + "$ref": "#/components/schemas/team" } }, - "updated_at": { + "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" - } - } - }, - "ruleset-version-with-state": { - "allOf": [ - { - "$ref": "#/components/schemas/ruleset-version" }, - { + "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", - "required": [ - "state" - ], + "additionalProperties": false, "properties": { - "state": { - "type": "object", - "description": "The state of the ruleset version" + "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" ] }, - "nullable-alert-updated-at": { + "code-scanning-analysis-tool-name": { "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 + "description": "The name of the tool used to generate the code scanning analysis." }, - "secret-scanning-alert-state": { - "description": "Sets the state of the secret scanning alert. You must provide `resolution` when you set the state to `resolved`.", + "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", - "resolved" + "closed", + "dismissed", + "fixed" ] }, - "secret-scanning-alert-resolution": { + "code-scanning-alert-severity": { "type": "string", - "description": "**Required when the `state` is `resolved`.** The reason for resolving the alert.", + "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": [ - "false_positive", - "wont_fix", - "revoked", - "used_in_tests" + "open", + "dismissed", + "fixed" ] }, - "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.", + "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", + "mitigated" + ] + }, + "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": { - "path": { + "id": { + "nullable": true, "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" + "description": "A unique identifier for the rule used to detect the alert." }, - "start_column": { - "type": "number", - "description": "The column at which the secret starts within the start line when the file is interpreted as 8BIT ASCII" + "name": { + "type": "string", + "description": "The name of the rule used to detect the alert." }, - "end_column": { - "type": "number", - "description": "The column at which the secret ends within the end line when the file is interpreted as 8BIT ASCII" + "severity": { + "nullable": true, + "type": "string", + "description": "The severity of the alert.", + "enum": [ + "none", + "note", + "warning", + "error" + ] }, - "blob_sha": { + "security_severity_level": { + "nullable": true, "type": "string", - "description": "SHA-1 hash ID of the associated blob", - "example": "af5626b4a114abcb82d63db7c8082c3c4756e51b" + "description": "The security severity of the alert.", + "enum": [ + "low", + "medium", + "high", + "critical" + ] }, - "blob_url": { + "description": { "type": "string", - "description": "The API URL to get the associated blob resource" + "description": "A short description of the rule used to detect the alert." }, - "commit_sha": { + "full_description": { "type": "string", - "description": "SHA-1 hash ID of the associated commit", - "example": "af5626b4a114abcb82d63db7c8082c3c4756e51b" + "description": "A description of the rule used to detect the alert." }, - "commit_url": { + "tags": { + "nullable": true, + "type": "array", + "description": "A set of tags applicable for the rule.", + "items": { + "type": "string" + } + }, + "help": { + "nullable": true, "type": "string", - "description": "The API URL to get the associated commit resource" + "description": "Detailed documentation for the rule as GitHub Flavored Markdown." }, - "html_url": { + "help_uri": { + "nullable": true, "type": "string", - "format": "uri", - "description": "The GitHub URL to get the associated commit resource.", - "example": "https://github.com/octocat/Hello-World/blob/af5626b/example/secrets.txt#L1-L1" + "description": "A link to the documentation for the rule used to detect the alert." } - }, - "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" - ] + "code-scanning-analysis-tool-version": { + "nullable": true, + "type": "string", + "description": "The version of the tool used to generate the code scanning analysis." }, - "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.", + "code-scanning-analysis-tool": { "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" + "name": { + "$ref": "#/components/schemas/code-scanning-analysis-tool-name" }, - "html_url": { - "type": "string", - "format": "uri", - "description": "The GitHub URL for the issue where the secret was detected.", - "example": "https://github.com/octocat/Hello-World/issues/1" - } - }, - "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" + "version": { + "$ref": "#/components/schemas/code-scanning-analysis-tool-version" }, - "html_url": { - "type": "string", - "format": "uri", - "description": "The GitHub URL for the issue where the secret was detected.", - "example": "https://github.com/octocat/Hello-World/issues/1" + "guid": { + "$ref": "#/components/schemas/code-scanning-analysis-tool-guid" } - }, - "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" - }, - "html_url": { - "type": "string", - "format": "uri", - "description": "The GitHub URL for the issue comment where the secret was detected.", - "example": "https://github.com/octocat/Hello-World/issues/1#issuecomment-1081119451" - } - }, - "required": [ - "issue_comment_url" - ] + "code-scanning-ref": { + "type": "string", + "description": "The Git reference, formatted as `refs/pull//merge`, `refs/pull//head`,\n`refs/heads/` or simply ``." }, - "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" - ] + "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." }, - "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" - ] + "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." }, - "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" - ] + "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." }, - "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.", + "code-scanning-alert-location": { "type": "object", + "description": "Describe a region within a file for the alert.", "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" + "path": { + "type": "string" }, - "html_url": { - "type": "string", - "format": "uri", - "description": "The GitHub URL for the pull request where the secret was detected.", - "example": "https://github.com/octocat/Hello-World/pull/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" + "start_line": { + "type": "integer" }, - "html_url": { - "type": "string", - "format": "uri", - "description": "The GitHub URL for the pull request where the secret was detected.", - "example": "https://github.com/octocat/Hello-World/pull/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" + "end_line": { + "type": "integer" }, - "html_url": { - "type": "string", - "format": "uri", - "description": "The GitHub URL for the pull request comment where the secret was detected.", - "example": "https://github.com/octocat/Hello-World/pull/2846#issuecomment-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" + "start_column": { + "type": "integer" }, - "html_url": { - "type": "string", - "format": "uri", - "description": "The GitHub URL for the pull request review where the secret was detected.", - "example": "https://github.com/octocat/Hello-World/pull/2846#pullrequestreview-80" + "end_column": { + "type": "integer" } - }, - "required": [ - "pull_request_review_url" + } + }, + "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" ] }, - "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.", + "code-scanning-alert-instance": { "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" - }, - "html_url": { - "type": "string", - "format": "uri", - "description": "The GitHub URL for the pull request review comment where the secret was detected.", - "example": "https://github.com/octocat/Hello-World/pull/2846#discussion_r12" - } - }, - "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": { + "$ref": "#/components/schemas/code-scanning-ref" }, - { - "$ref": "#/components/schemas/secret-scanning-location-issue-comment" + "analysis_key": { + "$ref": "#/components/schemas/code-scanning-analysis-analysis-key" }, - { - "$ref": "#/components/schemas/secret-scanning-location-discussion-title" + "environment": { + "$ref": "#/components/schemas/code-scanning-alert-environment" }, - { - "$ref": "#/components/schemas/secret-scanning-location-discussion-body" + "category": { + "$ref": "#/components/schemas/code-scanning-analysis-category" }, - { - "$ref": "#/components/schemas/secret-scanning-location-discussion-comment" + "state": { + "$ref": "#/components/schemas/code-scanning-alert-state" }, - { - "$ref": "#/components/schemas/secret-scanning-location-pull-request-title" + "commit_sha": { + "type": "string" }, - { - "$ref": "#/components/schemas/secret-scanning-location-pull-request-body" + "message": { + "type": "object", + "properties": { + "text": { + "type": "string" + }, + "markdown": { + "type": "string", + "description": "The message text as GitHub-flavored Markdown, with placeholder links for related locations replaced by links to the relevant code. Only populated when related locations are available for the alert instance." + } + } }, - { - "$ref": "#/components/schemas/secret-scanning-location-pull-request-comment" + "location": { + "$ref": "#/components/schemas/code-scanning-alert-location" }, - { - "$ref": "#/components/schemas/secret-scanning-location-pull-request-review" + "html_url": { + "type": "string" }, - { - "$ref": "#/components/schemas/secret-scanning-location-pull-request-review-comment" + "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" + } } - ], - "nullable": true + } }, - "organization-secret-scanning-alert": { + "code-scanning-organization-alert-items": { "type": "object", "properties": { "number": { @@ -126713,7 +130303,7 @@ "$ref": "#/components/schemas/alert-created-at" }, "updated_at": { - "$ref": "#/components/schemas/nullable-alert-updated-at" + "$ref": "#/components/schemas/alert-updated-at" }, "url": { "$ref": "#/components/schemas/alert-url" @@ -126721,774 +130311,916 @@ "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." + "instances_url": { + "$ref": "#/components/schemas/alert-instances-url" }, "state": { - "$ref": "#/components/schemas/secret-scanning-alert-state" - }, - "resolution": { - "$ref": "#/components/schemas/secret-scanning-alert-resolution" + "$ref": "#/components/schemas/code-scanning-alert-state" }, - "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 + "fixed_at": { + "$ref": "#/components/schemas/alert-fixed-at" }, - "resolved_by": { + "dismissed_by": { "$ref": "#/components/schemas/nullable-simple-user" }, - "secret_type": { - "type": "string", - "description": "The type of secret that secret scanning detected." + "dismissed_at": { + "$ref": "#/components/schemas/alert-dismissed-at" }, - "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).\"" + "dismissed_reason": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-reason" }, - "provider": { - "type": "string", - "description": "The provider of the secret that was detected.", - "nullable": true + "dismissed_comment": { + "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" }, - "provider_slug": { - "type": "string", - "description": "The slug identifier for the provider of the secret that was detected. Use this value for filtering by provider with the `providers` or `exclude_providers` parameters.", - "nullable": true + "rule": { + "$ref": "#/components/schemas/code-scanning-alert-rule-summary" }, - "secret": { - "type": "string", - "description": "The secret that was detected." + "tool": { + "$ref": "#/components/schemas/code-scanning-analysis-tool" + }, + "most_recent_instance": { + "$ref": "#/components/schemas/code-scanning-alert-instance" }, "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": { + "dismissal_approved_by": { "$ref": "#/components/schemas/nullable-simple-user" }, - "push_protection_bypassed_at": { + "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", - "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" + "description": "The name of the machine.", + "example": "standardLinux" }, - "push_protection_bypass_request_reviewer_comment": { + "display_name": { "type": "string", - "description": "An optional comment when reviewing a push protection bypass.", - "nullable": true + "description": "The display name of the machine includes cores, memory, and storage.", + "example": "4 cores, 16 GB RAM, 64 GB storage" }, - "push_protection_bypass_request_comment": { + "operating_system": { "type": "string", - "description": "An optional comment when requesting a push protection bypass.", - "nullable": true + "description": "The operating system of the machine.", + "example": "linux" }, - "push_protection_bypass_request_html_url": { - "type": "string", - "format": "uri", - "description": "The URL to a push protection bypass request.", - "nullable": true + "storage_in_bytes": { + "type": "integer", + "description": "How much storage is available to the codespace.", + "example": 68719476736 }, - "resolution_comment": { + "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": "The comment that was optionally added when this alert was closed", + "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 }, - "validity": { + "name": { + "description": "Automatically generated name of this codespace.", "type": "string", - "description": "The token status as of the latest validity check.", - "enum": [ - "active", - "inactive", - "unknown" - ] + "example": "monalisa-octocat-hello-world-g4wpq6h95q" }, - "publicly_leaked": { - "type": "boolean", - "description": "Whether the secret was publicly leaked.", + "display_name": { + "description": "Display name for this codespace.", + "type": "string", + "example": "bookish space pancake", "nullable": true }, - "multi_repo": { - "type": "boolean", - "description": "Whether the detected secret was found in multiple repositories in the same organization or enterprise.", + "environment_id": { + "description": "UUID identifying this codespace's environment.", + "type": "string", + "example": "26a7c758-7299-4a73-b978-5a92a7ae98a0", "nullable": true }, - "is_base64_encoded": { - "type": "boolean", - "description": "A boolean value representing whether or not alert is base64 encoded", - "nullable": true + "owner": { + "$ref": "#/components/schemas/simple-user" }, - "first_location_detected": { - "$ref": "#/components/schemas/nullable-secret-scanning-first-detected-location" + "billable_owner": { + "$ref": "#/components/schemas/simple-user" }, - "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." + "repository": { + "$ref": "#/components/schemas/minimal-repository" }, - "assigned_to": { - "$ref": "#/components/schemas/nullable-simple-user" + "machine": { + "$ref": "#/components/schemas/nullable-codespace-machine" }, - "closure_request_comment": { + "devcontainer_path": { + "description": "Path to devcontainer.json from repo root used to create Codespace.", "type": "string", - "description": "An optional comment from the closure request author.", + "example": ".devcontainer/example/devcontainer.json", "nullable": true }, - "closure_request_reviewer_comment": { - "type": "string", - "description": "An optional comment from the closure request reviewer.", + "prebuild": { + "description": "Whether the codespace was created from a prebuild.", + "type": "boolean", + "example": false, "nullable": true }, - "closure_request_reviewer": { - "$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": { + "created_at": { "type": "string", - "description": "The ID of the pattern." + "format": "date-time", + "example": "2011-01-26T19:01:12Z" }, - "custom_pattern_version": { + "updated_at": { "type": "string", - "description": "The version of this pattern if it's a custom pattern.", - "nullable": true + "format": "date-time", + "example": "2011-01-26T19:01:12Z" }, - "slug": { + "last_used_at": { + "description": "Last known time this codespace was started.", "type": "string", - "description": "The slug of the pattern." + "format": "date-time", + "example": "2011-01-26T19:01:12Z" }, - "display_name": { + "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", - "description": "The user-friendly name for the pattern." + "format": "uri" }, - "alert_total": { - "type": "integer", - "description": "The total number of alerts generated by this pattern." + "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" + } + } }, - "alert_total_percentage": { - "type": "integer", - "description": "The percentage of all alerts that this pattern represents, rounded to the nearest integer." + "location": { + "description": "The initally assigned location of a new codespace.", + "enum": [ + "EastUs", + "SouthEastAsia", + "WestEurope", + "WestUs2" + ], + "example": "WestUs2", + "type": "string" }, - "false_positives": { + "idle_timeout_minutes": { + "description": "The number of minutes of inactivity after which this codespace will be automatically stopped.", "type": "integer", - "description": "The number of false positive alerts generated by this pattern." + "example": 60, + "nullable": true }, - "false_positive_rate": { - "type": "integer", - "description": "The percentage of alerts from this pattern that are false positives, rounded to the nearest integer." + "web_url": { + "description": "URL to access this codespace on the web.", + "type": "string", + "format": "uri" }, - "bypass_rate": { - "type": "integer", - "description": "The percentage of blocks for this pattern that were bypassed, rounded to the nearest integer." + "machines_url": { + "description": "API URL to access available alternate machine types for this codespace.", + "type": "string", + "format": "uri" }, - "default_setting": { + "start_url": { + "description": "API URL to start this codespace.", "type": "string", - "description": "The default push protection setting for this pattern.", - "enum": [ - "disabled", - "enabled" - ] + "format": "uri" }, - "enterprise_setting": { + "stop_url": { + "description": "API URL to stop this codespace.", "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" - ], + "format": "uri" + }, + "publish_url": { + "description": "API URL to publish this codespace to a new repository.", + "type": "string", + "format": "uri", "nullable": true }, - "setting": { + "pulls_url": { + "description": "API URL for the Pull Request associated with this codespace, if any.", "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" + "format": "uri", + "nullable": true }, - "provider_pattern_overrides": { + "recent_folders": { "type": "array", - "description": "Overrides for partner patterns.", "items": { - "$ref": "#/components/schemas/secret-scanning-pattern-override" + "type": "string" } }, - "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.", + "runtime_constraints": { "type": "object", - "nullable": true, "properties": { - "ecosystem": { - "$ref": "#/components/schemas/security-advisory-ecosystems" - }, - "name": { - "type": "string", - "description": "The unique package name within its ecosystem.", + "allowed_port_privacy_settings": { + "description": "The privacy settings a user can select from when forwarding a port.", + "type": "array", + "items": { + "type": "string" + }, "nullable": true } - }, - "required": [ - "ecosystem", - "name" - ] + } }, - "vulnerable_version_range": { + "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", - "description": "The range of the package versions affected by the vulnerability.", "nullable": true }, - "patched_versions": { + "idle_timeout_notice": { + "description": "Text to show user when codespace idle timeout minutes has been overriden by an organization policy", "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" - } + "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": [ - "package", - "vulnerable_version_range", - "patched_versions", - "vulnerable_functions" - ], - "additionalProperties": false + "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" + ] }, - "repository-advisory-credit": { - "description": "A credit given to a user for a repository security advisory.", + "codespaces-org-secret": { + "title": "Codespaces Secret", + "description": "Secrets for a GitHub Codespace.", "type": "object", "properties": { - "user": { - "$ref": "#/components/schemas/simple-user" + "name": { + "description": "The name of the secret", + "example": "SECRET_NAME", + "type": "string" }, - "type": { - "$ref": "#/components/schemas/security-advisory-credit-types" + "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" }, - "state": { + "updated_at": { + "description": "The date and time at which the secret was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", "type": "string", - "description": "The state of the user's acceptance of the credit.", + "format": "date-time" + }, + "visibility": { + "description": "The type of repositories in the organization that the secret is visible to", "enum": [ - "accepted", - "declined", - "pending" - ] + "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": [ - "user", - "type", - "state" - ], - "additionalProperties": false + "name", + "created_at", + "updated_at", + "visibility" + ] }, - "repository-advisory": { - "description": "A repository security advisory.", + "codespaces-public-key": { + "title": "CodespacesPublicKey", + "description": "The public key used for setting Codespaces secrets.", "type": "object", "properties": { - "ghsa_id": { + "key_id": { + "description": "The identifier for the key.", "type": "string", - "description": "The GitHub Security Advisory ID.", - "readOnly": true + "example": "1234567" }, - "cve_id": { + "key": { + "description": "The Base64 encoded public key.", "type": "string", - "description": "The Common Vulnerabilities and Exposures (CVE) ID.", - "nullable": true + "example": "hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs=" + }, + "id": { + "type": "integer", + "example": 2 }, "url": { "type": "string", - "format": "uri", - "description": "The API URL for the advisory.", - "readOnly": true + "example": "https://api.github.com/user/keys/2" }, - "html_url": { + "title": { "type": "string", - "format": "uri", - "description": "The URL for the advisory.", - "readOnly": true + "example": "ssh-rsa AAAAB3NzaC1yc2EAAA" }, - "summary": { + "created_at": { "type": "string", - "description": "A short summary of the advisory.", - "maxLength": 1024 + "example": "2011-01-26T19:01:12Z" + } + }, + "required": [ + "key_id", + "key" + ] + }, + "copilot-space": { + "title": "Space", + "description": "A GitHub Copilot Space represents an interactive AI workspace where users can ask questions and get assistance.", + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "description": "The unique identifier of the space.", + "example": 42 + }, + "number": { + "type": "integer", + "description": "The number that identifies the space within its owner.", + "example": 1 + }, + "name": { + "type": "string", + "description": "The display name of the space.", + "example": "My Development Space" }, "description": { "type": "string", - "description": "A detailed description of what the advisory entails.", - "maxLength": 65535, - "nullable": true + "nullable": true, + "description": "A description of the space.", + "example": "A space for discussing React development patterns" }, - "severity": { + "general_instructions": { "type": "string", - "description": "The severity of the advisory.", + "maxLength": 4000, "nullable": true, + "description": "General instructions for the Copilot Space.", + "example": "Help with React development patterns and best practices" + }, + "base_role": { + "type": "string", "enum": [ - "critical", - "high", - "medium", - "low" - ] + "reader", + "writer", + "admin", + "no_access" + ], + "description": "The base role that determines default permissions.\n- `no_access`: No default access\n- `reader`: Default read permissions\n- `writer`: Default write permissions (organization spaces only)\n- `admin`: Default admin permissions (organization spaces only)", + "example": "no_access" }, - "author": { - "readOnly": true, - "nullable": true, - "description": "The author of the advisory.", - "allOf": [ + "owner": { + "anyOf": [ { "$ref": "#/components/schemas/simple-user" - } - ] - }, - "publisher": { - "readOnly": true, - "nullable": true, - "description": "The publisher of the advisory.", - "allOf": [ + }, { - "$ref": "#/components/schemas/simple-user" + "$ref": "#/components/schemas/organization-simple" } - ] + ], + "description": "The user or organization that owns this space." }, - "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" - ] + "creator": { + "$ref": "#/components/schemas/simple-user" }, "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 + "description": "The date and time the space was created.", + "example": "2023-01-01T00:00:00Z" }, "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 + "description": "The date and time the space was last updated.", + "example": "2023-01-01T12:00:00Z" }, - "closed_at": { + "html_url": { "type": "string", - "format": "date-time", - "description": "The date and time of when the advisory was closed, in ISO 8601 format.", - "readOnly": true, - "nullable": true + "format": "uri", + "description": "The HTML URL of the space.", + "example": "https://github.com/copilot/spaces/octo-org/5" }, - "withdrawn_at": { + "api_url": { "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" + "format": "uri", + "description": "The API URL of the space.", + "example": "https://api.github.com/organizations/1/copilot-spaces/5" }, - "cwes": { + "resources_attributes": { "type": "array", - "nullable": true, + "description": "Resources attached to the space.", "items": { "type": "object", "properties": { - "cwe_id": { + "id": { + "type": "integer", + "format": "int64", + "description": "The unique identifier of the resource." + }, + "resource_type": { "type": "string", - "description": "The Common Weakness Enumeration (CWE) identifier." + "enum": [ + "repository", + "github_file", + "free_text", + "github_issue", + "github_pull_request", + "media_content", + "uploaded_text_file" + ], + "description": "The type of resource." }, - "name": { + "copilot_chat_attachment_id": { + "type": "integer", + "format": "int64", + "nullable": true, + "description": "The unique identifier of the chat attachment for uploaded files or media content." + }, + "created_at": { "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": { + "format": "date-time", + "description": "The date and time the resource was created." + }, + "updated_at": { "type": "string", - "description": "The username of the user credited." + "format": "date-time", + "description": "The date and time the resource was last updated." }, - "type": { - "$ref": "#/components/schemas/security-advisory-credit-types" + "metadata": { + "type": "object", + "description": "Metadata specific to the resource type.", + "properties": { + "repository_id": { + "type": "integer", + "description": "Repository ID for repository or file resources." + }, + "file_path": { + "type": "string", + "description": "File path for file resources." + }, + "text": { + "type": "string", + "description": "Text content for free text resources." + }, + "name": { + "type": "string", + "description": "Name for the resource." + }, + "number": { + "type": "integer", + "description": "Issue or PR number." + }, + "copilot_chat_attachment_id": { + "type": "integer", + "description": "Chat attachment ID for uploaded files or media." + }, + "media_type": { + "type": "string", + "description": "Media type for media content resources." + }, + "url": { + "type": "string", + "description": "URL for media content resources." + }, + "height": { + "type": "integer", + "description": "Height for media content resources." + }, + "width": { + "type": "integer", + "description": "Width for media content resources." + } + } } } } - }, - "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", + "id", + "number", + "name", + "base_role", + "owner", + "creator", "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" + "html_url", + "api_url" ], - "additionalProperties": false, - "x-github-breaking-changes": [ + "additionalProperties": false + }, + "copilot-space-collaborator": { + "title": "Copilot Space Collaborator", + "description": "A collaborator (user or team) of a Copilot Space", + "type": "object", + "anyOf": [ { - "changeset": "deprecate_cvss", - "patch": { - "properties": { - "cvss": null + "allOf": [ + { + "$ref": "#/components/schemas/simple-user" }, - "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", - "cwes", - "cwe_ids", - "credits", - "credits_detailed", - "collaborating_users", - "collaborating_teams", - "private_fork" - ] + { + "type": "object", + "properties": { + "actor_type": { + "type": "string", + "enum": [ + "User" + ], + "description": "The collaborator actor type." + }, + "role": { + "type": "string", + "enum": [ + "reader", + "writer", + "admin" + ], + "description": "The role granted to the collaborator" + } + }, + "required": [ + "actor_type", + "role" + ] + } + ] + }, + { + "type": "object", + "properties": { + "actor_type": { + "type": "string", + "enum": [ + "Team" + ], + "description": "The collaborator actor type." + }, + "role": { + "type": "string", + "enum": [ + "reader", + "writer", + "admin" + ], + "description": "The role granted to the collaborator" + }, + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "Team" + ] + }, + "description": { + "type": "string", + "nullable": true + }, + "privacy": { + "type": "string" + }, + "notification_setting": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "members_url": { + "type": "string" + }, + "repositories_url": { + "type": "string", + "format": "uri" + }, + "organization_id": { + "type": "integer" + }, + "parent": { + "nullable": true + } }, - "version": "2026-03-10" + "required": [ + "actor_type", + "role", + "id", + "node_id", + "name", + "slug", + "type" + ] } ] }, - "immutable-releases-organization-settings": { - "title": "Check immutable releases organization settings", - "description": "Check immutable releases settings for an organization.", + "copilot-space-resource": { + "title": "Copilot Space Resource", + "description": "A resource attached to a Copilot Space.", "type": "object", "properties": { - "enforced_repositories": { + "id": { + "type": "integer", + "description": "The unique identifier of the resource." + }, + "resource_type": { "type": "string", - "description": "The policy that controls how immutable releases are enforced in the organization.", + "description": "The type of the resource.", "enum": [ - "all", - "none", - "selected" - ], - "example": "all" + "repository", + "github_file", + "free_text", + "github_issue", + "github_pull_request", + "media_content", + "uploaded_text_file" + ] }, - "selected_repositories_url": { + "copilot_chat_attachment_id": { + "type": "integer", + "nullable": true, + "description": "The ID of the associated chat attachment, if any." + }, + "metadata": { + "type": "object", + "description": "Resource-specific metadata. The keys and values depend on the resource type.", + "additionalProperties": true + }, + "created_at": { "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`." + "format": "date-time", + "description": "The date and time the resource was created." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the resource was last updated." } }, "required": [ - "enforced_repositories" + "id", + "resource_type", + "metadata", + "created_at", + "updated_at" ] }, - "network-configuration": { - "title": "Hosted compute network configuration", - "description": "A hosted compute network configuration.", + "copilot-organization-seat-breakdown": { + "title": "Copilot Seat Breakdown", + "description": "The breakdown of Copilot Business seats for the organization.", "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" + "total": { + "type": "integer", + "description": "The total number of seats being billed for the organization as of the current billing cycle." }, - "compute_service": { - "description": "The hosted compute service the network configuration supports.", - "type": "string", - "enum": [ - "none", - "actions", - "codespaces" - ] + "added_this_cycle": { + "type": "integer", + "description": "Seats added during the current billing cycle." }, - "network_settings_ids": { - "description": "The unique identifier of each network settings in the configuration.", - "type": "array", - "items": { - "type": "string" - }, - "example": "123ABC456DEF789" + "pending_cancellation": { + "type": "integer", + "description": "The number of seats that are pending cancellation at the end of the current billing cycle." }, - "failover_network_settings_ids": { - "description": "The unique identifier of each failover network settings in the configuration.", - "type": "array", - "items": { - "type": "string" - }, - "example": "123ABC456DEF789" + "pending_invitation": { + "type": "integer", + "description": "The number of users who have been invited to receive a Copilot seat through this organization." }, - "failover_network_enabled": { - "description": "Indicates whether the failover network resource is enabled.", - "type": "boolean", - "example": true + "active_this_cycle": { + "type": "integer", + "description": "The number of seats that have used Copilot during the current billing cycle." }, - "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 + "inactive_this_cycle": { + "type": "integer", + "description": "The number of seats that have not used Copilot during the current billing cycle." } - }, - "required": [ - "id", - "name", - "created_on" - ] + } }, - "network-settings": { - "title": "Hosted compute network settings resource", - "description": "A hosted compute network settings resource.", + "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": { - "id": { - "description": "The unique identifier of the network settings resource.", + "seat_breakdown": { + "$ref": "#/components/schemas/copilot-organization-seat-breakdown" + }, + "public_code_suggestions": { "type": "string", - "example": "220F78DACB92BBFBC5E6F22DE1CCF52309D" + "description": "The organization policy for allowing or blocking suggestions matching public code (duplication detection filter).", + "enum": [ + "allow", + "block", + "unconfigured" + ] }, - "network_configuration_id": { - "description": "The identifier of the network configuration that is using this settings resource.", + "ide_chat": { "type": "string", - "example": "934E208B3EE0BD60CF5F752C426BFB53562" + "description": "The organization policy for allowing or disallowing Copilot Chat in the IDE.", + "enum": [ + "enabled", + "disabled", + "unconfigured" + ] }, - "name": { - "description": "The name of the network settings resource.", + "platform_chat": { "type": "string", - "example": "my-network-settings" + "description": "The organization policy for allowing or disallowing Copilot features on GitHub.com.", + "enum": [ + "enabled", + "disabled", + "unconfigured" + ] }, - "subnet_id": { - "description": "The subnet this network settings resource is configured for.", + "cli": { "type": "string", - "example": "/subscriptions/14839728-3ad9-43ab-bd2b-fa6ad0f75e2a/resourceGroups/my-rg/providers/Microsoft.Network/virtualNetworks/my-vnet/subnets/my-subnet" + "description": "The organization policy for allowing or disallowing Copilot CLI.", + "enum": [ + "enabled", + "disabled", + "unconfigured" + ] }, - "region": { - "description": "The location of the subnet this network settings resource is configured for.", + "seat_management_setting": { "type": "string", - "example": "eastus" + "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": [ - "id", - "name", - "subnet_id", - "region" - ] + "seat_breakdown", + "public_code_suggestions", + "seat_management_setting" + ], + "additionalProperties": true }, - "team-organization": { - "title": "Team Organization", - "description": "Team Organization", + "nullable-organization-simple": { + "title": "Organization Simple", + "description": "A GitHub organization.", "type": "object", "properties": { "login": { @@ -127542,189 +131274,6 @@ "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": [ @@ -127739,260 +131288,182 @@ "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" + "description" + ], + "nullable": true }, - "team-full": { - "title": "Full Team", - "description": "Groups of organization members that gives permissions on specified repositories.", + "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": { - "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" + "assignee": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "slug": { - "type": "string", - "example": "justice-league" + "organization": { + "$ref": "#/components/schemas/nullable-organization-simple" }, - "description": { - "type": "string", - "example": "A great team.", + "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 }, - "privacy": { - "description": "The level of privacy this team should have", + "pending_cancellation_date": { "type": "string", - "enum": [ - "closed", - "secret" - ], - "example": "closed" + "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." }, - "notification_setting": { - "description": "The notification setting the team has set", + "last_activity_at": { "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" + "format": "date-time", + "nullable": true, + "description": "Timestamp of user's last GitHub Copilot activity, in ISO 8601 format." }, - "members_url": { + "last_activity_editor": { "type": "string", - "example": "https://api.github.com/organizations/1/team/1/members{/member}" + "nullable": true, + "description": "Last editor that was used by the user for a GitHub Copilot completion." }, - "repositories_url": { + "last_authenticated_at": { "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 + "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", - "example": "2017-07-14T16:53:42Z" + "description": "Timestamp of when the assignee was last granted access to GitHub Copilot, in ISO 8601 format." }, "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" + "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." }, - "type": { - "description": "The ownership type of the team", + "plan_type": { "type": "string", + "description": "The Copilot plan of the organization, or the parent enterprise, when applicable.", "enum": [ + "business", "enterprise", - "organization" + "unknown" ] + } + }, + "required": [ + "created_at" + ], + "additionalProperties": false + }, + "copilot-organization-content-exclusion-details": { + "title": "Copilot Organization Content Exclusion Details", + "description": "List all Copilot Content Exclusion rules for an organization.", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string", + "description": "The path to the file that will be excluded." + } + } + }, + "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" }, - "organization_id": { - "type": "integer", - "description": "Unique identifier of the organization to which this team belongs", - "example": 37 + "created_at": { + "type": "string", + "format": "date-time" }, - "enterprise_id": { - "type": "integer", - "description": "Unique identifier of the enterprise to which this team belongs", - "example": 42 + "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": [ - "id", - "node_id", - "url", - "members_url", "name", - "description", - "permission", - "html_url", - "repositories_url", - "slug", - "type", "created_at", "updated_at", - "members_count", - "repos_count", - "organization" + "visibility" ] }, - "team-membership": { - "title": "Team Membership", - "description": "Team Membership", + "dependabot-public-key": { + "title": "DependabotPublicKey", + "description": "The public key used for setting Dependabot Secrets.", "type": "object", "properties": { - "url": { + "key_id": { + "description": "The identifier for the key.", "type": "string", - "format": "uri" - }, - "role": { - "description": "The role of the user in the team.", - "enum": [ - "member", - "maintainer" - ], - "default": "member", - "example": "member", - "type": "string" + "example": "1234567" }, - "state": { - "description": "The state of the user's membership in the team.", + "key": { + "description": "The Base64 encoded public key.", "type": "string", - "enum": [ - "active", - "pending" - ] + "example": "hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs=" } }, "required": [ - "role", - "state", - "url" + "key_id", + "key" ] }, - "team-repository": { - "title": "Team Repository", - "description": "A team's access to a repository.", + "nullable-minimal-repository": { + "title": "Minimal Repository", + "description": "Minimal Repository", "type": "object", "properties": { "id": { - "description": "Unique identifier of the repository", - "example": 42, - "type": "integer" + "type": "integer", + "format": "int64", + "example": 1296269 }, "node_id": { "type": "string", "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" }, "name": { - "description": "The name of the repository.", "type": "string", - "example": "Team Environment" + "example": "Hello-World" }, "full_name": { "type": "string", "example": "octocat/Hello-World" }, - "license": { - "$ref": "#/components/schemas/nullable-license-simple" + "owner": { + "$ref": "#/components/schemas/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" - ] - }, - "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" + "private": { + "type": "boolean" }, "html_url": { "type": "string", @@ -128086,8 +131557,7 @@ "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" }, "git_url": { - "type": "string", - "example": "git:github.com/octocat/Hello-World.git" + "type": "string" }, "issue_comment_url": { "type": "string", @@ -128136,8 +131606,7 @@ "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" }, "ssh_url": { - "type": "string", - "example": "git@github.com:octocat/Hello-World.git" + "type": "string" }, "stargazers_url": { "type": "string", @@ -128173,13 +131642,10 @@ "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" }, "clone_url": { - "type": "string", - "example": "https://github.com/octocat/Hello-World.git" + "type": "string" }, "mirror_url": { "type": "string", - "format": "uri", - "example": "git:git.example.com/octocat/Hello-World", "nullable": true }, "hooks_url": { @@ -128188,14 +131654,10 @@ "example": "http://api.github.com/repos/octocat/Hello-World/hooks" }, "svn_url": { - "type": "string", - "format": "uri", - "example": "https://svn.github.com/octocat/Hello-World" + "type": "string" }, "homepage": { "type": "string", - "format": "uri", - "example": "https://github.com", "nullable": true }, "language": { @@ -128203,35 +131665,26 @@ "nullable": true }, "forks_count": { - "type": "integer", - "example": 9 + "type": "integer" }, "stargazers_count": { - "type": "integer", - "example": 80 + "type": "integer" }, "watchers_count": { - "type": "integer", - "example": 80 + "type": "integer" }, "size": { - "type": "integer", - "example": 108 + "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": { - "description": "The default branch of the repository.", - "type": "string", - "example": "master" + "type": "string" }, "open_issues_count": { - "type": "integer", - "example": 0 + "type": "integer" }, "is_template": { - "description": "Whether this repository acts as a template that can be used to generate new repositories.", - "default": false, - "type": "boolean", - "example": true + "type": "boolean" }, "topics": { "type": "array", @@ -128240,44 +131693,41 @@ } }, "has_issues": { - "description": "Whether issues are enabled.", - "default": true, - "type": "boolean", - "example": true + "type": "boolean" }, "has_projects": { - "description": "Whether projects are enabled.", - "default": true, - "type": "boolean", - "example": true + "type": "boolean" }, "has_wiki": { - "description": "Whether the wiki is enabled.", - "default": true, - "type": "boolean", - "example": true + "type": "boolean" }, "has_pages": { "type": "boolean" }, "has_downloads": { - "description": "Whether downloads are enabled.", - "default": true, - "type": "boolean", - "example": true + "type": "boolean" + }, + "has_discussions": { + "type": "boolean" + }, + "has_pull_requests": { + "type": "boolean" + }, + "pull_request_creation_policy": { + "description": "The policy controlling who can create pull requests: all or collaborators_only.", + "type": "string", + "enum": [ + "all", + "collaborators_only" + ] }, "archived": { - "description": "Whether the repository is archived.", - "default": false, "type": "boolean" }, "disabled": { - "type": "boolean", - "description": "Returns whether or not this repository disabled." + "type": "boolean" }, "visibility": { - "description": "The repository visibility: public, private, or internal.", - "default": "public", "type": "string" }, "pushed_at": { @@ -128298,50 +131748,35 @@ "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 + "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" }, - "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 + "type": "boolean" }, "subscribers_count": { "type": "integer" @@ -128349,14 +131784,57 @@ "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" + "type": "integer", + "example": 0 }, "watchers": { - "type": "integer" + "type": "integer", + "example": 0 }, - "master_branch": { - "type": "string" + "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": [ @@ -128405,34 +131883,7 @@ "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" + "url" ], "x-github-breaking-changes": [ { @@ -128440,11123 +131891,9909 @@ "patch": { "properties": { "has_downloads": null - }, - "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", - "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" - ] + } }, "version": "2026-03-10" } - ] + ], + "nullable": true }, - "rate-limit": { - "title": "Rate Limit", + "package": { + "title": "Package", + "description": "A software package", "type": "object", "properties": { - "limit": { - "type": "integer" + "id": { + "description": "Unique identifier of the package.", + "type": "integer", + "example": 1 }, - "remaining": { - "type": "integer" + "name": { + "description": "The name of the package.", + "type": "string", + "example": "super-linter" }, - "reset": { - "type": "integer" + "package_type": { + "type": "string", + "example": "docker", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] }, - "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" + "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" ] }, - "rate": { - "$ref": "#/components/schemas/rate-limit" + "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": [ - "rate", - "resources" - ], - "x-github-breaking-changes": [ - { - "changeset": "remove_rate_limit_rate", - "patch": { - "properties": { - "rate": null - }, - "required": [ - "resources" - ] - }, - "version": "2026-03-10" - } + "id", + "name", + "package_type", + "visibility", + "url", + "html_url", + "version_count", + "created_at", + "updated_at" ] }, - "artifact": { - "title": "Artifact", - "description": "An artifact", + "organization-invitation": { + "title": "Organization Invitation", + "description": "Organization Invitation", "type": "object", "properties": { "id": { "type": "integer", - "example": 5 + "format": "int64" }, - "node_id": { + "login": { "type": "string", - "example": "MDEwOkNoZWNrU3VpdGU1" + "nullable": true }, - "name": { - "description": "The name of the artifact.", + "email": { "type": "string", - "example": "AdventureWorks.Framework" + "nullable": true }, - "size_in_bytes": { - "description": "The size in bytes of the artifact.", - "type": "integer", - "example": 12345 + "role": { + "type": "string" }, - "url": { + "created_at": { + "type": "string" + }, + "failed_at": { "type": "string", - "example": "https://api.github.com/repos/github/hello-world/actions/artifacts/5" + "nullable": true }, - "archive_download_url": { + "failed_reason": { "type": "string", - "example": "https://api.github.com/repos/github/hello-world/actions/artifacts/5/zip" + "nullable": true }, - "expired": { - "description": "Whether or not the artifact has expired.", - "type": "boolean" + "inviter": { + "$ref": "#/components/schemas/simple-user" }, - "created_at": { + "team_count": { + "type": "integer" + }, + "node_id": { "type": "string", - "format": "date-time", - "nullable": true + "example": "\"MDIyOk9yZ2FuaXphdGlvbkludml0YXRpb24x\"" }, - "expires_at": { + "invitation_teams_url": { "type": "string", - "format": "date-time", - "nullable": true + "example": "\"https://api.github.com/organizations/16/invitations/1/teams\"" }, - "updated_at": { + "invitation_source": { "type": "string", - "format": "date-time", - "nullable": true + "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 }, - "digest": { + "url": { "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" + "format": "uri", + "example": "https://api.github.com/orgs/octocat/hooks/1" }, - "workflow_run": { + "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", - "nullable": true, "properties": { - "id": { - "example": 10, - "type": "integer" - }, - "repository_id": { - "example": 42, - "type": "integer" + "url": { + "type": "string", + "example": "\"http://example.com/2\"" }, - "head_repository_id": { - "example": 42, - "type": "integer" + "insecure_ssl": { + "type": "string", + "example": "\"0\"" }, - "head_branch": { - "example": "main", - "type": "string" + "content_type": { + "type": "string", + "example": "\"form\"" }, - "head_sha": { - "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", - "type": "string" + "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", - "node_id", - "name", - "size_in_bytes", "url", - "archive_download_url", - "expired", + "type", + "name", + "active", + "events", + "config", + "ping_url", "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.", + "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": { - "max_cache_retention_days": { - "description": "The maximum number of days to keep caches in this repository.", + "total_request_count": { + "description": "The total number of requests within the queried time period", "type": "integer", - "example": 14 + "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" } } }, - "actions-cache-storage-limit-for-repository": { - "title": "Actions cache storage limit for a repository", - "description": "GitHub Actions cache storage policy for a repository.", + "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": { - "max_cache_size_gb": { - "description": "The maximum total cache size for this repository, in gigabytes.", - "type": "integer", - "example": 10 + "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" + ] }, - "actions-cache-list": { - "title": "Repository actions caches", - "description": "Repository actions caches", + "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": { - "total_count": { - "description": "Total number of caches", - "type": "integer", - "example": 2 + "limit": { + "$ref": "#/components/schemas/interaction-group" }, - "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 - } - } - } + "expiry": { + "$ref": "#/components/schemas/interaction-expiry" } }, "required": [ - "total_count", - "actions_caches" + "limit" ] }, - "job": { - "title": "Job", - "description": "Information of a job execution in a workflow run", + "issue-field": { + "title": "Issue Field", + "description": "A custom attribute defined at the organization level for attaching structured data to issues.", "type": "object", + "nullable": true, "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 + "description": "The unique identifier of the issue field." }, "node_id": { "type": "string", - "example": "MDg6Q2hlY2tSdW40" - }, - "head_sha": { - "description": "The SHA of the commit that is being run.", - "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", - "type": "string" + "description": "The node identifier of the issue field." }, - "url": { + "name": { "type": "string", - "example": "https://api.github.com/repos/github/hello-world/actions/jobs/21" + "description": "The name of the issue field." }, - "html_url": { + "description": { "type": "string", - "example": "https://github.com/github/hello-world/runs/4", + "description": "The description of the issue field.", "nullable": true }, - "status": { - "description": "The phase of the lifecycle that the job is currently in.", - "example": "queued", + "data_type": { "type": "string", + "description": "The data type of the issue field.", "enum": [ - "queued", - "in_progress", - "completed", - "waiting", - "requested", - "pending" + "text", + "date", + "single_select", + "multi_select", + "number" ] }, - "conclusion": { - "description": "The outcome of the job.", - "example": "success", + "visibility": { "type": "string", - "nullable": true, + "description": "The visibility of the issue field. Can be `organization_members_only` (visible only within the organization) or `all` (visible to all users who can see issues).", "enum": [ - "success", - "failure", - "neutral", - "cancelled", - "skipped", - "timed_out", - "action_required" + "organization_members_only", + "all" ] }, - "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.", + "options": { + "description": "Available options for single select and multi select fields.", "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", + "id": { + "type": "integer", + "description": "The unique identifier of the option." + }, + "name": { "type": "string", - "enum": [ - "queued", - "in_progress", - "completed" - ] + "description": "The name of the option." }, - "conclusion": { - "description": "The outcome of the job.", - "example": "success", + "description": { "type": "string", + "description": "The description of the option.", "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", + "color": { "type": "string", + "description": "The color of the option.", + "enum": [ + "gray", + "blue", + "green", + "yellow", + "orange", + "red", + "pink", + "purple" + ], "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", + "priority": { + "type": "integer", + "description": "The priority of the option for ordering.", "nullable": true + }, + "created_at": { + "type": "string", + "description": "The time the option was created.", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "description": "The time the option was last updated.", + "format": "date-time" } - } - } - }, - "check_run_url": { - "type": "string", - "example": "https://api.github.com/repos/github/hello-world/check-runs/4" - }, - "labels": { - "type": "array", - "items": { - "type": "string" + }, + "required": [ + "id", + "name" + ] }, - "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.)" + "nullable": true }, - "runner_name": { + "created_at": { "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.)" + "description": "The time the issue field was created.", + "format": "date-time" }, - "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.)" + "updated_at": { + "type": "string", + "description": "The time the issue field was last updated.", + "format": "date-time" + } + }, + "required": [ + "id", + "node_id", + "name", + "data_type" + ] + }, + "organization-create-issue-field": { + "type": "object", + "properties": { + "name": { + "description": "Name of the issue field.", + "type": "string" }, - "runner_group_name": { + "description": { + "description": "Description of the issue field.", "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.)" + "nullable": true }, - "workflow_name": { + "data_type": { + "description": "The data type of the issue field.", "type": "string", - "description": "The name of the workflow.", - "nullable": true, - "example": "Build" + "enum": [ + "text", + "date", + "single_select", + "multi_select", + "number" + ] }, - "head_branch": { + "visibility": { + "description": "The visibility of the issue field. Can be `organization_members_only` (visible only within the organization) or `all` (visible to all users who can see issues). Only used when the visibility settings feature is enabled. Defaults to `organization_members_only`.", "type": "string", - "description": "The name of the current branch.", - "nullable": true, - "example": "main" + "enum": [ + "organization_members_only", + "all" + ] + }, + "options": { + "description": "Options for select fields. Required when data_type is 'single_select' or 'multi_select'.", + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "description": "Name of the option.", + "type": "string" + }, + "description": { + "description": "Description of the option.", + "type": "string", + "nullable": true + }, + "color": { + "description": "Color for the option.", + "type": "string", + "enum": [ + "gray", + "blue", + "green", + "yellow", + "orange", + "red", + "pink", + "purple" + ] + }, + "priority": { + "description": "Priority of the option for ordering.", + "type": "integer" + } + }, + "required": [ + "name", + "color", + "priority" + ] + }, + "nullable": true } }, "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" + "data_type" ] }, - "oidc-custom-sub-repo": { - "title": "Actions OIDC subject customization for a repository", - "description": "Actions OIDC subject customization for a repository", + "organization-update-issue-field": { "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" + "name": { + "description": "Name of the issue field.", + "type": "string" }, - "include_claim_keys": { - "description": "Array of unique strings. Each claim key can only contain alphanumeric characters and underscores.", + "description": { + "description": "Description of the issue field.", + "type": "string", + "nullable": true + }, + "visibility": { + "description": "The visibility of the issue field. Can be `organization_members_only` (visible only within the organization) or `all` (visible to all users who can see issues). Only used when the visibility settings feature is enabled.", + "type": "string", + "enum": [ + "organization_members_only", + "all" + ] + }, + "options": { + "description": "Options for select fields. Only applicable when updating single_select or multi_select fields. When provided, this array **replaces** the entire existing set of options rather than adding to or updating individual options. To retain or update an existing option, include it in the array with its `id`. Options sent without an `id` are treated as new options and may cause existing options to be deleted and recreated.", "type": "array", "items": { - "type": "string" + "type": "object", + "properties": { + "id": { + "description": "The id of an existing option to retain or update. Omit this when creating a new option.", + "type": "integer" + }, + "name": { + "description": "Name of the option.", + "type": "string" + }, + "description": { + "description": "Description of the option.", + "type": "string", + "nullable": true + }, + "color": { + "description": "Color for the option.", + "type": "string", + "enum": [ + "gray", + "blue", + "green", + "yellow", + "orange", + "red", + "pink", + "purple" + ] + }, + "priority": { + "description": "Priority of the option for ordering.", + "type": "integer" + } + }, + "required": [ + "name", + "color", + "priority" + ] } } - }, - "required": [ - "use_default" - ] + } }, - "actions-secret": { - "title": "Actions Secret", - "description": "Set secrets for GitHub Actions.", + "organization-create-issue-type": { "type": "object", "properties": { "name": { - "description": "The name of the secret.", - "example": "SECRET_TOKEN", + "description": "Name of the issue type.", "type": "string" }, - "created_at": { + "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", - "format": "date-time" + "nullable": true }, - "updated_at": { + "color": { + "description": "Color for the issue type.", "type": "string", - "format": "date-time" + "enum": [ + "gray", + "blue", + "green", + "yellow", + "orange", + "red", + "pink", + "purple" + ], + "nullable": true } }, "required": [ "name", - "created_at", - "updated_at" + "is_enabled" ] }, - "actions-variable": { - "title": "Actions Variable", + "organization-update-issue-type": { "type": "object", "properties": { "name": { - "description": "The name of the variable.", - "example": "USERNAME", + "description": "Name of the issue type.", "type": "string" }, - "value": { - "description": "The value of the variable.", - "example": "octocat", - "type": "string" + "is_enabled": { + "description": "Whether or not the issue type is enabled at the organization level.", + "type": "boolean" }, - "created_at": { - "description": "The date and time at which the variable was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "description": { + "description": "Description of the issue type.", "type": "string", - "format": "date-time", - "example": "2019-01-24T22:45:36.000Z" + "nullable": true }, - "updated_at": { - "description": "The date and time at which the variable was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "color": { + "description": "Color for the issue type.", "type": "string", - "format": "date-time", - "example": "2019-01-24T22:45:36.000Z" + "enum": [ + "gray", + "blue", + "green", + "yellow", + "orange", + "red", + "pink", + "purple" + ], + "nullable": true } }, "required": [ "name", - "value", - "created_at", - "updated_at" + "is_enabled" ] }, - "actions-enabled": { - "type": "boolean", - "description": "Whether GitHub Actions is enabled on the repository." - }, - "actions-repository-permissions": { + "org-membership": { + "title": "Org Membership", + "description": "Org Membership", "type": "object", "properties": { - "enabled": { - "$ref": "#/components/schemas/actions-enabled" + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/octocat/memberships/defunkt" }, - "allowed_actions": { - "$ref": "#/components/schemas/allowed-actions" + "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" + ] }, - "selected_actions_url": { - "$ref": "#/components/schemas/selected-actions-url" + "role": { + "type": "string", + "description": "The user's membership type in the organization.", + "example": "admin", + "enum": [ + "admin", + "member", + "billing_manager" + ] }, - "sha_pinning_required": { - "$ref": "#/components/schemas/sha-pinning-required" + "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": [ - "enabled" + "state", + "role", + "organization_url", + "url", + "organization", + "user" ] }, - "actions-workflow-access-to-repository": { + "migration": { + "title": "Migration", + "description": "A migration.", "type": "object", "properties": { - "access_level": { + "id": { + "type": "integer", + "format": "int64", + "example": 79 + }, + "owner": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "guid": { "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" - ] + "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": [ - "access_level" + "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" + ], + "x-github-breaking-changes": [ + { + "changeset": "restrict_repo_fields_in_migration_resource", + "patch": [ + { + "op": "replace", + "path": "/properties/repositories", + "value": { + "type": "array", + "description": "The repositories included in the migration. Only returned for export migrations.", + "items": { + "$ref": "#/components/schemas/simple-repository" + } + } + } + ], + "version": "2026-03-10" + } ] }, - "referenced-workflow": { - "title": "Referenced workflow", - "description": "A workflow referenced/reused by the initial caller workflow", + "organization-role": { + "title": "Organization Role", + "description": "Organization roles", "type": "object", "properties": { - "path": { - "type": "string" + "id": { + "description": "The unique identifier of the role.", + "type": "integer", + "format": "int64" }, - "sha": { + "name": { + "description": "The name of the role.", "type": "string" }, - "ref": { - "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": [ - "path", - "sha" + "id", + "name", + "permissions", + "organization", + "created_at", + "updated_at" ] }, - "nullable-simple-commit": { - "title": "Simple Commit", - "description": "A commit.", + "team-role-assignment": { + "title": "A Role Assignment for a Team", + "description": "The Relationship a Team has with a role.", "type": "object", "properties": { - "id": { + "assignment": { "type": "string", - "description": "SHA for the commit", - "example": "7638417db6d59f3c431d3e1f261cc637155684cd" + "description": "Determines if the team has a direct, indirect, or mixed relationship to a role", + "enum": [ + "direct", + "indirect", + "mixed" + ], + "example": "direct" }, - "tree_id": { - "type": "string", - "description": "SHA for the commit's tree" + "id": { + "type": "integer" }, - "message": { - "description": "Message describing the purpose of the commit", - "example": "Fix #42", + "node_id": { "type": "string" }, - "timestamp": { - "description": "Timestamp of the commit", - "example": "2014-08-09T08:02:04+12:00", - "format": "date-time", + "name": { "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" - ], + "slug": { + "type": "string" + }, + "description": { + "type": "string", "nullable": true }, - "committer": { + "privacy": { + "type": "string" + }, + "notification_setting": { + "type": "string" + }, + "permission": { + "type": "string" + }, + "permissions": { "type": "object", - "description": "Information about the Git committer", "properties": { - "name": { - "description": "Name of the commit's committer", - "example": "Monalisa Octocat", - "type": "string" + "pull": { + "type": "boolean" }, - "email": { - "description": "Git email address of the commit's committer", - "example": "monalisa.octocat@example.com", - "type": "string", - "format": "email" + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "admin": { + "type": "boolean" } }, "required": [ - "name", - "email" - ], - "nullable": true + "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", - "tree_id", - "message", - "timestamp", - "author", - "committer" - ], - "nullable": true + "node_id", + "url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug", + "type", + "parent" + ] }, - "workflow-run": { - "title": "Workflow Run", - "description": "An invocation of a workflow", + "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", - "description": "The ID of the workflow run.", - "example": 5 + "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", - "description": "The name of the workflow run.", "nullable": true, - "example": "Build" + "example": "A great team." }, - "node_id": { + "permission": { + "description": "Permission that the team will have for its repositories", "type": "string", - "example": "MDEwOkNoZWNrU3VpdGU1" + "example": "admin" }, - "check_suite_id": { - "type": "integer", - "description": "The ID of the associated check suite.", - "example": 42 + "privacy": { + "description": "The level of privacy this team should have", + "type": "string", + "example": "closed" }, - "check_suite_node_id": { + "notification_setting": { + "description": "The notification setting the team has set", "type": "string", - "description": "The node ID of the associated check suite.", - "example": "MDEwOkNoZWNrU3VpdGU0Mg==" + "example": "notifications_enabled" }, - "head_branch": { + "html_url": { "type": "string", - "nullable": true, - "example": "master" + "format": "uri", + "example": "https://github.com/orgs/rails/teams/core" }, - "head_sha": { - "description": "The SHA of the head commit that points to the version of the workflow being run.", - "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", - "type": "string" + "repositories_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/1/team/1/repos" }, - "path": { - "description": "The full path of the workflow", - "example": "octocat/octo-repo/.github/workflows/ci.yml@main", + "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" }, - "run_number": { + "type": { + "description": "The ownership type of the team", + "type": "string", + "enum": [ + "enterprise", + "organization" + ] + }, + "organization_id": { "type": "integer", - "description": "The auto incrementing run number for the workflow run.", - "example": 106 + "description": "Unique identifier of the organization to which this team belongs", + "example": 37 }, - "run_attempt": { + "enterprise_id": { "type": "integer", - "description": "Attempt number of the run, 1 for first attempt and higher if the workflow was re-run.", - "example": 1 + "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" }, - "referenced_workflows": { + "inherited_from": { + "description": "Team the user has gotten the role through", "type": "array", - "nullable": true, "items": { - "$ref": "#/components/schemas/referenced-workflow" + "$ref": "#/components/schemas/team-simple" } }, - "event": { - "type": "string", - "example": "push" + "name": { + "nullable": true, + "type": "string" }, - "status": { - "type": "string", + "email": { "nullable": true, - "example": "completed" + "type": "string" }, - "conclusion": { + "login": { "type": "string", - "nullable": true, - "example": "neutral" + "example": "octocat" }, - "workflow_id": { + "id": { "type": "integer", - "description": "The ID of the parent workflow.", - "example": 5 + "example": 1 }, - "url": { + "node_id": { "type": "string", - "description": "The URL to the workflow run.", - "example": "https://api.github.com/repos/github/hello-world/actions/runs/5" + "example": "MDQ6VXNlcjE=" }, - "html_url": { + "avatar_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" - } + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" }, - "created_at": { + "gravatar_id": { "type": "string", - "format": "date-time" + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true }, - "updated_at": { + "url": { "type": "string", - "format": "date-time" - }, - "actor": { - "$ref": "#/components/schemas/simple-user" - }, - "triggering_actor": { - "$ref": "#/components/schemas/simple-user" + "format": "uri", + "example": "https://api.github.com/users/octocat" }, - "run_started_at": { + "html_url": { "type": "string", - "format": "date-time", - "description": "The start time of the latest run. Resets on re-run." + "format": "uri", + "example": "https://github.com/octocat" }, - "jobs_url": { - "description": "The URL to the jobs for the workflow run.", + "followers_url": { "type": "string", - "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/jobs" + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" }, - "logs_url": { - "description": "The URL to download the logs for the workflow run.", + "following_url": { "type": "string", - "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/logs" + "example": "https://api.github.com/users/octocat/following{/other_user}" }, - "check_suite_url": { - "description": "The URL to the associated check suite.", + "gists_url": { "type": "string", - "example": "https://api.github.com/repos/github/hello-world/check-suites/12" + "example": "https://api.github.com/users/octocat/gists{/gist_id}" }, - "artifacts_url": { - "description": "The URL to the artifacts for the workflow run.", + "starred_url": { "type": "string", - "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/rerun/artifacts" + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" }, - "cancel_url": { - "description": "The URL to cancel the workflow run.", + "subscriptions_url": { "type": "string", - "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/cancel" + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" }, - "rerun_url": { - "description": "The URL to rerun the workflow run.", + "organizations_url": { "type": "string", - "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/rerun" + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" }, - "previous_attempt_url": { - "nullable": true, - "description": "The URL to the previous attempted run of this workflow, if one exists.", + "repos_url": { "type": "string", - "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/attempts/3" + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" }, - "workflow_url": { - "description": "The URL to the workflow.", + "events_url": { "type": "string", - "example": "https://api.github.com/repos/github/hello-world/actions/workflows/main.yaml" + "example": "https://api.github.com/users/octocat/events{/privacy}" }, - "head_commit": { - "$ref": "#/components/schemas/nullable-simple-commit" + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" }, - "repository": { - "$ref": "#/components/schemas/minimal-repository" + "type": { + "type": "string", + "example": "User" }, - "head_repository": { - "$ref": "#/components/schemas/minimal-repository" + "site_admin": { + "type": "boolean" }, - "head_repository_id": { - "type": "integer", - "example": 5 + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:55Z\"" }, - "display_title": { + "user_view_type": { "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." + "example": "public" } }, "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", "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" + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" ] }, - "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", + "package-version": { + "title": "Package Version", + "description": "A version of a software package", "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": { + "id": { + "description": "Unique identifier of the package version.", "type": "integer", - "description": "The set duration of the wait timer", - "example": 30 + "example": 1 }, - "wait_timer_started_at": { - "description": "The time that the wait timer began.", - "example": "2020-11-23T22:00:40Z", - "format": "date-time", + "name": { + "description": "The name of the package version.", "type": "string", - "nullable": true - }, - "current_user_can_approve": { - "description": "Whether the currently authenticated user can approve the deployment", - "type": "boolean", - "example": true + "example": "latest" }, - "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 + "example": "https://api.github.com/orgs/github/packages/container/super-linter/versions/786068" }, - "node_id": { + "package_html_url": { "type": "string", - "example": "MDEwOkRlcGxveW1lbnQx" + "example": "https://github.com/orgs/github/packages/container/package/super-linter" }, - "sha": { + "html_url": { "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" - } - ] + "example": "https://github.com/orgs/github/packages/container/super-linter/786068" }, - "original_environment": { + "license": { "type": "string", - "example": "staging" - }, - "environment": { - "description": "Name for the target deployment environment.", - "example": "production", - "type": "string" + "example": "MIT" }, "description": { - "type": "string", - "example": "Deploy request from hubot", - "nullable": true - }, - "creator": { - "$ref": "#/components/schemas/nullable-simple-user" + "type": "string" }, "created_at": { "type": "string", "format": "date-time", - "example": "2012-07-20T01:19:13Z" + "example": "2011-04-10T20:09:31Z" }, "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" + "example": "2014-03-03T18:58:10Z" }, - "repository_url": { + "deleted_at": { "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" + "format": "date-time", + "example": "2014-03-03T18:58:10Z" }, - "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": { + "metadata": { "type": "object", + "title": "Package Version Metadata", "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" - } - } - } - } - } + "package_type": { + "type": "string", + "example": "docker", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] }, - "MACOS": { + "container": { "type": "object", - "required": [ - "total_ms", - "jobs" - ], + "title": "Container Metadata", "properties": { - "total_ms": { - "type": "integer" - }, - "jobs": { - "type": "integer" - }, - "job_runs": { + "tags": { "type": "array", "items": { - "type": "object", - "required": [ - "job_id", - "duration_ms" - ], - "properties": { - "job_id": { - "type": "integer" - }, - "duration_ms": { - "type": "integer" - } - } + "type": "string" } } - } + }, + "required": [ + "tags" + ] }, - "WINDOWS": { + "docker": { "type": "object", - "required": [ - "total_ms", - "jobs" - ], + "title": "Docker Metadata", "properties": { - "total_ms": { - "type": "integer" - }, - "jobs": { - "type": "integer" - }, - "job_runs": { + "tag": { "type": "array", "items": { - "type": "object", - "required": [ - "job_id", - "duration_ms" - ], - "properties": { - "job_id": { - "type": "integer" - }, - "duration_ms": { - "type": "integer" - } - } + "type": "string" } } - } + }, + "required": [ + "tags" + ] } - } - }, - "run_duration_ms": { - "type": "integer" + }, + "required": [ + "package_type" + ] } }, "required": [ - "billable" + "id", + "name", + "url", + "package_html_url", + "created_at", + "updated_at" ] }, - "workflow": { - "title": "Workflow", - "description": "A GitHub Actions workflow", + "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", - "example": 5 + "description": "Unique identifier of the request for access via fine-grained personal access token. The `pat_request_id` used to review PAT requests." }, - "node_id": { + "reason": { "type": "string", - "example": "MDg6V29ya2Zsb3cxMg==" + "nullable": true, + "description": "Reason for requesting access." }, - "name": { - "type": "string", - "example": "CI" + "owner": { + "$ref": "#/components/schemas/simple-user" }, - "path": { + "repository_selection": { "type": "string", - "example": "ruby.yaml" + "enum": [ + "none", + "all", + "subset" + ], + "description": "Type of repository selection requested." }, - "state": { + "repositories_url": { "type": "string", - "example": "active", - "enum": [ - "active", - "deleted", - "disabled_fork", - "disabled_inactivity", - "disabled_manually" - ] + "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", - "format": "date-time", - "example": "2019-12-06T14:20:20.000Z" + "description": "Date and time when the request for access was created." }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2019-12-06T14:20:20.000Z" + "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." }, - "url": { + "token_name": { "type": "string", - "example": "https://api.github.com/repos/actions/setup-ruby/workflows/5" + "description": "The name given to the user's token. This field can also be found in an organization's settings page for Active Tokens." }, - "html_url": { - "type": "string", - "example": "https://github.com/actions/setup-ruby/blob/master/.github/workflows/ruby.yaml" + "token_expired": { + "type": "boolean", + "description": "Whether the associated fine-grained personal access token has expired." }, - "badge_url": { + "token_expires_at": { "type": "string", - "example": "https://github.com/actions/setup-ruby/workflows/CI/badge.svg" + "nullable": true, + "description": "Date and time when the associated fine-grained personal access token expires." }, - "deleted_at": { + "token_last_used_at": { "type": "string", - "format": "date-time", - "example": "2019-12-06T14:20:20.000Z" + "nullable": true, + "description": "Date and time when the associated fine-grained personal access token was last used for authentication." } }, "required": [ "id", - "node_id", - "name", - "path", - "state", - "url", - "html_url", - "badge_url", + "reason", + "owner", + "repository_selection", + "repositories_url", + "permissions", "created_at", - "updated_at" + "token_id", + "token_name", + "token_expired", + "token_expires_at", + "token_last_used_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.", + "organization-programmatic-access-grant": { + "title": "Organization Programmatic Access Grant", + "description": "Minimal representation of an organization programmatic access grant for enumerations", "type": "object", "properties": { - "workflow_run_id": { - "$ref": "#/components/schemas/workflow-run-id" + "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." }, - "run_url": { + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "repository_selection": { "type": "string", - "format": "uri", - "description": "The URL to the workflow run." + "enum": [ + "none", + "all", + "subset" + ], + "description": "Type of repository selection requested." }, - "html_url": { + "repositories_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": { + "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": { - "UBUNTU": { + "organization": { "type": "object", - "properties": { - "total_ms": { - "type": "integer" - } + "additionalProperties": { + "type": "string" } }, - "MACOS": { + "repository": { "type": "object", - "properties": { - "total_ms": { - "type": "integer" - } + "additionalProperties": { + "type": "string" } }, - "WINDOWS": { + "other": { "type": "object", - "properties": { - "total_ms": { - "type": "integer" - } + "additionalProperties": { + "type": "string" } } } - } - }, - "required": [ - "billable" - ] - }, - "activity": { - "title": "Activity", - "description": "Activity", - "type": "object", - "properties": { - "id": { - "type": "integer", - "example": 1296269 }, - "node_id": { + "access_granted_at": { "type": "string", - "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + "description": "Date and time when the fine-grained personal access token was approved to access the organization." }, - "before": { - "type": "string", - "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e", - "description": "The SHA of the commit before the activity." + "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." }, - "after": { + "token_name": { "type": "string", - "example": "827efc6d56897b048c772eb4087f854f46256132", - "description": "The SHA of the commit after the activity." + "description": "The name given to the user's token. This field can also be found in an organization's settings page for Active Tokens." }, - "ref": { - "type": "string", - "example": "refs/heads/main", - "description": "The full Git reference, formatted as `refs/heads/`." + "token_expired": { + "type": "boolean", + "description": "Whether the associated fine-grained personal access token has expired." }, - "timestamp": { + "token_expires_at": { "type": "string", - "format": "date-time", - "example": "2011-01-26T19:06:43Z", - "description": "The time when the activity occurred." + "nullable": true, + "description": "Date and time when the associated fine-grained personal access token expires." }, - "activity_type": { + "token_last_used_at": { "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" + "nullable": true, + "description": "Date and time when the associated fine-grained personal access token was last used for authentication." } }, "required": [ "id", - "node_id", - "before", - "after", - "ref", - "timestamp", - "activity_type", - "actor" + "owner", + "repository_selection", + "repositories_url", + "permissions", + "access_granted_at", + "token_id", + "token_name", + "token_expired", + "token_expires_at", + "token_last_used_at" ] }, - "autolink": { - "title": "Autolink reference", - "description": "An autolink reference.", + "org-private-registry-configuration": { + "title": "Organization private registry", + "description": "Private registry configuration for an organization", "type": "object", "properties": { - "id": { - "type": "integer", - "example": 3 + "name": { + "description": "The name of the private registry configuration.", + "example": "MAVEN_REPOSITORY_SECRET", + "type": "string" }, - "key_prefix": { - "description": "The prefix of a key that is linkified.", - "example": "TICKET-", + "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_template": { - "description": "A template for the target URL that is generated if a key was found.", - "example": "https://example.com/TICKET?query=", + "auth_type": { + "description": "The authentication type for the private registry.", + "enum": [ + "token", + "username_password", + "oidc_azure", + "oidc_aws", + "oidc_jfrog", + "oidc_cloudsmith", + "oidc_gcp" + ], "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" + "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" + }, + "tenant_id": { + "description": "The tenant ID of the Azure AD application.", + "type": "string" + }, + "client_id": { + "description": "The client ID of the Azure AD application.", + "type": "string" + }, + "aws_region": { + "description": "The AWS region.", + "type": "string" + }, + "account_id": { + "description": "The AWS account ID.", + "type": "string" + }, + "role_name": { + "description": "The AWS IAM role name.", + "type": "string" + }, + "domain": { + "description": "The CodeArtifact domain.", + "type": "string" + }, + "domain_owner": { + "description": "The CodeArtifact domain owner.", + "type": "string" + }, + "jfrog_oidc_provider_name": { + "description": "The JFrog OIDC provider name.", + "type": "string" + }, + "audience": { + "description": "The OIDC audience.", + "type": "string" + }, + "identity_mapping_name": { + "description": "The JFrog identity mapping name.", + "type": "string" + }, + "namespace": { + "description": "The Cloudsmith organization namespace.", + "type": "string" + }, + "service_slug": { + "description": "The Cloudsmith service account slug.", + "type": "string" + }, + "api_host": { + "description": "The Cloudsmith API host.", + "type": "string" + }, + "workload_identity_provider": { + "description": "The full resource name of the GCP Workload Identity Provider (e.g. `projects//locations/global/workloadIdentityPools//providers/`).", + "type": "string" + }, + "service_account": { + "description": "The GCP service account email to impersonate. If omitted, the federated token is used directly (direct WIF).", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" }, "updated_at": { "type": "string", - "nullable": true, "format": "date-time" } }, "required": [ - "id", - "key_prefix", - "url_template", - "is_alphanumeric" + "name", + "registry_type", + "visibility", + "created_at", + "updated_at" ] }, - "check-automated-security-fixes": { - "title": "Check Dependabot security updates", - "description": "Check Dependabot security updates", + "org-private-registry-configuration-with-selected-repositories": { + "title": "Organization private registry", + "description": "Private registry configuration for an organization", "type": "object", "properties": { - "enabled": { - "type": "boolean", - "example": true, - "description": "Whether Dependabot security updates are enabled for the repository." + "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" + }, + "auth_type": { + "description": "The authentication type for the private registry.", + "enum": [ + "token", + "username_password", + "oidc_azure", + "oidc_aws", + "oidc_jfrog", + "oidc_cloudsmith", + "oidc_gcp" + ], + "type": "string" }, - "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": { + "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" }, - "enforcement_level": { + "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" }, - "contexts": { + "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": "string" + "type": "integer" } }, - "checks": { - "type": "array", - "items": { - "type": "object", - "properties": { - "context": { - "type": "string" - }, - "app_id": { - "type": "integer", - "nullable": true - } - }, - "required": [ - "context", - "app_id" - ] - } + "tenant_id": { + "description": "The tenant ID of the Azure AD application.", + "type": "string" }, - "contexts_url": { + "client_id": { + "description": "The client ID of the Azure AD application.", "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" + "aws_region": { + "description": "The AWS region.", + "type": "string" }, - "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" + "account_id": { + "description": "The AWS account ID.", + "type": "string" }, - "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\"" - } - } + "role_name": { + "description": "The AWS IAM role name.", + "type": "string" }, - "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" - } - } - } + "domain": { + "description": "The CodeArtifact domain.", + "type": "string" }, - "dismiss_stale_reviews": { - "type": "boolean", - "example": true + "domain_owner": { + "description": "The CodeArtifact domain owner.", + "type": "string" }, - "require_code_owner_reviews": { - "type": "boolean", - "example": true + "jfrog_oidc_provider_name": { + "description": "The JFrog OIDC provider name.", + "type": "string" }, - "required_approving_review_count": { - "type": "integer", - "minimum": 0, - "maximum": 6, - "example": 2 + "audience": { + "description": "The OIDC audience.", + "type": "string" }, - "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 + "identity_mapping_name": { + "description": "The JFrog identity mapping name.", + "type": "string" + }, + "namespace": { + "description": "The Cloudsmith organization namespace.", + "type": "string" + }, + "service_slug": { + "description": "The Cloudsmith service account slug.", + "type": "string" + }, + "api_host": { + "description": "The Cloudsmith API host.", + "type": "string" + }, + "workload_identity_provider": { + "description": "The full resource name of the GCP Workload Identity Provider (e.g. `projects//locations/global/workloadIdentityPools//providers/`).", + "type": "string" + }, + "service_account": { + "description": "The GCP service account email to impersonate. If omitted, the federated token is used directly (direct WIF).", + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" } }, "required": [ - "dismiss_stale_reviews", - "require_code_owner_reviews" + "name", + "registry_type", + "visibility", + "created_at", + "updated_at" ] }, - "branch-restriction-policy": { - "title": "Branch Restriction Policy", - "description": "Branch Restriction Policy", + "nullable-projects-v2-status-update": { + "title": "Projects v2 Status Update", + "description": "An status update belonging to a project", "type": "object", "properties": { - "url": { + "id": { + "type": "number", + "description": "The unique identifier of the status update." + }, + "node_id": { "type": "string", - "format": "uri" + "description": "The node ID of the status update." }, - "users_url": { + "project_node_id": { "type": "string", - "format": "uri" + "description": "The node ID of the project that this status update belongs to." }, - "teams_url": { + "creator": { + "$ref": "#/components/schemas/simple-user" + }, + "created_at": { "type": "string", - "format": "uri" + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the status update was created." }, - "apps_url": { + "updated_at": { "type": "string", - "format": "uri" + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the status update was last updated." }, - "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" - } - } - } + "status": { + "type": "string", + "enum": [ + "INACTIVE", + "ON_TRACK", + "AT_RISK", + "OFF_TRACK", + "COMPLETE" + ], + "nullable": true, + "description": "The current status." }, - "teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team" - } + "start_date": { + "type": "string", + "format": "date", + "example": "2022-04-28", + "description": "The start date of the period covered by the update." }, - "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" - } - } - } - } + "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": [ - "url", - "users_url", - "teams_url", - "apps_url", - "users", - "teams", - "apps" - ] + "id", + "node_id", + "created_at", + "updated_at" + ], + "nullable": true }, - "branch-protection": { - "title": "Branch Protection", - "description": "Branch Protection", + "projects-v2": { + "title": "Projects v2 Project", + "description": "A projects v2 project", "type": "object", "properties": { - "url": { - "type": "string" + "id": { + "type": "number", + "description": "The unique identifier of the project." }, - "enabled": { - "type": "boolean" + "node_id": { + "type": "string", + "description": "The node ID of the project." }, - "required_status_checks": { - "$ref": "#/components/schemas/protected-branch-required-status-check" + "owner": { + "$ref": "#/components/schemas/simple-user" }, - "enforce_admins": { - "$ref": "#/components/schemas/protected-branch-admin-enforced" + "creator": { + "$ref": "#/components/schemas/simple-user" }, - "required_pull_request_reviews": { - "$ref": "#/components/schemas/protected-branch-pull-request-review" + "title": { + "type": "string", + "description": "The project title." }, - "restrictions": { - "$ref": "#/components/schemas/branch-restriction-policy" + "description": { + "type": "string", + "nullable": true, + "description": "A short description of the project." }, - "required_linear_history": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - } - } + "public": { + "type": "boolean", + "description": "Whether the project is visible to anyone with access to the owner." }, - "allow_force_pushes": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - } - } + "closed_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "nullable": true, + "description": "The time when the project was closed." }, - "allow_deletions": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - } - } + "created_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the project was created." }, - "block_creations": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - } - } + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the project was last updated." }, - "required_conversation_resolution": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - } - } + "number": { + "type": "integer", + "description": "The project number." }, - "name": { + "short_description": { "type": "string", - "example": "\"branch/with/protection\"" + "nullable": true, + "description": "A concise summary of the project." }, - "protection_url": { + "deleted_at": { "type": "string", - "example": "\"https://api.github.com/repos/owner-79e94e2d36b3fd06a32bb213/AAA_Public_Repo/branches/branch/with/protection/protection\"" + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "nullable": true, + "description": "The time when the project was deleted." }, - "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" - ] + "deleted_by": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "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" - } - } + "state": { + "type": "string", + "enum": [ + "open", + "closed" + ], + "description": "The current state of the project." }, - "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" - } - } + "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" + ] }, - "short-branch": { - "title": "Short Branch", - "description": "Short Branch", + "link": { + "title": "Link", + "description": "Hypermedia Link", "type": "object", "properties": { - "name": { + "href": { "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" + "href" ] }, - "nullable-git-user": { - "title": "Git User", - "description": "Metaproperties for Git author/committer information.", + "auto-merge": { + "title": "Auto merge", + "description": "The status of auto merging a pull request.", "type": "object", "properties": { - "name": { + "enabled_by": { + "$ref": "#/components/schemas/simple-user" + }, + "merge_method": { "type": "string", - "example": "\"Chris Wanstrath\"" + "description": "The merge method to use.", + "enum": [ + "merge", + "squash", + "rebase" + ] }, - "email": { + "commit_title": { "type": "string", - "example": "\"chris@ozmm.org\"" + "description": "Title for the merge commit message." }, - "date": { + "commit_message": { "type": "string", - "format": "date-time", - "example": "\"2007-10-29T02:42:39.000-07:00\"" + "description": "Commit message for the merge commit." } }, + "required": [ + "enabled_by", + "merge_method", + "commit_title", + "commit_message" + ], "nullable": true }, - "verification": { - "title": "Verification", + "pull-request-stack": { + "title": "Pull Request Stack", + "description": "The stack information associated with a pull request.", "type": "object", "properties": { - "verified": { - "type": "boolean" + "base": { + "type": "object", + "properties": { + "ref": { + "type": "string", + "description": "The base ref of the stack this pull request belongs to." + }, + "sha": { + "type": "string", + "description": "The base SHA of the stack this pull request belongs to." + } + }, + "required": [ + "ref", + "sha" + ] }, - "reason": { - "type": "string" + "size": { + "type": "integer", + "description": "The total number of pull requests in the stack." }, - "payload": { - "type": "string", - "nullable": true + "position": { + "type": "integer", + "description": "The one-based position of this pull request within the stack, where 1 is the bottom of the stack." }, - "signature": { - "type": "string", - "nullable": true + "id": { + "type": "integer", + "description": "The ID of the stack that this pull request belongs to." }, - "verified_at": { - "type": "string", - "nullable": true + "number": { + "type": "integer", + "description": "The number of the stack that this pull request belongs to." } }, "required": [ - "verified", - "reason", - "payload", - "signature", - "verified_at" - ] + "base" + ], + "nullable": true }, - "diff-entry": { - "title": "Diff Entry", - "description": "Diff Entry", + "pull-request-simple": { + "title": "Pull Request Simple", + "description": "Pull Request Simple", "type": "object", "properties": { - "sha": { - "type": "string", - "nullable": true, - "example": "bbcd538c8e72b8c175046e27cc8f907076331401" - }, - "filename": { - "type": "string", - "example": "file1.txt" - }, - "status": { + "url": { "type": "string", - "enum": [ - "added", - "removed", - "modified", - "renamed", - "copied", - "changed", - "unchanged" - ], - "example": "added" - }, - "additions": { - "type": "integer", - "example": 103 + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347" }, - "deletions": { + "id": { "type": "integer", - "example": 21 + "format": "int64", + "example": 1 }, - "changes": { - "type": "integer", - "example": 124 + "node_id": { + "type": "string", + "example": "MDExOlB1bGxSZXF1ZXN0MQ==" }, - "blob_url": { + "html_url": { "type": "string", "format": "uri", - "example": "https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt" + "example": "https://github.com/octocat/Hello-World/pull/1347" }, - "raw_url": { + "diff_url": { "type": "string", "format": "uri", - "example": "https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt" + "example": "https://github.com/octocat/Hello-World/pull/1347.diff" }, - "contents_url": { + "patch_url": { "type": "string", "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e" + "example": "https://github.com/octocat/Hello-World/pull/1347.patch" }, - "patch": { + "issue_url": { "type": "string", - "example": "@@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test" + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347" }, - "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": { + "commits_url": { "type": "string", "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e" + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits" }, - "sha": { + "review_comments_url": { "type": "string", - "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments" }, - "node_id": { + "review_comment_url": { "type": "string", - "example": "MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ==" + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number}" }, - "html_url": { + "comments_url": { "type": "string", "format": "uri", - "example": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e" + "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments" }, - "comments_url": { + "statuses_url": { "type": "string", "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments" + "example": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e" }, - "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" - ] + "number": { + "type": "integer", + "example": 1347 }, - "author": { - "nullable": true, - "oneOf": [ - { - "$ref": "#/components/schemas/simple-user" - }, - { - "$ref": "#/components/schemas/empty-object" - } - ] + "state": { + "type": "string", + "example": "open" }, - "committer": { - "nullable": true, - "oneOf": [ - { - "$ref": "#/components/schemas/simple-user" - }, - { - "$ref": "#/components/schemas/empty-object" - } - ] + "locked": { + "type": "boolean", + "example": true }, - "parents": { + "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": { - "sha": { - "type": "string", - "example": "7638417db6d59f3c431d3e1f261cc637155684cd" + "id": { + "type": "integer", + "format": "int64" + }, + "node_id": { + "type": "string" }, "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/commits/7638417db6d59f3c431d3e1f261cc637155684cd" + "type": "string" }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/commit/7638417db6d59f3c431d3e1f261cc637155684cd" + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "color": { + "type": "string" + }, + "default": { + "type": "boolean" } }, "required": [ - "sha", - "url" + "id", + "node_id", + "url", + "name", + "description", + "color", + "default" ] } }, - "stats": { - "type": "object", - "properties": { - "additions": { - "type": "integer" - }, - "deletions": { - "type": "integer" - }, - "total": { - "type": "integer" - } + "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" } }, - "files": { + "requested_reviewers": { "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" + "$ref": "#/components/schemas/simple-user" } }, - "checks": { + "requested_teams": { "type": "array", "items": { - "type": "object", - "properties": { - "context": { - "type": "string", - "example": "continuous-integration/travis-ci" - }, - "app_id": { - "type": "integer", - "nullable": true - } - }, - "required": [ - "context", - "app_id" - ] + "$ref": "#/components/schemas/team" } }, - "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": { + "head": { "type": "object", "properties": { - "url": { - "type": "string", - "format": "uri" - }, - "dismiss_stale_reviews": { - "type": "boolean" - }, - "require_code_owner_reviews": { - "type": "boolean" + "label": { + "type": "string" }, - "required_approving_review_count": { - "type": "integer" + "ref": { + "type": "string" }, - "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 + "repo": { + "$ref": "#/components/schemas/repository" }, - "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" - ] + "sha": { + "type": "string" }, - "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" - ] + "user": { + "$ref": "#/components/schemas/nullable-simple-user" } }, "required": [ - "url" + "label", + "ref", + "repo", + "sha", + "user" ] }, - "required_signatures": { + "base": { "type": "object", "properties": { - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures" + "label": { + "type": "string" }, - "enabled": { - "type": "boolean", - "example": true - } - }, - "required": [ - "url", - "enabled" - ] - }, - "enforce_admins": { - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri" + "ref": { + "type": "string" }, - "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" + "repo": { + "$ref": "#/components/schemas/repository" + }, + "sha": { + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" } }, - "additionalProperties": false, "required": [ - "enabled" + "label", + "ref", + "repo", + "sha", + "user" ] }, - "allow_deletions": { + "_links": { "type": "object", "properties": { - "enabled": { - "type": "boolean" + "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" } }, - "additionalProperties": false, "required": [ - "enabled" + "comments", + "commits", + "statuses", + "html", + "issue", + "review_comments", + "review_comment", + "self" ] }, - "restrictions": { - "$ref": "#/components/schemas/branch-restriction-policy" + "author_association": { + "$ref": "#/components/schemas/author-association" }, - "required_conversation_resolution": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - } - }, - "additionalProperties": false + "auto_merge": { + "$ref": "#/components/schemas/auto-merge" }, - "block_creations": { - "type": "object", - "properties": { - "enabled": { - "type": "boolean" - } - }, - "additionalProperties": false, - "required": [ - "enabled" - ] + "stack": { + "$ref": "#/components/schemas/pull-request-stack" }, - "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" - } + "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" + ], + "x-github-breaking-changes": [ + { + "changeset": "remove_pull_request_merge_commit_sha", + "patch": { + "properties": { + "merge_commit_sha": null + }, + "required": [ + "_links", + "assignee", + "labels", + "base", + "body", + "closed_at", + "comments_url", + "commits_url", + "created_at", + "diff_url", + "head", + "html_url", + "id", + "node_id", + "issue_url", + "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" + ] }, - "additionalProperties": false + "version": "2026-03-10" }, - "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" - } + { + "changeset": "remove_singular_assignee_from_issues_and_pull_requests", + "patch": { + "properties": { + "assignee": null + }, + "required": [ + "_links", + "labels", + "base", + "body", + "closed_at", + "comments_url", + "commits_url", + "created_at", + "diff_url", + "head", + "html_url", + "id", + "node_id", + "issue_url", + "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" + ] }, - "additionalProperties": false + "version": "2026-03-10" } - }, - "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", + "projects-v2-draft-issue": { + "title": "Draft Issue", + "description": "A draft issue in a project", "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" + "type": "number", + "description": "The ID of the draft issue" }, "node_id": { "type": "string", - "example": "MDEwOkRlcGxveW1lbnQx" - }, - "task": { - "description": "Parameter to specify a task to execute", - "example": "deploy", - "type": "string" + "description": "The node ID of the draft issue" }, - "original_environment": { + "title": { "type": "string", - "example": "staging" - }, - "environment": { - "description": "Name for the target deployment environment.", - "example": "production", - "type": "string" + "description": "The title of the draft issue" }, - "description": { + "body": { "type": "string", - "example": "Deploy request from hubot", + "description": "The body content of the draft issue", "nullable": true }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, "created_at": { "type": "string", "format": "date-time", - "example": "2012-07-20T01:19:13Z" + "description": "The time the draft issue was created" }, "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" + "description": "The time the draft issue was last updated" } }, "required": [ "id", "node_id", - "task", - "environment", - "description", - "statuses_url", - "repository_url", - "url", + "title", + "user", "created_at", "updated_at" ] }, - "check-run": { - "title": "CheckRun", - "description": "A check performed on the code of a given code change", + "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": { - "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" + "type": "number", + "description": "The unique identifier of the project item." }, "node_id": { "type": "string", - "example": "MDg6Q2hlY2tSdW40" + "description": "The node ID of the project item." }, - "external_id": { - "type": "string", - "example": "42", - "nullable": true + "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." }, - "url": { - "type": "string", - "example": "https://api.github.com/repos/github/hello-world/check-runs/4" + "content_type": { + "$ref": "#/components/schemas/projects-v2-item-content-type" }, - "html_url": { - "type": "string", - "example": "https://github.com/github/hello-world/runs/4", - "nullable": true + "creator": { + "$ref": "#/components/schemas/simple-user" }, - "details_url": { + "created_at": { "type": "string", - "example": "https://example.com", - "nullable": true + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the item was created." }, - "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", + "updated_at": { "type": "string", - "enum": [ - "queued", - "in_progress", - "completed", - "waiting", - "requested", - "pending" - ] + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the item was last updated." }, - "conclusion": { + "archived_at": { "type": "string", - "example": "neutral", - "enum": [ - "success", - "failure", - "neutral", - "cancelled", - "skipped", - "timed_out", - "action_required" - ], - "nullable": true + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "nullable": true, + "description": "The time when the item was archived." }, - "started_at": { + "project_url": { "type": "string", - "format": "date-time", - "example": "2018-05-04T01:14:52Z", - "nullable": true + "format": "uri", + "description": "The URL of the project this item belongs to." }, - "completed_at": { + "item_url": { "type": "string", - "format": "date-time", - "example": "2018-05-04T01:14:52Z", - "nullable": true + "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." }, - "output": { + "name": { "type": "object", + "description": "The display name of the option, in raw text and HTML formats.", "properties": { - "title": { - "type": "string", - "nullable": true - }, - "summary": { - "type": "string", - "nullable": true - }, - "text": { - "type": "string", - "nullable": true - }, - "annotations_count": { - "type": "integer" + "raw": { + "type": "string" }, - "annotations_url": { - "type": "string", - "format": "uri" + "html": { + "type": "string" } }, "required": [ - "title", - "summary", - "text", - "annotations_count", - "annotations_url" + "raw", + "html" ] }, - "name": { - "description": "The name of the check.", - "example": "test-coverage", - "type": "string" - }, - "check_suite": { + "description": { "type": "object", + "description": "The description of the option, in raw text and HTML formats.", "properties": { - "id": { - "type": "integer" + "raw": { + "type": "string" + }, + "html": { + "type": "string" } }, "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" - } + "raw", + "html" + ] }, - "deployment": { - "$ref": "#/components/schemas/deployment-simple" + "color": { + "type": "string", + "description": "The color associated with the option." } }, "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" + "description", + "color" ] }, - "simple-commit": { - "title": "Simple Commit", - "description": "A commit.", + "projects-v2-iteration-settings": { + "title": "Projects v2 Iteration Setting", + "description": "An iteration setting for an iteration field", "type": "object", "properties": { "id": { "type": "string", - "description": "SHA for the commit", - "example": "7638417db6d59f3c431d3e1f261cc637155684cd" + "description": "The unique identifier of the iteration setting." }, - "tree_id": { + "start_date": { "type": "string", - "description": "SHA for the commit's tree" - }, - "message": { - "description": "Message describing the purpose of the commit", - "example": "Fix #42", - "type": "string" + "format": "date", + "description": "The start date of the iteration." }, - "timestamp": { - "description": "Timestamp of the commit", - "example": "2014-08-09T08:02:04+12:00", - "format": "date-time", - "type": "string" + "duration": { + "type": "integer", + "description": "The duration of the iteration in days." }, - "author": { + "title": { "type": "object", - "description": "Information about the Git author", "properties": { - "name": { - "description": "Name of the commit's author", - "example": "Monalisa Octocat", + "raw": { "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", + "html": { "type": "string" - }, - "email": { - "description": "Git email address of the commit's committer", - "example": "monalisa.octocat@example.com", - "type": "string", - "format": "email" } }, "required": [ - "name", - "email" + "raw", + "html" ], - "nullable": true + "description": "The iteration title, in raw text and HTML formats." + }, + "completed": { + "type": "boolean", + "description": "Whether the iteration has been completed." } }, "required": [ "id", - "tree_id", - "message", - "timestamp", - "author", - "committer" + "start_date", + "duration", + "title", + "completed" ] }, - "check-suite": { - "title": "CheckSuite", - "description": "A suite of checks performed on the code of a given code change", + "projects-v2-field": { + "title": "Projects v2 Field", + "description": "A field inside a projects v2 project", "type": "object", "properties": { "id": { "type": "integer", - "example": 5, - "format": "int64" + "description": "The unique identifier of the field." + }, + "issue_field_id": { + "type": "integer", + "description": "The ID of the issue field." }, "node_id": { "type": "string", - "example": "MDEwOkNoZWNrU3VpdGU1" + "description": "The node ID of the field." }, - "head_branch": { + "project_url": { "type": "string", - "example": "master", - "nullable": true - }, - "head_sha": { - "description": "The SHA of the head commit that is being checked.", - "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", - "type": "string" + "description": "The API URL of the project that contains the field.", + "example": "https://api.github.com/projects/1" }, - "status": { + "name": { "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 + "description": "The name of the field." }, - "conclusion": { + "data_type": { "type": "string", - "example": "neutral", + "description": "The field's data type.", "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 + "assignees", + "linked_pull_requests", + "reviewers", + "labels", + "milestone", + "repository", + "title", + "text", + "single_select", + "number", + "date", + "iteration", + "issue_type", + "parent_issue", + "sub_issues_progress" + ] }, - "pull_requests": { + "options": { "type": "array", + "description": "The options available for single select fields.", "items": { - "$ref": "#/components/schemas/pull-request-minimal" - }, - "nullable": true - }, - "app": { - "$ref": "#/components/schemas/nullable-integration" + "$ref": "#/components/schemas/projects-v2-single-select-options" + } }, - "repository": { - "$ref": "#/components/schemas/minimal-repository" + "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", - "nullable": true + "example": "2022-04-28T12:00:00Z", + "description": "The time when the field was created." }, "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" + "example": "2022-04-28T12:00:00Z", + "description": "The time when the field was last updated." } }, "required": [ "id", - "node_id", - "head_branch", - "status", - "conclusion", - "head_sha", - "url", - "before", - "after", + "name", + "data_type", "created_at", "updated_at", - "app", - "head_commit", - "repository", - "latest_check_runs_count", - "check_runs_url", - "pull_requests" + "project_url" ] }, - "check-suite-preference": { - "title": "Check Suite Preference", - "description": "Check suite configuration preferences for a repository.", + "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.", "required": [ - "preferences", - "repository" + "start_date", + "duration" ], "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" - ] + "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", + "additionalProperties": false, + "required": [ + "title", + "start_date", + "duration" + ], + "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." } } } - }, - "repository": { - "$ref": "#/components/schemas/minimal-repository" } } }, - "code-scanning-alert-items": { + "projects-v2-item-with-content": { + "title": "Projects v2 Item", + "description": "An item belonging to a project", "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" + "id": { + "type": "number", + "description": "The unique identifier of the project item." }, - "fixed_at": { - "$ref": "#/components/schemas/alert-fixed-at" + "node_id": { + "type": "string", + "description": "The node ID of the project item." }, - "dismissed_by": { - "$ref": "#/components/schemas/nullable-simple-user" + "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." }, - "dismissed_at": { - "$ref": "#/components/schemas/alert-dismissed-at" + "content_type": { + "$ref": "#/components/schemas/projects-v2-item-content-type" }, - "dismissed_reason": { - "$ref": "#/components/schemas/code-scanning-alert-dismissed-reason" + "content": { + "type": "object", + "additionalProperties": true, + "nullable": true, + "description": "The content of the item, which varies by content type." }, - "dismissed_comment": { - "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + "creator": { + "$ref": "#/components/schemas/simple-user" }, - "rule": { - "$ref": "#/components/schemas/code-scanning-alert-rule-summary" + "created_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the item was created." }, - "tool": { - "$ref": "#/components/schemas/code-scanning-analysis-tool" + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the item was last updated." }, - "most_recent_instance": { - "$ref": "#/components/schemas/code-scanning-alert-instance" + "archived_at": { + "type": "string", + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "nullable": true, + "description": "The time when the item was archived." }, - "dismissal_approved_by": { - "$ref": "#/components/schemas/nullable-simple-user" + "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." }, - "assignees": { + "fields": { "type": "array", "items": { - "$ref": "#/components/schemas/simple-user" - } + "type": "object", + "additionalProperties": true + }, + "description": "The fields and values associated with this item." } }, "required": [ - "number", + "id", + "content_type", "created_at", - "url", - "html_url", - "instances_url", - "state", - "dismissed_by", - "dismissed_at", - "dismissed_reason", - "rule", - "tool", - "most_recent_instance" + "updated_at", + "archived_at" ] }, - "code-scanning-alert-rule": { + "projects-v2-view": { + "title": "Projects v2 View", + "description": "A view inside a projects v2 project", "type": "object", "properties": { "id": { - "nullable": true, - "type": "string", - "description": "A unique identifier for the rule used to detect the alert." + "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 rule used to detect the alert." + "description": "The name of the view." }, - "severity": { - "nullable": true, + "layout": { "type": "string", - "description": "The severity of the alert.", + "description": "The layout of the view.", "enum": [ - "none", - "note", - "warning", - "error" + "table", + "board", + "roadmap" ] }, - "security_severity_level": { - "nullable": true, + "node_id": { "type": "string", - "description": "The security severity of the alert.", - "enum": [ - "low", - "medium", - "high", - "critical" + "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" + } ] }, - "description": { + "created_at": { "type": "string", - "description": "A short description of the rule used to detect the alert." + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the view was created." }, - "full_description": { + "updated_at": { "type": "string", - "description": "A description of the rule used to detect the alert." + "format": "date-time", + "example": "2022-04-28T12:00:00Z", + "description": "The time when the view was last updated." }, - "tags": { + "filter": { + "type": "string", "nullable": true, + "description": "The filter query for the view.", + "example": "is:issue is:open" + }, + "visible_fields": { "type": "array", - "description": "A set of tags applicable for the rule.", + "description": "The list of field IDs that are visible in the view.", "items": { - "type": "string" + "type": "integer" } }, - "help": { - "nullable": true, - "type": "string", - "description": "Detailed documentation for the rule as GitHub Flavored Markdown." + "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" + } + ] + } + } }, - "help_uri": { - "nullable": true, - "type": "string", - "description": "A link to the documentation for the rule used to detect the alert." + "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" + ] }, - "code-scanning-alert": { + "custom-property": { + "title": "Organization Custom Property", + "description": "Custom property defined on an organization", "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" + "property_name": { + "type": "string", + "description": "The name of the property" }, "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" + "type": "string", + "format": "uri", + "description": "The URL that can be used to fetch, update, or delete info about this property via the API." }, - "dismissed_comment": { - "$ref": "#/components/schemas/code-scanning-alert-dismissed-comment" + "source_type": { + "type": "string", + "description": "The source type of the property", + "enum": [ + "organization", + "enterprise" + ], + "example": "organization" }, - "rule": { - "$ref": "#/components/schemas/code-scanning-alert-rule" + "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" }, - "tool": { - "$ref": "#/components/schemas/code-scanning-analysis-tool" + "required": { + "type": "boolean", + "description": "Whether the property is required." }, - "most_recent_instance": { - "$ref": "#/components/schemas/code-scanning-alert-instance" + "default_value": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "nullable": true, + "description": "Default value of the property" }, - "dismissal_approved_by": { - "$ref": "#/components/schemas/nullable-simple-user" + "description": { + "type": "string", + "nullable": true, + "description": "Short description of the property" }, - "assignees": { + "allowed_values": { "type": "array", "items": { - "$ref": "#/components/schemas/simple-user" - } + "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" + }, + "require_explicit_values": { + "type": "boolean", + "description": "Whether setting properties values is mandatory" } }, "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" + "property_name", + "value_type" ] }, - "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": { + "custom-property-set-payload": { + "title": "Custom Property Set Payload", + "description": "Custom property set payload", "type": "object", "properties": { - "status": { - "$ref": "#/components/schemas/code-scanning-autofix-status" + "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": { - "$ref": "#/components/schemas/code-scanning-autofix-description" + "type": "string", + "nullable": true, + "description": "Short description of the property" }, - "started_at": { - "$ref": "#/components/schemas/code-scanning-autofix-started-at" + "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" + }, + "require_explicit_values": { + "type": "boolean", + "description": "Whether setting properties values is mandatory" } }, "required": [ - "status", - "description", - "started_at" + "value_type" ] }, - "code-scanning-autofix-commits": { - "description": "Commit an autofix for a code scanning alert", + "custom-property-value": { + "title": "Custom Property Value", + "description": "Custom property name and associated value", "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" + "property_name": { + "type": "string", + "description": "The name of the property" }, - "message": { - "description": "Commit message to be used.", - "type": "string" + "value": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ], + "description": "The value assigned to the property", + "nullable": true } }, - "nullable": true + "required": [ + "property_name", + "value" + ] }, - "code-scanning-autofix-commits-response": { + "org-repo-custom-property-values": { + "title": "Organization Repository Custom Property Values", + "description": "List of custom property values for a repository", "type": "object", "properties": { - "target_ref": { + "repository_id": { + "type": "integer", + "example": 1296269 + }, + "repository_name": { "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." + "example": "Hello-World" }, - "sha": { + "repository_full_name": { "type": "string", - "description": "SHA of commit with autofix." + "example": "octocat/Hello-World" + }, + "properties": { + "type": "array", + "items": { + "$ref": "#/components/schemas/custom-property-value" + }, + "description": "List of custom property names and associated values" } - } - }, - "code-scanning-alert-instance-state": { - "type": "string", - "description": "State of a code scanning alert instance.", - "nullable": true, - "enum": [ - "open", - "fixed" + }, + "required": [ + "repository_id", + "repository_name", + "repository_full_name", + "properties" ] }, - "code-scanning-alert-instance-list": { + "nullable-repository": { + "title": "Repository", + "description": "A repository on GitHub.", "type": "object", "properties": { - "ref": { - "$ref": "#/components/schemas/code-scanning-ref" + "id": { + "description": "Unique identifier of the repository", + "example": 42, + "type": "integer", + "format": "int64" }, - "analysis_key": { - "$ref": "#/components/schemas/code-scanning-analysis-analysis-key" + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" }, - "environment": { - "$ref": "#/components/schemas/code-scanning-alert-environment" + "name": { + "description": "The name of the repository.", + "type": "string", + "example": "Team Environment" }, - "category": { - "$ref": "#/components/schemas/code-scanning-analysis-category" + "full_name": { + "type": "string", + "example": "octocat/Hello-World" }, - "state": { - "$ref": "#/components/schemas/code-scanning-alert-instance-state" + "license": { + "$ref": "#/components/schemas/nullable-license-simple" }, - "commit_sha": { - "type": "string" + "forks": { + "type": "integer" }, - "message": { + "permissions": { "type": "object", "properties": { - "text": { - "type": "string" + "admin": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" } - } - }, - "location": { - "$ref": "#/components/schemas/code-scanning-alert-location" + }, + "required": [ + "admin", + "pull", + "push" + ] }, - "html_url": { - "type": "string" + "owner": { + "$ref": "#/components/schemas/simple-user" }, - "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" + "private": { + "description": "Whether the repository is private or public.", + "default": false, + "type": "boolean" }, - "commit_sha": { - "$ref": "#/components/schemas/code-scanning-analysis-commit-sha" + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World" }, - "analysis_key": { - "$ref": "#/components/schemas/code-scanning-analysis-analysis-key" + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true }, - "environment": { - "$ref": "#/components/schemas/code-scanning-analysis-environment" + "fork": { + "type": "boolean" }, - "category": { - "$ref": "#/components/schemas/code-scanning-analysis-category" + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" }, - "error": { + "archive_url": { "type": "string", - "example": "error reading field xyz" + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" }, - "created_at": { - "$ref": "#/components/schemas/code-scanning-analysis-created-at" + "assignees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" }, - "results_count": { - "type": "integer", - "description": "The total number of results in the analysis." + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" }, - "rules_count": { - "type": "integer", - "description": "The total number of rules used in the analysis." + "branches_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" }, - "id": { - "type": "integer", - "description": "Unique identifier for this analysis." + "collaborators_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" }, - "url": { - "$ref": "#/components/schemas/code-scanning-analysis-url" + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" }, - "sarif_id": { - "$ref": "#/components/schemas/code-scanning-analysis-sarif-id" + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" }, - "tool": { - "$ref": "#/components/schemas/code-scanning-analysis-tool" + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" }, - "deletable": { - "type": "boolean" + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" }, - "warning": { + "contributors_url": { "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": { + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + }, + "deployments_url": { "type": "string", - "description": "Next deletable analysis in chain, without last analysis deletion confirmation", "format": "uri", - "readOnly": true, - "nullable": true + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" }, - "confirm_delete_url": { + "downloads_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." + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" }, - "name": { + "events_url": { "type": "string", - "description": "The name of the CodeQL database." + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" }, - "language": { + "forks_url": { "type": "string", - "description": "The language of the CodeQL database." + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" }, - "uploader": { - "$ref": "#/components/schemas/simple-user" + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" }, - "content_type": { + "git_refs_url": { "type": "string", - "description": "The MIME type of the CodeQL database file." + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" }, - "size": { - "type": "integer", - "description": "The size of the CodeQL database file in bytes." + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" }, - "created_at": { + "git_url": { "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." + "example": "git:github.com/octocat/Hello-World.git" }, - "updated_at": { + "issue_comment_url": { "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." + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" }, - "url": { + "issue_events_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." + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" }, - "commit_oid": { + "issues_url": { "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." + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" }, - "name": { + "keys_url": { "type": "string", - "example": "Hello-World", - "description": "The name of the repository." + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" }, - "full_name": { + "labels_url": { "type": "string", - "example": "octocat/Hello-World", - "description": "The full, globally unique, name of the repository." + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" }, - "private": { - "type": "boolean", - "description": "Whether the repository is private." - }, - "stargazers_count": { - "type": "integer", - "example": 80 - }, - "updated_at": { + "languages_url": { "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" + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" }, - "query_pack_url": { + "merges_url": { "type": "string", - "description": "The download url for the query pack." + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" }, - "created_at": { + "milestones_url": { "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." + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" }, - "updated_at": { + "notifications_url": { "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." + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" }, - "completed_at": { + "pulls_url": { "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." + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" }, - "status": { + "releases_url": { "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." + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" }, - "failure_reason": { + "ssh_url": { "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." + "example": "git@github.com:octocat/Hello-World.git" }, - "failure_message": { + "stargazers_url": { "type": "string", - "description": "The reason of the failure of this repo task. This is only available if the repository task has failed." + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" }, - "database_commit_sha": { + "statuses_url": { "type": "string", - "description": "The SHA of the commit the CodeQL database was built against. This is only available for successful analyses." + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" }, - "source_location_prefix": { + "subscribers_url": { "type": "string", - "description": "The source location prefix to use. This is only available for successful analyses." + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" }, - "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.", + "subscription_url": { "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" - ] - } + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" }, - "runner_type": { - "description": "Runner type to be used.", - "nullable": true, + "tags_url": { "type": "string", - "enum": [ - "standard", - "labeled" - ] + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" }, - "runner_label": { - "description": "Runner label to be used if the runner type is labeled.", - "nullable": true, + "teams_url": { "type": "string", - "example": "code-scanning" + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" }, - "query_suite": { - "description": "CodeQL query suite to be used.", + "trees_url": { "type": "string", - "enum": [ - "default", - "extended" - ] + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" }, - "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.", + "clone_url": { "type": "string", - "enum": [ - "remote", - "remote_and_local" - ] + "example": "https://github.com/octocat/Hello-World.git" }, - "updated_at": { - "description": "Timestamp of latest configuration update.", - "nullable": true, + "mirror_url": { "type": "string", - "format": "date-time", - "example": "2023-12-06T14:20:20.000Z" + "format": "uri", + "example": "git:git.example.com/octocat/Hello-World", + "nullable": true }, - "schedule": { - "description": "The frequency of the periodic analysis.", - "nullable": true, - "type": "string", - "enum": [ - "weekly" - ] - } - }, - "x-github-breaking-changes": [ - { - "changeset": "remove_single_js_ts", - "patch": { - "properties": { - "languages": { - "items": { - "enum": [ - "actions", - "c-cpp", - "csharp", - "go", - "java-kotlin", - "javascript-typescript", - "python", - "ruby", - "swift" - ] - } - } - } - }, - "version": "2026-03-10" - } - ] - }, - "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.", + "hooks_url": { "type": "string", - "enum": [ - "configured", - "not-configured" - ] + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" }, - "runner_type": { - "description": "Runner type to be used.", + "svn_url": { "type": "string", - "enum": [ - "standard", - "labeled" - ] + "format": "uri", + "example": "https://svn.github.com/octocat/Hello-World" }, - "runner_label": { - "nullable": true, - "description": "Runner label to be used if the runner type is labeled.", + "homepage": { "type": "string", - "example": "code-scanning" + "format": "uri", + "example": "https://github.com", + "nullable": true }, - "query_suite": { - "description": "CodeQL query suite to be used.", + "language": { "type": "string", - "enum": [ - "default", - "extended" - ] + "nullable": true }, - "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" - ] + "forks_count": { + "type": "integer", + "example": 9 }, - "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" + "stargazers_count": { + "type": "integer", + "example": 80 }, - "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" + "watchers_count": { + "type": "integer", + "example": 80 }, - "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." + "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 }, - "analyses_url": { + "default_branch": { + "description": "The default branch of the repository.", "type": "string", - "description": "The REST API URL for getting the analyses associated with the upload.", - "format": "uri", - "readOnly": true, - "nullable": true + "example": "master" }, - "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" - ] + "open_issues_count": { + "type": "integer", + "example": 0 }, - "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": { + "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": "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" - ] + "type": "string" } - } - }, - "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" + "has_issues": { + "description": "Whether issues are enabled.", + "default": true, + "type": "boolean", + "example": true }, - "operating_system": { - "type": "string", - "description": "The operating system of the machine.", - "example": "linux" + "has_projects": { + "description": "Whether projects are enabled.", + "default": true, + "type": "boolean", + "example": true }, - "storage_in_bytes": { - "type": "integer", - "description": "How much storage is available to the codespace.", - "example": 68719476736 + "has_wiki": { + "description": "Whether the wiki is enabled.", + "default": true, + "type": "boolean", + "example": true }, - "memory_in_bytes": { - "type": "integer", - "description": "How much memory is available to the codespace.", - "example": 17179869184 + "has_pages": { + "type": "boolean" }, - "cpus": { - "type": "integer", - "description": "How many cores are available to the codespace.", - "example": 4 + "has_downloads": { + "description": "Whether downloads are enabled.", + "default": true, + "type": "boolean", + "example": true, + "deprecated": true }, - "prebuild_availability": { + "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 + }, + "pull_request_creation_policy": { + "description": "The policy controlling who can create pull requests: all or collaborators_only.", "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" + "all", + "collaborators_only" ], - "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, + "example": "all" + }, + "archived": { + "description": "Whether the repository is archived.", + "default": false, "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", + }, + "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" + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true }, "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" + "format": "date-time", + "example": "2011-01-26T19:14:43Z", + "nullable": true }, - "id": { - "type": "integer", - "format": "int64", - "example": 1 + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "default": true, + "type": "boolean", + "example": true }, - "email": { - "nullable": true, + "temp_clone_token": { "type": "string" }, - "name": { - "nullable": true, - "type": "string" + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "default": true, + "type": "boolean", + "example": true }, - "node_id": { - "type": "string", - "example": "MDQ6VXNlcjE=" + "allow_auto_merge": { + "description": "Whether to allow Auto-merge to be used on pull requests.", + "default": false, + "type": "boolean", + "example": false }, - "avatar_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/images/error/octocat_happy.gif" + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "default": false, + "type": "boolean", + "example": false }, - "gravatar_id": { - "type": "string", - "example": "41d064eb2195891e12d0413f63227ea7", - "nullable": true + "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 }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat" + "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 }, - "html_url": { + "squash_merge_commit_title": { "type": "string", - "format": "uri", - "example": "https://github.com/octocat" + "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)." }, - "followers_url": { + "squash_merge_commit_message": { "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/followers" + "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." }, - "following_url": { + "merge_commit_title": { "type": "string", - "example": "https://api.github.com/users/octocat/following{/other_user}" + "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)." }, - "gists_url": { + "merge_commit_message": { "type": "string", - "example": "https://api.github.com/users/octocat/gists{/gist_id}" + "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." }, - "starred_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "default": true, + "type": "boolean", + "example": true }, - "subscriptions_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/subscriptions" + "allow_forking": { + "description": "Whether to allow forking this repo", + "type": "boolean" }, - "organizations_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/orgs" + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "default": false, + "type": "boolean" }, - "repos_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/repos" + "open_issues": { + "type": "integer" }, - "events_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/events{/privacy}" + "watchers": { + "type": "integer" }, - "received_events_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/received_events" + "master_branch": { + "type": "string" }, - "type": { + "starred_at": { "type": "string", - "example": "User" + "example": "\"2020-07-09T00:17:42Z\"" }, - "site_admin": { - "type": "boolean" + "anonymous_access_enabled": { + "type": "boolean", + "description": "Whether anonymous git access is enabled for this repository" }, - "permissions": { + "code_search_index_status": { "type": "object", + "description": "The status of the code search index for this repository", "properties": { - "pull": { - "type": "boolean" - }, - "triage": { - "type": "boolean" - }, - "push": { - "type": "boolean" - }, - "maintain": { + "lexical_search_ok": { "type": "boolean" }, - "admin": { - "type": "boolean" + "lexical_commit_sha": { + "type": "string" } - }, - "required": [ - "pull", - "push", - "admin" - ] - }, - "role_name": { - "type": "string", - "example": "admin" - }, - "user_view_type": { - "type": "string", - "example": "public" + } } }, "required": [ - "avatar_url", + "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", - "followers_url", - "following_url", - "gists_url", - "gravatar_id", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", "html_url", "id", "node_id", - "login", - "organizations_url", - "received_events_url", - "repos_url", - "site_admin", - "starred_url", - "subscriptions_url", - "type", + "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", - "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" + "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-breaking-changes": [ + { + "changeset": "remove_use_squash_pr_title_as_default", + "patch": { + "properties": { + "use_squash_pr_title_as_default": null + } + }, + "version": "2026-03-10" }, - "inviter": { - "$ref": "#/components/schemas/nullable-simple-user" + { + "changeset": "deprecate_beta_media_type", + "patch": { + "properties": { + "master_branch": null + } + }, + "version": "2026-03-10" }, - "permissions": { - "description": "The permission associated with the invitation.", - "example": "read", + { + "changeset": "remove_has_downloads", + "patch": { + "properties": { + "has_downloads": null + }, + "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", + "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" + ] + }, + "version": "2026-03-10" + } + ], + "nullable": true + }, + "code-of-conduct-simple": { + "title": "Code Of Conduct Simple", + "description": "Code of Conduct Simple", + "type": "object", + "properties": { + "url": { "type": "string", - "enum": [ - "read", - "write", - "admin", - "triage", - "maintain" - ] + "format": "uri", + "example": "https://api.github.com/repos/github/docs/community/code_of_conduct" }, - "created_at": { + "key": { "type": "string", - "format": "date-time", - "example": "2016-06-13T14:52:50-05:00" - }, - "expired": { - "description": "Whether or not the invitation has expired", - "type": "boolean" + "example": "citizen_code_of_conduct" }, - "url": { - "description": "URL for the repository invitation", - "example": "https://api.github.com/user/repository-invitations/1", - "type": "string" + "name": { + "type": "string", + "example": "Citizen Code of Conduct" }, "html_url": { "type": "string", - "example": "https://github.com/octocat/Hello-World/invitations" - }, - "node_id": { - "type": "string" + "nullable": true, + "format": "uri", + "example": "https://github.com/github/docs/blob/main/CODE_OF_CONDUCT.md" } }, "required": [ - "id", - "node_id", - "permissions", - "inviter", - "invitee", - "repository", "url", - "html_url", - "created_at" + "key", + "name", + "html_url" ] }, - "nullable-collaborator": { - "title": "Collaborator", - "description": "Collaborator", + "full-repository": { + "title": "Full Repository", + "description": "Full Repository", "type": "object", "properties": { - "login": { - "type": "string", - "example": "octocat" - }, "id": { "type": "integer", "format": "int64", - "example": 1 + "example": 1296269 }, - "email": { - "nullable": true, - "type": "string" + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" }, "name": { - "nullable": true, - "type": "string" + "type": "string", + "example": "Hello-World" }, - "node_id": { + "full_name": { "type": "string", - "example": "MDQ6VXNlcjE=" + "example": "octocat/Hello-World" }, - "avatar_url": { + "owner": { + "$ref": "#/components/schemas/simple-user" + }, + "private": { + "type": "boolean" + }, + "html_url": { "type": "string", "format": "uri", - "example": "https://github.com/images/error/octocat_happy.gif" + "example": "https://github.com/octocat/Hello-World" }, - "gravatar_id": { + "description": { "type": "string", - "example": "41d064eb2195891e12d0413f63227ea7", + "example": "This your first repo!", "nullable": true }, + "fork": { + "type": "boolean" + }, "url": { "type": "string", "format": "uri", - "example": "https://api.github.com/users/octocat" + "example": "https://api.github.com/repos/octocat/Hello-World" }, - "html_url": { + "archive_url": { "type": "string", - "format": "uri", - "example": "https://github.com/octocat" + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" }, - "followers_url": { + "assignees_url": { "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/followers" + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" }, - "following_url": { + "blobs_url": { "type": "string", - "example": "https://api.github.com/users/octocat/following{/other_user}" + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" }, - "gists_url": { + "branches_url": { "type": "string", - "example": "https://api.github.com/users/octocat/gists{/gist_id}" + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" }, - "starred_url": { + "collaborators_url": { "type": "string", - "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" }, - "subscriptions_url": { + "comments_url": { "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/subscriptions" + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" }, - "organizations_url": { + "commits_url": { "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/orgs" + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" }, - "repos_url": { + "compare_url": { "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/repos" + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" }, - "events_url": { + "contents_url": { "type": "string", - "example": "https://api.github.com/users/octocat/events{/privacy}" + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" }, - "received_events_url": { + "contributors_url": { "type": "string", "format": "uri", - "example": "https://api.github.com/users/octocat/received_events" + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" }, - "type": { + "deployments_url": { "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" - ] + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" }, - "role_name": { + "downloads_url": { "type": "string", - "example": "admin" + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" }, - "user_view_type": { + "events_url": { "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" + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" }, - "role_name": { + "forks_url": { "type": "string", - "example": "admin" + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" }, - "user": { - "$ref": "#/components/schemas/nullable-collaborator" - } - }, - "required": [ - "permission", - "role_name", - "user" - ] - }, - "commit-comment": { - "title": "Commit Comment", - "description": "Commit Comment", - "type": "object", - "properties": { - "html_url": { + "git_commits_url": { "type": "string", - "format": "uri" + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" }, - "url": { + "git_refs_url": { "type": "string", - "format": "uri" + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" }, - "id": { - "type": "integer" + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" }, - "node_id": { - "type": "string" + "git_url": { + "type": "string", + "example": "git:github.com/octocat/Hello-World.git" }, - "body": { - "type": "string" + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" }, - "path": { + "issue_events_url": { "type": "string", - "nullable": true + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" }, - "position": { - "type": "integer", - "nullable": true + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" }, - "line": { - "type": "integer", - "nullable": true + "keys_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" }, - "commit_id": { - "type": "string" + "labels_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" }, - "user": { - "$ref": "#/components/schemas/nullable-simple-user" + "languages_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" }, - "created_at": { + "merges_url": { "type": "string", - "format": "date-time" + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" }, - "updated_at": { + "milestones_url": { "type": "string", - "format": "date-time" + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" }, - "author_association": { - "$ref": "#/components/schemas/author-association" + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" }, - "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 + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" }, - "node_id": { + "releases_url": { "type": "string", - "example": "MDg6UmVhY3Rpb24x" + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" }, - "user": { - "$ref": "#/components/schemas/nullable-simple-user" + "ssh_url": { + "type": "string", + "example": "git@github.com:octocat/Hello-World.git" }, - "content": { - "description": "The reaction to use", - "example": "heart", + "stargazers_url": { "type": "string", - "enum": [ - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "rocket", - "eyes" - ] + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" }, - "created_at": { + "statuses_url": { "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" + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" }, - "commit": { - "type": "object", - "properties": { - "sha": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "sha", - "url" - ] + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" }, - "protected": { - "type": "boolean" - } - }, - "required": [ - "name", - "commit", - "protected" - ] - }, - "simple-commit-status": { - "title": "Simple Commit Status", - "type": "object", - "properties": { - "description": { + "subscription_url": { "type": "string", - "nullable": true + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" }, - "id": { - "type": "integer" + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" }, - "node_id": { - "type": "string" + "teams_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" }, - "state": { - "type": "string" + "trees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" }, - "context": { - "type": "string" + "clone_url": { + "type": "string", + "example": "https://github.com/octocat/Hello-World.git" }, - "target_url": { + "mirror_url": { "type": "string", "format": "uri", + "example": "git:git.example.com/octocat/Hello-World", "nullable": true }, - "required": { - "type": "boolean", - "nullable": true - }, - "avatar_url": { + "hooks_url": { "type": "string", - "nullable": true, - "format": "uri" + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" }, - "url": { + "svn_url": { "type": "string", - "format": "uri" + "format": "uri", + "example": "https://svn.github.com/octocat/Hello-World" }, - "created_at": { + "homepage": { "type": "string", - "format": "date-time" + "format": "uri", + "example": "https://github.com", + "nullable": true }, - "updated_at": { + "language": { "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" + "nullable": true }, - "statuses": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-commit-status" - } + "forks_count": { + "type": "integer", + "example": 9 }, - "sha": { - "type": "string" + "stargazers_count": { + "type": "integer", + "example": 80 }, - "total_count": { - "type": "integer" + "watchers_count": { + "type": "integer", + "example": 80 }, - "repository": { - "$ref": "#/components/schemas/minimal-repository" + "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 }, - "commit_url": { + "default_branch": { "type": "string", - "format": "uri" + "example": "master" }, - "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" + "open_issues_count": { + "type": "integer", + "example": 0 }, - "avatar_url": { - "type": "string", - "nullable": true + "is_template": { + "type": "boolean", + "example": true }, - "id": { - "type": "integer" + "topics": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "octocat", + "atom", + "electron", + "API" + ] }, - "node_id": { - "type": "string" + "has_issues": { + "type": "boolean", + "example": true }, - "state": { - "type": "string" + "has_projects": { + "type": "boolean", + "example": true }, - "description": { - "type": "string", - "nullable": true + "has_wiki": { + "type": "boolean", + "example": true }, - "target_url": { - "type": "string", - "nullable": true + "has_pages": { + "type": "boolean" }, - "context": { - "type": "string" + "has_downloads": { + "type": "boolean", + "example": true }, - "created_at": { - "type": "string" + "has_discussions": { + "type": "boolean", + "example": true }, - "updated_at": { - "type": "string" + "has_pull_requests": { + "type": "boolean", + "example": true }, - "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": { + "pull_request_creation_policy": { + "description": "The policy controlling who can create pull requests: all or collaborators_only.", "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/github/docs/community/code_of_conduct" + "enum": [ + "all", + "collaborators_only" + ], + "example": "all" }, - "key": { - "type": "string", - "example": "citizen_code_of_conduct" + "archived": { + "type": "boolean" }, - "name": { - "type": "string", - "example": "Citizen Code of Conduct" + "disabled": { + "type": "boolean", + "description": "Returns whether or not this repository disabled." }, - "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": { + "visibility": { + "description": "The repository visibility: public, private, or internal.", "type": "string", - "format": "uri" + "example": "public" }, - "html_url": { + "pushed_at": { "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 + "format": "date-time", + "example": "2011-01-26T19:06:43Z" }, - "description": { + "created_at": { "type": "string", - "example": "My first repository on GitHub!", - "nullable": true + "format": "date-time", + "example": "2011-01-26T19:01:12Z" }, - "documentation": { + "updated_at": { "type": "string", - "example": "example.com", - "nullable": true + "format": "date-time", + "example": "2011-01-26T19:14:43Z" }, - "files": { + "permissions": { "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" + "admin": { + "type": "boolean" }, - "contributing": { - "$ref": "#/components/schemas/nullable-community-health-file" + "maintain": { + "type": "boolean" }, - "readme": { - "$ref": "#/components/schemas/nullable-community-health-file" + "push": { + "type": "boolean" }, - "issue_template": { - "$ref": "#/components/schemas/nullable-community-health-file" + "triage": { + "type": "boolean" }, - "pull_request_template": { - "$ref": "#/components/schemas/nullable-community-health-file" + "pull": { + "type": "boolean" } }, "required": [ - "code_of_conduct", - "code_of_conduct_file", - "license", - "contributing", - "readme", - "issue_template", - "pull_request_template" + "admin", + "pull", + "push" ] }, - "updated_at": { + "allow_rebase_merge": { + "type": "boolean", + "example": true + }, + "template_repository": { + "$ref": "#/components/schemas/nullable-repository" + }, + "temp_clone_token": { "type": "string", - "format": "date-time", - "example": "2017-02-28T19:09:29Z", "nullable": true }, - "content_reports_enabled": { + "allow_squash_merge": { "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" + "allow_auto_merge": { + "type": "boolean", + "example": false }, - "permalink_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/compare/octocat:bbcd538c8e72b8c175046e27cc8f907076331401...octocat:0328041d1152db8ae77652d1618a02e57f745f17" + "delete_branch_on_merge": { + "type": "boolean", + "example": false }, - "diff_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/compare/master...topic.diff" + "allow_merge_commit": { + "type": "boolean", + "example": true }, - "patch_url": { + "allow_update_branch": { + "type": "boolean", + "example": true + }, + "use_squash_pr_title_as_default": { + "type": "boolean", + "example": false + }, + "squash_merge_commit_title": { "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/compare/master...topic.patch" + "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)." }, - "base_commit": { - "$ref": "#/components/schemas/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_base_commit": { - "$ref": "#/components/schemas/commit" + "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)." }, - "status": { + "merge_commit_message": { "type": "string", + "example": "PR_BODY", "enum": [ - "diverged", - "ahead", - "behind", - "identical" + "PR_BODY", + "PR_TITLE", + "BLANK" ], - "example": "ahead" + "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." }, - "ahead_by": { - "type": "integer", - "example": 4 + "allow_forking": { + "type": "boolean", + "example": true }, - "behind_by": { + "web_commit_signoff_required": { + "type": "boolean", + "example": false + }, + "subscribers_count": { "type": "integer", - "example": 5 + "example": 42 }, - "total_commits": { + "network_count": { "type": "integer", - "example": 6 + "example": 0 }, - "commits": { - "type": "array", - "items": { - "$ref": "#/components/schemas/commit" - } + "license": { + "$ref": "#/components/schemas/nullable-license-simple" }, - "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" + "organization": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "size": { + "parent": { + "$ref": "#/components/schemas/repository" + }, + "source": { + "$ref": "#/components/schemas/repository" + }, + "forks": { "type": "integer" }, - "name": { + "master_branch": { "type": "string" }, - "path": { - "type": "string" + "open_issues": { + "type": "integer" }, - "sha": { - "type": "string" + "watchers": { + "type": "integer" }, - "content": { - "type": "string" + "anonymous_access_enabled": { + "description": "Whether anonymous git access is allowed.", + "default": true, + "type": "boolean" }, - "url": { - "type": "string", - "format": "uri" + "code_of_conduct": { + "$ref": "#/components/schemas/code-of-conduct-simple" }, - "git_url": { - "type": "string", - "format": "uri", - "nullable": true + "security_and_analysis": { + "$ref": "#/components/schemas/security-and-analysis" }, - "html_url": { - "type": "string", - "format": "uri", - "nullable": true + "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" + ], + "x-github-breaking-changes": [ + { + "changeset": "remove_use_squash_pr_title_as_default", + "patch": { + "properties": { + "use_squash_pr_title_as_default": null + } + }, + "version": "2026-03-10" }, - "download_url": { + { + "changeset": "remove_has_downloads", + "patch": { + "properties": { + "has_downloads": null + } + }, + "version": "2026-03-10" + } + ] + }, + "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`, `Team`, and `User` 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", - "format": "uri", - "nullable": true + "enum": [ + "Integration", + "OrganizationAdmin", + "RepositoryRole", + "Team", + "DeployKey", + "User" + ], + "description": "The type of actor that can bypass a ruleset." }, - "entries": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { + "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" - }, - "size": { - "type": "integer" - }, - "name": { + } + }, + "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" - }, - "path": { + } + } + } + } + } + }, + "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" - }, - "sha": { + } + }, + "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" - }, - "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" - ] + "protected": { + "type": "boolean", + "description": "Whether renaming of target repositories is prevented." + } } - }, - "encoding": { - "type": "string" - }, - "_links": { + } + }, + "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": { - "git": { - "type": "string", - "format": "uri", - "nullable": true - }, - "html": { - "type": "string", - "format": "uri", - "nullable": true - }, - "self": { - "type": "string", - "format": "uri" + "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": [ - "git", - "html", - "self" + } + } + }, + "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": [ - "_links", - "git_url", - "html_url", - "download_url", "name", - "path", - "sha", - "size", - "type", - "url" + "property_values" ] }, - "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" + "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" } }, - "required": [ - "git", - "html", - "self" - ] + "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" + } + ] }, - "required": [ - "_links", - "git_url", - "html_url", - "download_url", - "name", - "path", - "sha", - "size", - "type", - "url" - ] - } + { + "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" + } + ] + } + ] }, - "content-file": { - "title": "Content File", - "description": "Content File", + "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": [ - "file" + "creation" ] - }, - "encoding": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "content": { - "type": "string" - }, - "sha": { - "type": "string" - }, - "url": { + } + } + }, + "repository-rule-update": { + "title": "update", + "description": "Only allow users with bypass permission to update matching refs.", + "type": "object", + "required": [ + "type" + ], + "properties": { + "type": { "type": "string", - "format": "uri" + "enum": [ + "update" + ] }, - "git_url": { + "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", - "format": "uri", - "nullable": true - }, - "html_url": { + "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", - "format": "uri", - "nullable": true - }, - "download_url": { + "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", - "format": "uri", - "nullable": true + "enum": [ + "merge_queue" + ] }, - "_links": { + "parameters": { "type": "object", "properties": { - "git": { - "type": "string", - "format": "uri", - "nullable": true + "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 }, - "html": { + "grouping_strategy": { "type": "string", - "format": "uri", - "nullable": true + "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" + ] }, - "self": { + "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", - "format": "uri" + "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": [ - "git", - "html", - "self" + "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" ] - }, - "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", + "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": [ - "symlink" + "required_deployments" ] }, - "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": { + "parameters": { "type": "object", "properties": { - "git": { - "type": "string", - "format": "uri", - "nullable": true - }, - "html": { - "type": "string", - "format": "uri", - "nullable": true - }, - "self": { - "type": "string", - "format": "uri" + "required_deployment_environments": { + "type": "array", + "description": "The environments that must be successfully deployed to before branches can be merged.", + "items": { + "type": "string" + } } }, "required": [ - "git", - "html", - "self" + "required_deployment_environments" ] } - }, - "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", + "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": [ - "submodule" + "required_signatures" ] + } + } + }, + "repository-rule-params-actor": { + "title": "Actor", + "description": "An actor allowed to dismiss pull request reviews", + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "ID of the actor that can dismiss reviews." }, - "submodule_git_url": { + "type": { "type": "string", - "format": "uri" - }, - "size": { - "type": "integer" - }, - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "sha": { - "type": "string" + "description": "The type of the actor", + "enum": [ + "User", + "Team", + "IntegrationInstallation", + "RepositoryRole" + ] + } + }, + "required": [ + "id", + "type" + ] + }, + "repository-rule-params-dismissal-restriction": { + "title": "DismissalRestriction", + "description": "Specify people, teams, or apps allowed to dismiss pull request reviews.", + "type": "object", + "properties": { + "allowed_actors": { + "type": "array", + "description": "Specify people, teams, or apps allowed to dismiss pull request reviews.", + "items": { + "$ref": "#/components/schemas/repository-rule-params-actor" + } }, - "url": { - "type": "string", - "format": "uri" + "enabled": { + "type": "boolean", + "description": "Whether to restrict review dismissal to specific actors." + } + }, + "required": [ + "enabled" + ] + }, + "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." }, - "git_url": { + "type": { "type": "string", - "format": "uri", - "nullable": true + "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" + } }, - "html_url": { - "type": "string", - "format": "uri", - "nullable": true + "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." }, - "download_url": { + "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", - "format": "uri", - "nullable": true + "enum": [ + "pull_request" + ] }, - "_links": { + "parameters": { "type": "object", "properties": { - "git": { - "type": "string", - "format": "uri", - "nullable": true + "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" + ] + } }, - "html": { - "type": "string", - "format": "uri", - "nullable": true + "dismiss_stale_reviews_on_push": { + "type": "boolean", + "description": "New, reviewable commits pushed will dismiss previous pull request review approvals." }, - "self": { - "type": "string", - "format": "uri" + "dismissal_restriction": { + "$ref": "#/components/schemas/repository-rule-params-dismissal-restriction" + }, + "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": [ - "git", - "html", - "self" + "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": [ - "_links", - "git_url", - "html_url", - "download_url", - "name", - "path", - "sha", - "size", - "type", - "url", - "submodule_git_url" + "context" ] }, - "file-commit": { - "title": "File Commit", - "description": "File Commit", + "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": [ - "content", - "commit" + "type" ], "properties": { - "content": { + "type": { + "type": "string", + "enum": [ + "required_status_checks" + ] + }, + "parameters": { "type": "object", "properties": { - "name": { - "type": "string" + "do_not_enforce_on_create": { + "type": "boolean", + "description": "Allow repositories and branches to be created if a check would otherwise prohibit it." }, - "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": { + "required_status_checks": { "type": "array", + "description": "Status checks that are required.", "items": { - "type": "object", - "properties": { - "url": { - "type": "string" - }, - "html_url": { - "type": "string" - }, - "sha": { - "type": "string" - } - } + "$ref": "#/components/schemas/repository-rule-params-status-check-configuration" } }, - "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 - } - } + "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" + ] } } }, - "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", + "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": { - "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" - } - } - } - } - } - } - } + "type": { + "type": "string", + "enum": [ + "non_fast_forward" + ] } } }, - "contributor": { - "title": "Contributor", - "description": "Contributor", + "repository-rule-commit-message-pattern": { + "title": "commit_message_pattern", + "description": "Parameters to be used for the commit_message_pattern rule", "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": { "type": "string", - "description": "The state of the Dependabot alert.", - "readOnly": true, "enum": [ - "auto_dismissed", - "dismissed", - "fixed", - "open" + "commit_message_pattern" ] }, - "dependency": { + "parameters": { "type": "object", - "description": "Details for the vulnerable dependency.", - "readOnly": true, "properties": { - "package": { - "$ref": "#/components/schemas/dependabot-alert-package" - }, - "manifest_path": { + "name": { "type": "string", - "description": "The full path to the dependency manifest file, relative to the root of the repository.", - "readOnly": true + "description": "How this rule appears when configuring it." }, - "scope": { + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { "type": "string", - "description": "The execution scope of the vulnerable dependency.", - "readOnly": true, - "nullable": true, + "description": "The operator to use for matching.", "enum": [ - "development", - "runtime" + "starts_with", + "ends_with", + "contains", + "regex" ] }, - "relationship": { + "pattern": { "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", - "inconclusive" - ] + "description": "The pattern to match with." } - } - }, - "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" + }, + "required": [ + "operator", + "pattern" ] - }, - "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" - }, - "assignees": { - "type": "array", - "description": "The users assigned to this alert.", - "readOnly": true, - "items": { - "$ref": "#/components/schemas/simple-user" - } } - }, - "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.", + "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": { - "name": { - "description": "The name of the secret.", - "example": "MY_ARTIFACTORY_PASSWORD", - "type": "string" - }, - "created_at": { - "type": "string", - "format": "date-time" - }, - "updated_at": { + "type": { "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" - ] - } + "enum": [ + "commit_author_email_pattern" + ] }, - "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": { + "parameters": { "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." + "description": "How this rule appears when configuring it." }, - "dataLicense": { - "type": "string", - "example": "CC0-1.0", - "description": "The license under which the SPDX document is licensed." + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." }, - "documentNamespace": { + "operator": { "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" + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" ] }, - "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" - ] + "pattern": { + "type": "string", + "description": "The pattern to match with." } }, "required": [ - "SPDXID", - "spdxVersion", - "creationInfo", - "name", - "dataLicense", - "documentNamespace", - "packages" + "operator", + "pattern" ] } - }, - "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": { + "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": { - "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": { "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" + "committer_email_pattern" ] }, - "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": { + "parameters": { "type": "object", "properties": { - "source_location": { + "name": { "type": "string", - "description": "The path of the manifest file relative to the root of the Git repository.", - "example": "/src/build/package-lock.json" + "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." } }, - "additionalProperties": false - }, - "metadata": { - "$ref": "#/components/schemas/metadata" - }, - "resolved": { - "type": "object", - "description": "A collection of resolved package dependencies.", - "additionalProperties": { - "$ref": "#/components/schemas/dependency" - } + "required": [ + "operator", + "pattern" + ] } - }, - "required": [ - "name" - ], - "additionalProperties": false + } }, - "snapshot": { - "title": "snapshot", - "description": "Create a new snapshot of a repository's dependencies.", + "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": { - "version": { - "description": "The version of the repository snapshot submission.", - "type": "integer" + "type": { + "type": "string", + "enum": [ + "branch_name_pattern" + ] }, - "job": { + "parameters": { "type": "object", "properties": { - "id": { + "name": { "type": "string", - "description": "The external ID of the job.", - "example": "5622a2b0-63f6-4732-8c34-a1ab27e102a11" + "description": "How this rule appears when configuring it." }, - "correlator": { + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { "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" + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] }, - "html_url": { + "pattern": { "type": "string", - "description": "The url for the job.", - "example": "http://example.com/build" + "description": "The pattern to match with." } }, "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.", + "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", - "pattern": "^refs/", - "example": "refs/heads/main" + "enum": [ + "tag_name_pattern" + ] }, - "detector": { + "parameters": { "type": "object", - "description": "A description of the detector used.", "properties": { "name": { "type": "string", - "description": "The name of the detector used.", - "example": "docker buildtime detector" + "description": "How this rule appears when configuring it." }, - "version": { + "negate": { + "type": "boolean", + "description": "If true, the rule will fail if the pattern matches." + }, + "operator": { "type": "string", - "description": "The version of the detector used.", - "example": "1.0.0" + "description": "The operator to use for matching.", + "enum": [ + "starts_with", + "ends_with", + "contains", + "regex" + ] }, - "url": { + "pattern": { "type": "string", - "description": "The url of the detector used.", - "example": "http://example.com/docker-buildtimer-detector" + "description": "The pattern to match with." } }, "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" - } + "operator", + "pattern" + ] + } + } + }, + "repository-rule-params-restricted-commits": { + "title": "RestrictedCommits", + "description": "Restricted commit", + "type": "object", + "properties": { + "oid": { + "type": "string", + "description": "Full or abbreviated commit hash to reject" }, - "scanned": { + "reason": { "type": "string", - "format": "date-time", - "description": "The time at which the snapshot was scanned.", - "example": "2020-06-13T14:52:50-05:00" + "description": "Reason for restriction" } }, "required": [ - "detector", - "version", - "ref", - "sha", - "job", - "scanned" - ], - "additionalProperties": false + "oid" + ] }, - "deployment-status": { - "title": "Deployment Status", - "description": "The status of a deployment.", + "repository-rule-params-workflow-file-reference": { + "title": "WorkflowFileReference", + "description": "A workflow that must run for this rule to pass", "type": "object", "properties": { - "url": { + "path": { "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/example/deployments/42/statuses/1" - }, - "id": { - "type": "integer", - "format": "int64", - "example": 1 + "description": "The path to the workflow file" }, - "node_id": { + "ref": { "type": "string", - "example": "MDE2OkRlcGxveW1lbnRTdGF0dXMx" + "description": "The ref (branch or tag) of the workflow file to use" }, - "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, + "repository_id": { "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" + "description": "The ID of the repository where the workflow is defined" }, - "html_url": { + "sha": { "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" + "description": "The commit SHA of the workflow file to use" } }, "required": [ - "id", - "node_id", - "name", - "url", - "html_url", - "created_at", - "updated_at" + "path", + "repository_id" ] }, - "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.", + "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": { - "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" + "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" ] } } }, - "deployment-branch-policy-name-pattern-with-type": { - "title": "Deployment branch and tag policy name pattern", + "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": { - "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).", + "alerts_threshold": { "type": "string", - "example": "release/*" + "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" + ] }, - "type": { - "description": "Whether this rule targets a branch or tag", + "security_alerts_threshold": { "type": "string", - "example": "branch", + "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": [ - "branch", - "tag" + "none", + "critical", + "high_or_higher", + "medium_or_higher", + "all" ] - } - }, - "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).", + }, + "tool": { "type": "string", - "example": "release/*" + "description": "The name of a code scanning tool" } }, "required": [ - "name" + "alerts_threshold", + "security_alerts_threshold", + "tool" ] }, - "custom-deployment-rule-app": { - "title": "Custom deployment protection rule app", - "description": "A GitHub App that is providing a custom deployment protection rule.", + "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": { - "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": { "type": "string", - "example": "https://api.github.com/apps/custom-app-slug", - "description": "The URL for the endpoint to get details about the app." + "enum": [ + "code_scanning" + ] }, - "node_id": { - "type": "string", - "example": "MDQ6R2F0ZTM1MTU=", - "description": "The node ID for the deployment protection rule integration." + "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" + ] } - }, - "required": [ - "id", - "slug", - "integration_url", - "node_id" - ] + } }, - "deployment-protection-rule": { - "title": "Deployment protection rule", - "description": "Deployment protection rule", + "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": { - "id": { - "type": "integer", - "example": 3515, - "description": "The unique identifier for the deployment protection rule." - }, - "node_id": { + "type": { "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." + "enum": [ + "copilot_code_review" + ] }, - "app": { - "$ref": "#/components/schemas/custom-deployment-rule-app" + "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." + } + } } - }, - "required": [ - "id", - "node_id", - "enabled", - "app" - ] + } }, - "short-blob": { - "title": "Short Blob", - "description": "Short Blob", + "repository-rule-license-compliance-scanning": { + "title": "license_compliance_scanning", + "description": "Enforce any added or changed dependencies to comply with the organization's license policy.", "type": "object", - "properties": { - "url": { - "type": "string" - }, - "sha": { - "type": "string" - } - }, "required": [ - "url", - "sha" - ] - }, - "blob": { - "title": "Blob", - "description": "Blob", - "type": "object", + "type" + ], "properties": { - "content": { - "type": "string" - }, - "encoding": { - "type": "string" - }, - "url": { + "type": { "type": "string", - "format": "uri" - }, - "sha": { - "type": "string" - }, - "size": { - "type": "integer", - "nullable": true - }, - "node_id": { - "type": "string" - }, - "highlighted_content": { - "type": "string" + "enum": [ + "license_compliance_scanning" + ] } - }, - "required": [ - "sha", - "url", - "node_id", - "size", - "content", - "encoding" - ] + } }, - "git-commit": { - "title": "Git Commit", - "description": "Low-level Git commit operations within a repository", + "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": { - "sha": { - "description": "SHA for the commit", - "example": "7638417db6d59f3c431d3e1f261cc637155684cd", - "type": "string" - }, - "node_id": { - "type": "string" - }, - "url": { + "type": { "type": "string", - "format": "uri" + "enum": [ + "file_path_restriction" + ] }, - "author": { - "description": "Identifying information for the git-user", + "parameters": { "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" + "restricted_file_paths": { + "type": "array", + "description": "The file paths that are restricted from being pushed to the commit graph.", + "items": { + "type": "string" + } } }, "required": [ - "email", - "name", - "date" + "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" ] }, - "committer": { - "description": "Identifying information for the git-user", + "parameters": { "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" + "max_file_path_length": { + "type": "integer", + "description": "The maximum amount of characters allowed in file paths.", + "minimum": 1, + "maximum": 32767 } }, "required": [ - "email", - "name", - "date" + "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" ] }, - "message": { - "description": "Message describing the purpose of the commit", - "example": "Fix #42", - "type": "string" - }, - "tree": { + "parameters": { "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", + "restricted_file_extensions": { + "type": "array", + "description": "The file extensions that are restricted from being pushed to the commit graph.", + "items": { "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" + "restricted_file_extensions" ] - }, - "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", + "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": { - "ref": { - "type": "string" - }, - "node_id": { - "type": "string" - }, - "url": { + "type": { "type": "string", - "format": "uri" + "enum": [ + "max_file_size" + ] }, - "object": { + "parameters": { "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" + "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": [ - "type", - "sha", - "url" + "max_file_size" ] } - }, - "required": [ - "ref", - "node_id", - "url", - "object" + } + }, + "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-workflows" + }, + { + "$ref": "#/components/schemas/repository-rule-code-scanning" + }, + { + "$ref": "#/components/schemas/repository-rule-copilot-code-review" + }, + { + "$ref": "#/components/schemas/repository-rule-license-compliance-scanning" + }, + { + "$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" + } ] }, - "git-tag": { - "title": "Git Tag", - "description": "Metadata for a Git tag", + "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": { - "node_id": { + "id": { + "type": "integer", + "description": "The ID of the ruleset" + }, + "name": { "type": "string", - "example": "MDM6VGFnOTQwYmQzMzYyNDhlZmFlMGY5ZWU1YmM3YjJkNWM5ODU4ODdiMTZhYw==" + "description": "The name of the ruleset" }, - "tag": { - "description": "Name of the tag", - "example": "v0.0.1", - "type": "string" + "target": { + "type": "string", + "description": "The target of the ruleset", + "enum": [ + "branch", + "tag", + "push", + "repository" + ] }, - "sha": { + "source_type": { "type": "string", - "example": "940bd336248efae0f9ee5bc7b2d5c985887b16ac" + "description": "The type of the source of the ruleset", + "enum": [ + "Repository", + "Organization", + "Enterprise" + ] }, - "url": { - "description": "URL for the tag", - "example": "https://api.github.com/repositories/42/git/tags/940bd336248efae0f9ee5bc7b2d5c985887b16ac", + "source": { "type": "string", - "format": "uri" + "description": "The name of the source" }, - "message": { - "description": "Message describing the purpose of the tag", - "example": "Initial public release", + "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" }, - "tagger": { + "_links": { "type": "object", "properties": { - "date": { - "type": "string" - }, - "email": { - "type": "string" + "self": { + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "The URL of the ruleset" + } + } }, - "name": { - "type": "string" + "html": { + "type": "object", + "nullable": true, + "properties": { + "href": { + "type": "string", + "description": "The html URL of the ruleset" + } + } } - }, - "required": [ - "date", - "email", - "name" - ] + } }, - "object": { - "type": "object", - "properties": { - "sha": { - "type": "string" - }, - "type": { - "type": "string" + "conditions": { + "nullable": true, + "anyOf": [ + { + "$ref": "#/components/schemas/repository-ruleset-conditions" }, - "url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/schemas/org-ruleset-conditions" } - }, - "required": [ - "sha", - "type", - "url" ] }, - "verification": { - "$ref": "#/components/schemas/verification" + "rules": { + "type": "array", + "items": { + "$ref": "#/components/schemas/repository-rule" + } + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" } - }, - "required": [ - "sha", - "url", - "node_id", - "tagger", - "object", - "tag", - "message" - ] + } }, - "git-tree": { - "title": "Git Tree", - "description": "The hierarchy between files in a Git repository.", + "org-rules": { + "title": "Repository Rule", "type": "object", - "properties": { - "sha": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" + "description": "A repository rule.", + "oneOf": [ + { + "$ref": "#/components/schemas/repository-rule-creation" }, - "truncated": { - "type": "boolean" + { + "$ref": "#/components/schemas/repository-rule-update" }, - "tree": { - "description": "Objects specifying a tree structure", + { + "$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-pull-request": { + "title": "Pull request rule suite metadata", + "description": "Metadata for a pull request rule evaluation result.", + "type": "object", + "properties": { + "pull_request": { + "type": "object", + "description": "The pull request associated with the rule evaluation.", + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the pull request." + }, + "number": { + "type": "integer", + "description": "The number of the pull request." + }, + "user": { + "type": "object", + "description": "The user who created the pull request.", + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the user." + }, + "login": { + "type": "string", + "description": "The handle for the GitHub user account." + }, + "type": { + "type": "string", + "description": "The type of the user." + } + } + }, + "reviews": { + "type": "array", + "description": "The reviews associated with the pull request.", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the review." + }, + "user": { + "type": "object", + "description": "The user who submitted the review.", + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the user." + }, + "login": { + "type": "string", + "description": "The handle for the GitHub user account." + }, + "type": { + "type": "string", + "description": "The type of the user." + } + } + }, + "state": { + "type": "string", + "description": "The state of the review." + } + } + } + } + } + } + } + }, + "rule-suite-required-status-checks": { + "title": "Required status checks rule suite metadata", + "description": "Metadata for a required status checks rule evaluation result.", + "type": "object", + "properties": { + "checks": { "type": "array", + "description": "The status checks associated with the rule evaluation.", "items": { "type": "object", - "required": [ - "path", - "mode", - "type", - "sha" - ], "properties": { - "path": { - "type": "string", - "example": "test/file.rb" + "id": { + "type": "integer", + "description": "The unique identifier of the status check." }, - "mode": { + "context": { "type": "string", - "example": "040000" + "description": "The context name of the status check." }, - "type": { + "state": { "type": "string", - "example": "tree" + "description": "The state of the status check." }, - "sha": { + "type": { "type": "string", - "example": "23f6827669e43831def8a7ad935069c8bd418261" - }, - "size": { - "type": "integer", - "example": 12 + "description": "The type of the status check." }, - "url": { - "type": "string", - "example": "https://api.github.com/repos/owner-482f3203ecf01f67e9deb18e/BBB_Private_Repo/git/blobs/23f6827669e43831def8a7ad935069c8bd418261" + "app": { + "type": "object", + "nullable": true, + "description": "The GitHub App associated with the status check.", + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the GitHub App." + }, + "slug": { + "type": "string", + "description": "The slug of the GitHub App." + }, + "name": { + "type": "string", + "description": "The name of the GitHub App." + } + } } } - }, - "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", + "rule-suite": { + "title": "Rule Suite", + "description": "Response", "type": "object", "properties": { - "code": { + "id": { "type": "integer", - "nullable": true + "description": "The unique identifier of the rule insight." }, - "status": { - "type": "string", + "actor_id": { + "type": "integer", + "description": "The number that identifies the user.", "nullable": true }, - "message": { + "actor_name": { "type": "string", + "description": "The handle for the GitHub user account.", "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" + "before_sha": { + "type": "string", + "description": "The previous commit SHA of the ref." }, - "updated_at": { + "after_sha": { "type": "string", - "format": "date-time", - "example": "2011-09-06T20:39:23Z" + "description": "The new commit SHA of the ref." }, - "created_at": { + "ref": { "type": "string", - "format": "date-time", - "example": "2011-09-06T17:26:27Z" + "description": "The ref name that the evaluation ran on." }, - "url": { + "repository_id": { + "type": "integer", + "description": "The ID of the repository associated with the rule evaluation." + }, + "repository_name": { "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/hooks/1" + "description": "The name of the repository without the `.git` extension." }, - "test_url": { + "pushed_at": { "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/hooks/1/test" + "format": "date-time", + "example": "2011-01-26T19:06:43Z" }, - "ping_url": { + "result": { "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/hooks/1/pings" + "enum": [ + "pass", + "fail", + "bypass" + ], + "description": "The result of the rule evaluations for rules with the `active` enforcement status." }, - "deliveries_url": { + "evaluation_result": { "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/hooks/1/deliveries" + "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." }, - "last_response": { - "$ref": "#/components/schemas/hook-response" + "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." + } + } + } } - }, - "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", + "ruleset-version": { + "title": "Ruleset version", "type": "object", + "description": "The historical version of a ruleset", + "required": [ + "version_id", + "actor", + "updated_at" + ], "properties": { - "enabled": { - "type": "boolean", - "example": true, - "description": "Whether immutable releases are enabled for the repository." + "version_id": { + "type": "integer", + "description": "The ID of the previous version of the ruleset" }, - "enforced_by_owner": { - "type": "boolean", - "example": false, - "description": "Whether immutable releases are enforced by the repository owner." + "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" + } + } } - }, - "required": [ - "enabled", - "enforced_by_owner" ] }, - "import": { - "title": "Import", - "description": "A repository import from an external source.", + "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": { - "vcs": { + "path": { "type": "string", - "nullable": true + "description": "The file path in the repository", + "example": "/example/secrets.txt" }, - "use_lfs": { - "type": "boolean" + "start_line": { + "type": "number", + "description": "Line number at which the secret starts in the file" }, - "vcs_url": { - "description": "The URL of the originating repository.", - "type": "string" + "end_line": { + "type": "number", + "description": "Line number at which the secret ends in the file" }, - "svc_root": { - "type": "string" + "start_column": { + "type": "number", + "description": "The column at which the secret starts within the start line when the file is interpreted as 8BIT ASCII" }, - "tfvc_project": { - "type": "string" + "end_column": { + "type": "number", + "description": "The column at which the secret ends within the end line when the file is interpreted as 8BIT ASCII" }, - "status": { + "blob_sha": { "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" - ] + "description": "SHA-1 hash ID of the associated blob", + "example": "af5626b4a114abcb82d63db7c8082c3c4756e51b" }, - "status_text": { + "blob_url": { "type": "string", - "nullable": true + "description": "The API URL to get the associated blob resource" }, - "failed_step": { + "commit_sha": { "type": "string", - "nullable": true + "description": "SHA-1 hash ID of the associated commit", + "example": "af5626b4a114abcb82d63db7c8082c3c4756e51b" }, - "error_message": { + "commit_url": { "type": "string", - "nullable": true - }, - "import_percent": { - "type": "integer", - "nullable": true + "description": "The API URL to get the associated commit resource" }, - "commit_count": { - "type": "integer", - "nullable": true + "html_url": { + "type": "string", + "format": "uri", + "description": "The GitHub URL to get the associated commit resource.", + "example": "https://github.com/octocat/Hello-World/blob/af5626b/example/secrets.txt#L1-L1" + } + }, + "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" }, - "push_percent": { - "type": "integer", - "nullable": true + "start_line": { + "type": "number", + "description": "Line number at which the secret starts in the file" }, - "has_large_files": { - "type": "boolean" + "end_line": { + "type": "number", + "description": "Line number at which the secret ends in the file" }, - "large_files_size": { - "type": "integer" + "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." }, - "large_files_count": { - "type": "integer" + "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." }, - "project_choices": { - "type": "array", - "items": { - "type": "object", - "properties": { - "vcs": { - "type": "string" - }, - "tfvc_project": { - "type": "string" - }, - "human_name": { - "type": "string" - } - } - } + "blob_sha": { + "type": "string", + "description": "SHA-1 hash ID of the associated blob", + "example": "af5626b4a114abcb82d63db7c8082c3c4756e51b" }, - "message": { - "type": "string" + "page_url": { + "type": "string", + "description": "The GitHub URL to get the associated wiki page", + "example": "https://github.com/octocat/Hello-World/wiki/Home/302c0b7e200761c9dd9b57e57db540ee0b4293a5" }, - "authors_count": { - "type": "integer", - "nullable": true + "commit_sha": { + "type": "string", + "description": "SHA-1 hash ID of the associated commit", + "example": "302c0b7e200761c9dd9b57e57db540ee0b4293a5" }, - "url": { + "commit_url": { "type": "string", - "format": "uri" + "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" }, "html_url": { "type": "string", - "format": "uri" - }, - "authors_url": { + "format": "uri", + "description": "The GitHub URL for the issue where the secret was detected.", + "example": "https://github.com/octocat/Hello-World/issues/1" + } + }, + "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" + "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" }, - "repository_url": { + "html_url": { "type": "string", - "format": "uri" - }, - "svn_root": { - "type": "string" + "format": "uri", + "description": "The GitHub URL for the issue where the secret was detected.", + "example": "https://github.com/octocat/Hello-World/issues/1" } }, "required": [ - "vcs", - "vcs_url", - "status", - "url", - "repository_url", - "html_url", - "authors_url" + "issue_body_url" ] }, - "porter-author": { - "title": "Porter Author", - "description": "Porter Author", + "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": { - "id": { - "type": "integer" - }, - "remote_id": { - "type": "string" - }, - "remote_name": { - "type": "string" - }, - "email": { - "type": "string" - }, - "name": { - "type": "string" - }, - "url": { + "issue_comment_url": { "type": "string", - "format": "uri" + "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" }, - "import_url": { + "html_url": { "type": "string", - "format": "uri" + "format": "uri", + "description": "The GitHub URL for the issue comment where the secret was detected.", + "example": "https://github.com/octocat/Hello-World/issues/1#issuecomment-1081119451" } }, "required": [ - "id", - "remote_id", - "remote_name", - "email", - "name", - "url", - "import_url" + "issue_comment_url" ] }, - "porter-large-file": { - "title": "Porter Large File", - "description": "Porter Large File", + "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": { - "ref_name": { - "type": "string" - }, - "path": { - "type": "string" - }, - "oid": { - "type": "string" - }, - "size": { - "type": "integer" + "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": [ - "oid", - "path", - "ref_name", - "size" + "discussion_title_url" ] }, - "nullable-issue": { - "title": "Issue", - "description": "Issues are a great way to keep track of tasks, enhancements, and bugs for your projects.", + "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": { - "id": { - "type": "integer", - "format": "int64" - }, - "node_id": { - "type": "string" - }, - "url": { - "description": "URL for the issue", - "example": "https://api.github.com/repositories/42/issues/1", + "discussion_body_url": { "type": "string", - "format": "uri" + "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" }, - "repository_url": { + "html_url": { "type": "string", - "format": "uri" + "format": "uri", + "description": "The GitHub URL for the pull request where the secret was detected.", + "example": "https://github.com/octocat/Hello-World/pull/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" }, - "labels_url": { - "type": "string" + "html_url": { + "type": "string", + "format": "uri", + "description": "The GitHub URL for the pull request where the secret was detected.", + "example": "https://github.com/octocat/Hello-World/pull/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" }, - "comments_url": { + "html_url": { "type": "string", - "format": "uri" + "format": "uri", + "description": "The GitHub URL for the pull request comment where the secret was detected.", + "example": "https://github.com/octocat/Hello-World/pull/2846#issuecomment-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" }, - "events_url": { + "html_url": { "type": "string", - "format": "uri" + "format": "uri", + "description": "The GitHub URL for the pull request review where the secret was detected.", + "example": "https://github.com/octocat/Hello-World/pull/2846#pullrequestreview-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" }, "html_url": { "type": "string", - "format": "uri" + "format": "uri", + "description": "The GitHub URL for the pull request review comment where the secret was detected.", + "example": "https://github.com/octocat/Hello-World/pull/2846#discussion_r12" + } + }, + "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" }, - "number": { - "description": "Number uniquely identifying the issue within its repository", - "example": 42, - "type": "integer" + { + "$ref": "#/components/schemas/secret-scanning-location-wiki-commit" }, - "state": { - "description": "State of the issue; either 'open' or 'closed'", - "example": "open", - "type": "string" + { + "$ref": "#/components/schemas/secret-scanning-location-issue-title" }, - "state_reason": { - "description": "The reason for the current state", - "example": "not_planned", - "type": "string", - "nullable": true, - "enum": [ - "completed", - "reopened", - "not_planned", - "duplicate" - ] + { + "$ref": "#/components/schemas/secret-scanning-location-issue-body" }, - "title": { - "description": "Title of the issue", - "example": "Widget creation fails in Safari on OS X 10.8", - "type": "string" + { + "$ref": "#/components/schemas/secret-scanning-location-issue-comment" }, - "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/schemas/secret-scanning-location-discussion-title" }, - "user": { - "$ref": "#/components/schemas/nullable-simple-user" + { + "$ref": "#/components/schemas/secret-scanning-location-discussion-body" }, - "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" - } - } - } - ] - } + { + "$ref": "#/components/schemas/secret-scanning-location-discussion-comment" }, - "assignee": { - "$ref": "#/components/schemas/nullable-simple-user" + { + "$ref": "#/components/schemas/secret-scanning-location-pull-request-title" }, - "assignees": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + { + "$ref": "#/components/schemas/secret-scanning-location-pull-request-body" }, - "milestone": { - "$ref": "#/components/schemas/nullable-milestone" + { + "$ref": "#/components/schemas/secret-scanning-location-pull-request-comment" }, - "locked": { - "type": "boolean" + { + "$ref": "#/components/schemas/secret-scanning-location-pull-request-review" }, - "active_lock_reason": { + { + "$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", - "nullable": true + "format": "uri", + "description": "The REST API URL of the code locations for this alert." }, - "comments": { - "type": "integer" + "state": { + "$ref": "#/components/schemas/secret-scanning-alert-state" }, - "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" - ] + "resolution": { + "$ref": "#/components/schemas/secret-scanning-alert-resolution" }, - "closed_at": { + "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 }, - "created_at": { + "resolved_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "secret_type": { "type": "string", - "format": "date-time" + "description": "The type of secret that secret scanning detected." }, - "updated_at": { + "secret_type_display_name": { "type": "string", - "format": "date-time" + "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).\"" }, - "draft": { - "type": "boolean" + "provider": { + "type": "string", + "description": "The provider of the secret that was detected.", + "nullable": true }, - "closed_by": { + "provider_slug": { + "type": "string", + "description": "The slug identifier for the provider of the secret that was detected. Use this value for filtering by provider with the `providers` or `exclude_providers` parameters.", + "nullable": true + }, + "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" }, - "body_html": { - "type": "string" + "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 }, - "body_text": { - "type": "string" + "push_protection_bypass_request_reviewer": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "timeline_url": { + "push_protection_bypass_request_reviewer_comment": { "type": "string", - "format": "uri" + "description": "An optional comment when reviewing a push protection bypass.", + "nullable": true }, - "type": { - "$ref": "#/components/schemas/issue-type" + "push_protection_bypass_request_comment": { + "type": "string", + "description": "An optional comment when requesting a push protection bypass.", + "nullable": true }, - "repository": { - "$ref": "#/components/schemas/repository" + "push_protection_bypass_request_html_url": { + "type": "string", + "format": "uri", + "description": "The URL to a push protection bypass request.", + "nullable": true }, - "performed_via_github_app": { - "$ref": "#/components/schemas/nullable-integration" + "resolution_comment": { + "type": "string", + "description": "The comment that was optionally added when this alert was closed", + "nullable": true }, - "author_association": { - "$ref": "#/components/schemas/author-association" + "validity": { + "type": "string", + "description": "The token status as of the latest validity check.", + "enum": [ + "active", + "inactive", + "unknown" + ] }, - "reactions": { - "$ref": "#/components/schemas/reaction-rollup" + "publicly_leaked": { + "type": "boolean", + "description": "Whether the secret was publicly leaked.", + "nullable": true }, - "sub_issues_summary": { - "$ref": "#/components/schemas/sub-issues-summary" + "multi_repo": { + "type": "boolean", + "description": "Whether the detected secret was found in multiple repositories in the same organization or enterprise.", + "nullable": true }, - "parent_issue_url": { - "description": "URL to get the parent issue of this issue, if it is a sub-issue", - "type": "string", - "format": "uri", + "is_base64_encoded": { + "type": "boolean", + "description": "A boolean value representing whether or not alert is base64 encoded", "nullable": true }, - "pinned_comment": { - "$ref": "#/components/schemas/nullable-issue-comment" + "first_location_detected": { + "$ref": "#/components/schemas/nullable-secret-scanning-first-detected-location" }, - "issue_dependencies_summary": { - "$ref": "#/components/schemas/issue-dependencies-summary" + "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." }, - "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" - ], - "x-github-breaking-changes": [ - { - "changeset": "deprecate_beta_media_type", - "patch": { - "properties": { - "pull_request": { - "type": "object", - "properties": { - "merged_at": { - "nullable": false - }, - "diff_url": { - "nullable": false - }, - "html_url": { - "nullable": false - }, - "patch_url": { - "nullable": false - }, - "url": { - "nullable": false - } - } - } - } - }, - "version": "2026-03-10" + "assigned_to": { + "$ref": "#/components/schemas/nullable-simple-user" }, - { - "changeset": "remove_singular_assignee_from_issues_and_pull_requests", - "patch": { - "properties": { - "assignee": null - }, - "required": [ - "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" - ] - }, - "version": "2026-03-10" - } - ], - "nullable": true - }, - "issue-event-label": { - "title": "Issue Event Label", - "description": "Issue Event Label", - "type": "object", - "properties": { - "name": { + "closure_request_comment": { "type": "string", + "description": "An optional comment from the closure request author.", "nullable": true }, - "color": { + "closure_request_reviewer_comment": { "type": "string", + "description": "An optional comment from the closure request reviewer.", "nullable": true + }, + "closure_request_reviewer": { + "$ref": "#/components/schemas/nullable-simple-user" } - }, - "required": [ - "name", - "color" - ] + } }, - "issue-event-dismissed-review": { - "title": "Issue Event Dismissed Review", + "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-custom-pattern": { + "title": "Secret Scanning Custom Pattern", + "description": "A custom pattern for secret scanning.", "type": "object", "properties": { + "id": { + "type": "integer", + "description": "The ID of the custom pattern." + }, + "name": { + "type": "string", + "description": "The name of the custom pattern." + }, + "pattern": { + "type": "string", + "description": "The regular expression of the custom pattern." + }, + "slug": { + "type": "string", + "description": "A URL-friendly identifier for the custom pattern, derived from its name." + }, "state": { - "type": "string" + "type": "string", + "description": "The state of the custom pattern.", + "enum": [ + "published", + "unpublished" + ] }, - "review_id": { - "type": "integer" + "push_protection_enabled": { + "type": "boolean", + "description": "Whether push protection is enabled for this custom pattern." }, - "dismissal_message": { + "start_delimiter": { "type": "string", + "description": "The start delimiter regex for the custom pattern.", "nullable": true }, - "dismissal_commit_id": { + "end_delimiter": { "type": "string", + "description": "The end delimiter regex for the custom pattern.", "nullable": true + }, + "must_match": { + "type": "array", + "description": "List of regexes that the secret must match.", + "nullable": true, + "items": { + "type": "string" + } + }, + "must_not_match": { + "type": "array", + "description": "List of regexes that the secret must not match.", + "nullable": true, + "items": { + "type": "string" + } + }, + "custom_pattern_version": { + "$ref": "#/components/schemas/secret-scanning-row-version" + }, + "created_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the custom pattern was created in ISO 8601 format." + }, + "updated_at": { + "type": "string", + "format": "date-time", + "description": "The date and time the custom pattern was last updated in ISO 8601 format." } }, "required": [ + "id", + "name", + "pattern", + "slug", "state", - "review_id", - "dismissal_message" + "push_protection_enabled" ] }, - "issue-event-milestone": { - "title": "Issue Event Milestone", - "description": "Issue Event Milestone", + "secret-scanning-custom-pattern-to-create": { + "title": "Secret Scanning Custom Pattern To Create", + "description": "A custom pattern to create in a bulk operation.", "type": "object", - "properties": { - "title": { - "type": "string" - } - }, "required": [ - "title" - ] - }, - "issue-event-project-card": { - "title": "Issue Event Project Card", - "description": "Issue Event Project Card", - "type": "object", + "name", + "pattern" + ], "properties": { - "url": { + "name": { "type": "string", - "format": "uri" + "description": "The name of the custom pattern." }, - "id": { - "type": "integer" + "pattern": { + "type": "string", + "description": "The regular expression of the custom pattern." }, - "project_url": { + "start_delimiter": { "type": "string", - "format": "uri" + "description": "The start delimiter regex for the custom pattern.\nDefaults to `\\A|[^0-9A-Za-z]` when not specified.", + "default": "\\A|[^0-9A-Za-z]" }, - "project_id": { - "type": "integer" + "end_delimiter": { + "type": "string", + "description": "The end delimiter regex for the custom pattern.\nDefaults to `\\z|[^0-9A-Za-z]` when not specified.", + "default": "\\z|[^0-9A-Za-z]" }, - "column_name": { - "type": "string" + "must_match": { + "type": "array", + "description": "List of regexes that the secret must match.", + "items": { + "type": "string" + } }, - "previous_column_name": { - "type": "string" + "must_not_match": { + "type": "array", + "description": "List of regexes that the secret must not match.", + "items": { + "type": "string" + } } - }, - "required": [ - "url", - "id", - "project_url", - "project_id", - "column_name" - ] + } }, - "issue-event-rename": { - "title": "Issue Event Rename", - "description": "Issue Event Rename", + "secret-scanning-custom-pattern-validation-error": { + "title": "Secret Scanning Custom Pattern Validation Error", + "description": "A validation error for a custom pattern in a batch operation.", "type": "object", "properties": { - "from": { - "type": "string" + "code": { + "type": "string", + "description": "A machine-readable code describing the error.", + "enum": [ + "invalid", + "unprocessable", + "start_delimiter", + "end_delimiter", + "name", + "must_match", + "must_not_match", + "custom_pattern_version_mismatch" + ] }, - "to": { - "type": "string" + "message": { + "type": "string", + "description": "A human-readable description of the error." } - }, - "required": [ - "from", - "to" - ] + } }, - "issue-event": { - "title": "Issue Event", - "description": "Issue Event", + "secret-scanning-custom-pattern-to-delete": { + "title": "Secret Scanning Custom Pattern To Delete", + "description": "A custom pattern to delete in a bulk operation.", "type": "object", + "required": [ + "pattern_id" + ], "properties": { - "id": { + "pattern_id": { "type": "integer", - "format": "int64", - "example": 1 + "description": "The ID of the custom pattern to delete." }, - "node_id": { - "type": "string", - "example": "MDEwOklzc3VlRXZlbnQx" + "custom_pattern_version": { + "$ref": "#/components/schemas/secret-scanning-row-version" + } + } + }, + "secret-scanning-custom-pattern-to-update": { + "title": "Secret Scanning Custom Pattern To Update", + "description": "Fields to update on a custom pattern. At least one updatable field (`pattern`, `start_delimiter`, `end_delimiter`, `must_match`, or `must_not_match`) must also be provided. Only provided fields will be updated.", + "required": [ + "custom_pattern_version" + ], + "anyOf": [ + { + "required": [ + "pattern" + ] }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/issues/events/1" + { + "required": [ + "start_delimiter" + ] }, - "actor": { - "$ref": "#/components/schemas/nullable-simple-user" + { + "required": [ + "end_delimiter" + ] }, - "event": { - "type": "string", - "example": "closed" + { + "required": [ + "must_match" + ] }, - "commit_id": { + { + "required": [ + "must_not_match" + ] + } + ], + "properties": { + "pattern": { "type": "string", - "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e", - "nullable": true + "description": "The updated regular expression of the custom pattern." }, - "commit_url": { + "start_delimiter": { "type": "string", - "example": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", - "nullable": true + "description": "The updated start delimiter regex for the custom pattern." }, - "created_at": { + "end_delimiter": { "type": "string", - "format": "date-time", - "example": "2011-04-14T16:00:49Z" + "description": "The updated end delimiter regex for the custom pattern." }, - "issue": { - "$ref": "#/components/schemas/nullable-issue" + "must_match": { + "type": "array", + "description": "Updated list of regexes that the secret must match.", + "items": { + "type": "string" + } }, - "label": { - "$ref": "#/components/schemas/issue-event-label" + "must_not_match": { + "type": "array", + "description": "Updated list of regexes that the secret must not match.", + "items": { + "type": "string" + } }, - "assignee": { - "$ref": "#/components/schemas/nullable-simple-user" + "custom_pattern_version": { + "$ref": "#/components/schemas/secret-scanning-row-version" + } + } + }, + "secret-scanning-pattern-override": { + "type": "object", + "properties": { + "token_type": { + "type": "string", + "description": "The ID of the pattern." }, - "assigner": { - "$ref": "#/components/schemas/nullable-simple-user" + "custom_pattern_version": { + "type": "string", + "description": "The version of this pattern if it's a custom pattern.", + "nullable": true }, - "review_requester": { - "$ref": "#/components/schemas/nullable-simple-user" + "slug": { + "type": "string", + "description": "The slug of the pattern." }, - "requested_reviewer": { - "$ref": "#/components/schemas/nullable-simple-user" + "display_name": { + "type": "string", + "description": "The user-friendly name for the pattern." }, - "requested_team": { - "$ref": "#/components/schemas/team" + "alert_total": { + "type": "integer", + "description": "The total number of alerts generated by this pattern." }, - "dismissed_review": { - "$ref": "#/components/schemas/issue-event-dismissed-review" + "alert_total_percentage": { + "type": "integer", + "description": "The percentage of all alerts that this pattern represents, rounded to the nearest integer." }, - "milestone": { - "$ref": "#/components/schemas/issue-event-milestone" + "false_positives": { + "type": "integer", + "description": "The number of false positive alerts generated by this pattern." }, - "project_card": { - "$ref": "#/components/schemas/issue-event-project-card" + "false_positive_rate": { + "type": "integer", + "description": "The percentage of alerts from this pattern that are false positives, rounded to the nearest integer." }, - "rename": { - "$ref": "#/components/schemas/issue-event-rename" + "bypass_rate": { + "type": "integer", + "description": "The percentage of blocks for this pattern that were bypassed, rounded to the nearest integer." }, - "author_association": { - "$ref": "#/components/schemas/author-association" + "default_setting": { + "type": "string", + "description": "The default push protection setting for this pattern.", + "enum": [ + "disabled", + "enabled" + ] }, - "lock_reason": { + "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 }, - "performed_via_github_app": { - "$ref": "#/components/schemas/nullable-integration" + "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" + ] } - }, - "required": [ - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at" - ] + } }, - "labeled-issue-event": { - "title": "Labeled Issue Event", - "description": "Labeled Issue Event", + "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": { - "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" + "pattern_config_version": { + "$ref": "#/components/schemas/secret-scanning-row-version" }, - "performed_via_github_app": { - "$ref": "#/components/schemas/nullable-integration" + "provider_pattern_overrides": { + "type": "array", + "description": "Overrides for partner patterns.", + "items": { + "$ref": "#/components/schemas/secret-scanning-pattern-override" + } }, - "label": { + "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": { - "name": { - "type": "string" + "ecosystem": { + "$ref": "#/components/schemas/security-advisory-ecosystems" }, - "color": { - "type": "string" + "name": { + "type": "string", + "description": "The unique package name within its ecosystem.", + "nullable": true } }, "required": [ - "name", - "color" + "ecosystem", + "name" ] - } - }, - "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": { + "vulnerable_version_range": { "type": "string", + "description": "The range of the package versions affected by the vulnerability.", "nullable": true }, - "commit_url": { + "patched_versions": { "type": "string", + "description": "The package version(s) that resolve the vulnerability.", "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" - ] + "vulnerable_functions": { + "type": "array", + "description": "The functions in the package that are affected.", + "nullable": true, + "items": { + "type": "string" + } } }, "required": [ - "label", - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at", - "performed_via_github_app" - ] + "package", + "vulnerable_version_range", + "patched_versions", + "vulnerable_functions" + ], + "additionalProperties": false }, - "assigned-issue-event": { - "title": "Assigned Issue Event", - "description": "Assigned Issue Event", + "repository-advisory-credit": { + "description": "A credit given to a user for a repository security advisory.", "type": "object", "properties": { - "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "url": { - "type": "string" - }, - "actor": { + "user": { "$ref": "#/components/schemas/simple-user" }, - "event": { - "type": "string" - }, - "commit_id": { - "type": "string", - "nullable": true + "type": { + "$ref": "#/components/schemas/security-advisory-credit-types" }, - "commit_url": { + "state": { "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" + "description": "The state of the user's acceptance of the credit.", + "enum": [ + "accepted", + "declined", + "pending" + ] } }, "required": [ - "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at", - "performed_via_github_app", - "assignee", - "assigner" - ] + "user", + "type", + "state" + ], + "additionalProperties": false }, - "unassigned-issue-event": { - "title": "Unassigned Issue Event", - "description": "Unassigned Issue Event", + "repository-advisory": { + "description": "A repository security advisory.", "type": "object", "properties": { - "id": { - "type": "integer" + "ghsa_id": { + "type": "string", + "description": "The GitHub Security Advisory ID.", + "readOnly": true }, - "node_id": { - "type": "string" + "cve_id": { + "type": "string", + "description": "The Common Vulnerabilities and Exposures (CVE) ID.", + "nullable": true }, "url": { - "type": "string" - }, - "actor": { - "$ref": "#/components/schemas/simple-user" + "type": "string", + "format": "uri", + "description": "The API URL for the advisory.", + "readOnly": true }, - "event": { - "type": "string" + "html_url": { + "type": "string", + "format": "uri", + "description": "The URL for the advisory.", + "readOnly": true }, - "commit_id": { + "summary": { "type": "string", - "nullable": true + "description": "A short summary of the advisory.", + "maxLength": 1024 }, - "commit_url": { + "description": { "type": "string", + "description": "A detailed description of what the advisory entails.", + "maxLength": 65535, "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" + "severity": { + "type": "string", + "description": "The severity of the advisory.", + "nullable": true, + "enum": [ + "critical", + "high", + "medium", + "low" + ] }, - "node_id": { - "type": "string" + "author": { + "readOnly": true, + "nullable": true, + "description": "The author of the advisory.", + "allOf": [ + { + "$ref": "#/components/schemas/simple-user" + } + ] }, - "url": { - "type": "string" + "publisher": { + "readOnly": true, + "nullable": true, + "description": "The publisher of the advisory.", + "allOf": [ + { + "$ref": "#/components/schemas/simple-user" + } + ] }, - "actor": { - "$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 }, - "event": { - "type": "string" + "state": { + "type": "string", + "description": "The state of the advisory.", + "enum": [ + "published", + "closed", + "withdrawn", + "draft", + "triage" + ] }, - "commit_id": { + "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 }, - "commit_url": { + "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 }, - "created_at": { - "type": "string" - }, - "performed_via_github_app": { - "$ref": "#/components/schemas/nullable-integration" + "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 }, - "milestone": { + "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": { - "title": { - "type": "string" + "accepted": { + "type": "boolean", + "description": "Whether a private vulnerability report was accepted by the repository's administrators.", + "readOnly": true } }, "required": [ - "title" + "accepted" ] - } - }, - "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" + "vulnerabilities": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/repository-advisory-vulnerability" + } }, - "url": { - "type": "string" + "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" + ] }, - "actor": { - "$ref": "#/components/schemas/simple-user" + "cvss_severities": { + "$ref": "#/components/schemas/cvss-severities" }, - "event": { - "type": "string" + "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 }, - "commit_id": { - "type": "string", - "nullable": true + "cwe_ids": { + "type": "array", + "description": "A list of only the CWE IDs.", + "nullable": true, + "items": { + "type": "string" + } }, - "commit_url": { - "type": "string", - "nullable": true + "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" + } + } + } }, - "created_at": { - "type": "string" + "credits_detailed": { + "type": "array", + "nullable": true, + "items": { + "$ref": "#/components/schemas/repository-advisory-credit" + }, + "readOnly": true }, - "performed_via_github_app": { - "$ref": "#/components/schemas/nullable-integration" + "collaborating_users": { + "type": "array", + "description": "A list of users that collaborate on the advisory.", + "nullable": true, + "items": { + "$ref": "#/components/schemas/simple-user" + } }, - "milestone": { - "type": "object", - "properties": { - "title": { - "type": "string" + "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": [ - "title" ] } }, "required": [ - "milestone", - "id", - "node_id", + "ghsa_id", + "cve_id", "url", - "actor", - "event", - "commit_id", - "commit_url", + "html_url", + "summary", + "description", + "severity", + "author", + "publisher", + "identifiers", + "state", "created_at", - "performed_via_github_app" + "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, + "x-github-breaking-changes": [ + { + "changeset": "deprecate_cvss", + "patch": { + "properties": { + "cvss": null + }, + "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", + "cwes", + "cwe_ids", + "credits", + "credits_detailed", + "collaborating_users", + "collaborating_teams", + "private_fork" + ] + }, + "version": "2026-03-10" + } ] }, - "renamed-issue-event": { - "title": "Renamed Issue Event", - "description": "Renamed Issue Event", + "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": { - "type": "integer" + "description": "The unique identifier of the network configuration.", + "type": "string", + "example": "123ABC456DEF789" }, - "node_id": { - "type": "string" + "name": { + "description": "The name of the network configuration.", + "type": "string", + "example": "my-network-configuration" }, - "url": { - "type": "string" + "compute_service": { + "description": "The hosted compute service the network configuration supports.", + "type": "string", + "enum": [ + "none", + "actions", + "codespaces" + ] }, - "actor": { - "$ref": "#/components/schemas/simple-user" + "network_settings_ids": { + "description": "The unique identifier of each network settings in the configuration.", + "type": "array", + "items": { + "type": "string" + }, + "example": "123ABC456DEF789" }, - "event": { - "type": "string" + "failover_network_settings_ids": { + "description": "The unique identifier of each failover network settings in the configuration.", + "type": "array", + "items": { + "type": "string" + }, + "example": "123ABC456DEF789" }, - "commit_id": { - "type": "string", - "nullable": true + "failover_network_enabled": { + "description": "Indicates whether the failover network resource is enabled.", + "type": "boolean", + "example": true }, - "commit_url": { + "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 - }, - "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" + "name", + "created_on" ] }, - "review-requested-issue-event": { - "title": "Review Requested Issue Event", - "description": "Review Requested Issue Event", + "network-settings": { + "title": "Hosted compute network settings resource", + "description": "A hosted compute network settings resource.", "type": "object", "properties": { "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "url": { - "type": "string" - }, - "actor": { - "$ref": "#/components/schemas/simple-user" - }, - "event": { - "type": "string" - }, - "commit_id": { + "description": "The unique identifier of the network settings resource.", "type": "string", - "nullable": true + "example": "220F78DACB92BBFBC5E6F22DE1CCF52309D" }, - "commit_url": { + "network_configuration_id": { + "description": "The identifier of the network configuration that is using this settings resource.", "type": "string", - "nullable": true - }, - "created_at": { - "type": "string" - }, - "performed_via_github_app": { - "$ref": "#/components/schemas/nullable-integration" + "example": "934E208B3EE0BD60CF5F752C426BFB53562" }, - "review_requester": { - "$ref": "#/components/schemas/simple-user" + "name": { + "description": "The name of the network settings resource.", + "type": "string", + "example": "my-network-settings" }, - "requested_team": { - "$ref": "#/components/schemas/team" + "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" }, - "requested_reviewer": { - "$ref": "#/components/schemas/simple-user" + "region": { + "description": "The location of the subnet this network settings resource is configured for.", + "type": "string", + "example": "eastus" } }, "required": [ - "review_requester", "id", - "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", - "created_at", - "performed_via_github_app" + "name", + "subnet_id", + "region" ] }, - "review-request-removed-issue-event": { - "title": "Review Request Removed Issue Event", - "description": "Review Request Removed Issue Event", + "team-organization": { + "title": "Team Organization", + "description": "Team Organization", "type": "object", "properties": { + "login": { + "type": "string", + "example": "github" + }, "id": { - "type": "integer" + "type": "integer", + "example": 1 }, "node_id": { - "type": "string" + "type": "string", + "example": "MDEyOk9yZ2FuaXphdGlvbjE=" }, "url": { - "type": "string" + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github" }, - "actor": { - "$ref": "#/components/schemas/simple-user" + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github/repos" }, - "event": { - "type": "string" + "events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/orgs/github/events" }, - "commit_id": { + "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 }, - "commit_url": { + "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 }, - "created_at": { - "type": "string" + "is_verified": { + "type": "boolean", + "example": true }, - "performed_via_github_app": { - "$ref": "#/components/schemas/nullable-integration" + "has_organization_projects": { + "type": "boolean", + "example": true }, - "review_requester": { - "$ref": "#/components/schemas/simple-user" + "has_repository_projects": { + "type": "boolean", + "example": true }, - "requested_team": { - "$ref": "#/components/schemas/team" + "public_repos": { + "type": "integer", + "example": 2 }, - "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" + "public_gists": { + "type": "integer", + "example": 1 }, - "node_id": { - "type": "string" + "followers": { + "type": "integer", + "example": 20 }, - "url": { - "type": "string" + "following": { + "type": "integer", + "example": 0 }, - "actor": { - "$ref": "#/components/schemas/simple-user" + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" }, - "event": { - "type": "string" + "created_at": { + "type": "string", + "format": "date-time", + "example": "2008-01-14T04:33:35Z" }, - "commit_id": { + "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 }, - "commit_url": { - "type": "string", + "disk_usage": { + "type": "integer", + "example": 10000, "nullable": true }, - "created_at": { - "type": "string" + "collaborators": { + "type": "integer", + "example": 8, + "nullable": true }, - "performed_via_github_app": { - "$ref": "#/components/schemas/nullable-integration" + "billing_email": { + "type": "string", + "format": "email", + "example": "org@example.com", + "nullable": true }, - "dismissed_review": { + "plan": { "type": "object", "properties": { - "state": { + "name": { "type": "string" }, - "review_id": { + "space": { "type": "integer" }, - "dismissal_message": { - "nullable": true, - "type": "string" + "private_repos": { + "type": "integer" }, - "dismissal_commit_id": { - "type": "string" + "filled_seats": { + "type": "integer" + }, + "seats": { + "type": "integer" } }, "required": [ - "state", - "review_id", - "dismissal_message" + "name", + "space", + "private_repos" ] - } - }, - "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" + "default_repository_permission": { + "type": "string", + "nullable": true }, - "event": { - "type": "string" + "members_can_create_repositories": { + "type": "boolean", + "example": true, + "nullable": true }, - "commit_id": { - "type": "string", + "two_factor_requirement_enabled": { + "type": "boolean", + "example": true, "nullable": true }, - "commit_url": { + "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 }, - "created_at": { - "type": "string" + "web_commit_signoff_required": { + "type": "boolean", + "example": false }, - "performed_via_github_app": { - "$ref": "#/components/schemas/nullable-integration" + "updated_at": { + "type": "string", + "format": "date-time" }, - "lock_reason": { + "archived_at": { "type": "string", - "example": "\"off-topic\"", + "format": "date-time", "nullable": true } }, "required": [ - "lock_reason", + "login", + "url", "id", "node_id", - "url", - "actor", - "event", - "commit_id", - "commit_url", + "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", - "performed_via_github_app" + "updated_at", + "archived_at" ] }, - "added-to-project-issue-event": { - "title": "Added to Project Issue Event", - "description": "Added to Project Issue Event", + "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" + "type": "string", + "example": "MDQ6VGVhbTE=" }, "url": { - "type": "string" + "description": "URL for the team", + "example": "https://api.github.com/organizations/1/team/1", + "type": "string", + "format": "uri" }, - "actor": { - "$ref": "#/components/schemas/simple-user" + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/orgs/rails/teams/core" }, - "event": { + "name": { + "description": "Name of the team", + "example": "Developers", "type": "string" }, - "commit_id": { + "slug": { "type": "string", - "nullable": true + "example": "justice-league" }, - "commit_url": { + "description": { "type": "string", + "example": "A great team.", "nullable": true }, - "created_at": { - "type": "string" - }, - "performed_via_github_app": { - "$ref": "#/components/schemas/nullable-integration" + "privacy": { + "description": "The level of privacy this team should have", + "type": "string", + "enum": [ + "closed", + "secret" + ], + "example": "closed" }, - "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" + "notification_setting": { + "description": "The notification setting the team has set", + "type": "string", + "enum": [ + "notifications_enabled", + "notifications_disabled" + ], + "example": "notifications_enabled" }, - "node_id": { + "permission": { + "description": "Permission that the team will have for its repositories", + "example": "push", "type": "string" }, - "url": { - "type": "string" + "members_url": { + "type": "string", + "example": "https://api.github.com/organizations/1/team/1/members{/member}" }, - "actor": { - "$ref": "#/components/schemas/simple-user" + "repositories_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/organizations/1/team/1/repos" }, - "event": { - "type": "string" + "parent": { + "$ref": "#/components/schemas/nullable-team-simple" }, - "commit_id": { + "members_count": { + "type": "integer", + "example": 3 + }, + "repos_count": { + "type": "integer", + "example": 10 + }, + "created_at": { "type": "string", - "nullable": true + "format": "date-time", + "example": "2017-07-14T16:53:42Z" }, - "commit_url": { + "updated_at": { "type": "string", - "nullable": true + "format": "date-time", + "example": "2017-08-17T12:37:15Z" }, - "created_at": { - "type": "string" + "organization": { + "$ref": "#/components/schemas/team-organization" }, - "performed_via_github_app": { - "$ref": "#/components/schemas/nullable-integration" + "ldap_dn": { + "$ref": "#/components/schemas/ldap-dn" }, - "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" + "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", - "actor", - "event", - "commit_id", - "commit_url", + "members_url", + "name", + "description", + "permission", + "html_url", + "repositories_url", + "slug", + "type", "created_at", - "performed_via_github_app" + "updated_at", + "members_count", + "repos_count", + "organization" ] }, - "removed-from-project-issue-event": { - "title": "Removed from Project Issue Event", - "description": "Removed from Project Issue Event", + "team-member": { + "title": "Team Member", + "description": "A user that is a member of a team, including their role on the team and whether the membership is inherited from a child team.", "type": "object", "properties": { - "id": { - "type": "integer" - }, - "node_id": { + "name": { + "nullable": true, "type": "string" }, - "url": { + "email": { + "nullable": true, "type": "string" }, - "actor": { - "$ref": "#/components/schemas/simple-user" + "login": { + "type": "string", + "example": "octocat" }, - "event": { - "type": "string" + "id": { + "type": "integer", + "format": "int64", + "example": 1 }, - "commit_id": { + "node_id": { "type": "string", - "nullable": true + "example": "MDQ6VXNlcjE=" }, - "commit_url": { + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", "nullable": true }, - "created_at": { - "type": "string" + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" }, - "performed_via_github_app": { - "$ref": "#/components/schemas/nullable-integration" + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" }, - "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": { + "followers_url": { "type": "string", - "nullable": true + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" }, - "commit_url": { + "following_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" + "example": "https://api.github.com/users/octocat/following{/other_user}" }, - "actor": { - "$ref": "#/components/schemas/simple-user" + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" }, - "id": { - "description": "Unique identifier of the issue comment", - "example": 42, - "type": "integer" + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" }, - "node_id": { - "type": "string" + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" }, - "url": { - "description": "URL for the issue comment", - "example": "https://api.github.com/repositories/42/issues/comments/1", + "organizations_url": { "type": "string", - "format": "uri" + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" }, - "body": { - "description": "Contents of the issue comment", - "example": "What version of Safari were you using when you observed this bug?", - "type": "string" + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" }, - "body_text": { - "type": "string" + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" }, - "body_html": { - "type": "string" + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" }, - "html_url": { + "type": { "type": "string", - "format": "uri" + "example": "User" }, - "user": { - "$ref": "#/components/schemas/simple-user" + "site_admin": { + "type": "boolean" }, - "created_at": { + "starred_at": { "type": "string", - "format": "date-time", - "example": "2011-04-14T16:00:49Z" + "example": "\"2020-07-09T00:17:55Z\"" }, - "updated_at": { + "user_view_type": { "type": "string", - "format": "date-time", - "example": "2011-04-14T16:00:49Z" + "example": "public" }, - "issue_url": { + "role": { "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" + "description": "The member's role on the team. Only present on the `List team members` endpoint, and only when the feature is enabled for the organization.", + "enum": [ + "member", + "maintainer" + ], + "example": "member" }, - "pin": { - "$ref": "#/components/schemas/nullable-pinned-issue-comment" + "inherited": { + "type": "boolean", + "description": "Whether the user is a member of the team only through a child team. `true` means the membership is inherited from a child team; `false` means the user is a direct (immediate) member of the team. Only present on the `List team members` endpoint, and only when the feature is enabled for the organization.", + "example": false } }, "required": [ - "event", - "actor", + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", "id", "node_id", - "html_url", - "issue_url", - "author_association", - "user", - "url", - "created_at", - "updated_at" + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url" ] }, - "timeline-cross-referenced-event": { - "title": "Timeline Cross Referenced Event", - "description": "Timeline Cross Referenced Event", + "team-membership": { + "title": "Team Membership", + "description": "Team Membership", "type": "object", "properties": { - "event": { - "type": "string" - }, - "actor": { - "$ref": "#/components/schemas/simple-user" - }, - "created_at": { + "url": { "type": "string", - "format": "date-time" + "format": "uri" }, - "updated_at": { - "type": "string", - "format": "date-time" + "role": { + "description": "The role of the user in the team.", + "enum": [ + "member", + "maintainer" + ], + "default": "member", + "example": "member", + "type": "string" }, - "source": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "issue": { - "$ref": "#/components/schemas/issue" - } - } + "state": { + "description": "The state of the user's membership in the team.", + "type": "string", + "enum": [ + "active", + "pending" + ] } }, "required": [ - "event", - "created_at", - "updated_at", - "source" + "role", + "state", + "url" ] }, - "timeline-committed-event": { - "title": "Timeline Committed Event", - "description": "Timeline Committed Event", + "team-repository": { + "title": "Team Repository", + "description": "A team's access to a repository.", "type": "object", "properties": { - "event": { - "type": "string" - }, - "sha": { - "description": "SHA for the commit", - "example": "7638417db6d59f3c431d3e1f261cc637155684cd", - "type": "string" + "id": { + "description": "Unique identifier of the repository", + "example": 42, + "type": "integer" }, "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" - ] + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" }, - "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" - ] + "name": { + "description": "The name of the repository.", + "type": "string", + "example": "Team Environment" }, - "message": { - "description": "Message describing the purpose of the commit", - "example": "Fix #42", - "type": "string" + "full_name": { + "type": "string", + "example": "octocat/Hello-World" }, - "tree": { - "type": "object", - "properties": { - "sha": { - "description": "SHA for the commit", - "example": "7638417db6d59f3c431d3e1f261cc637155684cd", - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "sha", - "url" - ] + "license": { + "$ref": "#/components/schemas/nullable-license-simple" }, - "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" - ] - } + "forks": { + "type": "integer" }, - "verification": { + "permissions": { "type": "object", "properties": { - "verified": { + "admin": { "type": "boolean" }, - "reason": { - "type": "string" + "pull": { + "type": "boolean" }, - "signature": { - "type": "string", - "nullable": true + "triage": { + "type": "boolean" }, - "payload": { - "type": "string", - "nullable": true + "push": { + "type": "boolean" }, - "verified_at": { - "type": "string", - "nullable": true + "maintain": { + "type": "boolean" } }, "required": [ - "verified", - "reason", - "signature", - "payload", - "verified_at" + "admin", + "pull", + "push" ] }, - "html_url": { + "role_name": { "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" + "example": "admin" }, - "id": { - "description": "Unique identifier of the review", - "example": 42, - "type": "integer" + "owner": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "node_id": { + "private": { + "description": "Whether the repository is private or public.", + "default": false, + "type": "boolean" + }, + "html_url": { "type": "string", - "example": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA=" + "format": "uri", + "example": "https://github.com/octocat/Hello-World" }, - "user": { - "$ref": "#/components/schemas/simple-user" + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true }, - "body": { - "nullable": true, - "description": "The text of the review.", - "example": "This looks great.", - "type": "string" + "fork": { + "type": "boolean" }, - "state": { + "url": { "type": "string", - "example": "CHANGES_REQUESTED" + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" }, - "html_url": { + "archive_url": { "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80" + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" }, - "pull_request_url": { + "assignees_url": { "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/12" + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" }, - "_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" - ] + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" }, - "submitted_at": { + "branches_url": { "type": "string", - "format": "date-time" + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" }, - "updated_at": { + "collaborators_url": { "type": "string", - "nullable": true, - "format": "date-time" + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" }, - "commit_id": { - "description": "A commit SHA for the review.", - "example": "54bb654c9e6025347f57900a4a5c2313a96b8035", - "type": "string" + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" }, - "body_html": { - "type": "string" + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" }, - "body_text": { - "type": "string" + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" }, - "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" + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" }, - "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 + "contributors_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" }, - "id": { - "description": "The ID of the pull request review comment.", - "type": "integer", - "format": "int64", - "example": 1 + "deployments_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" }, - "node_id": { - "description": "The node ID of the pull request review comment.", + "downloads_url": { "type": "string", - "example": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw" + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" }, - "diff_hunk": { - "description": "The diff of the line that the comment refers to.", + "events_url": { "type": "string", - "example": "@@ -16,33 +16,40 @@ public class Connection : IConnection..." + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" }, - "path": { - "description": "The relative path of the file to which the comment applies.", - "example": "config/database.yaml", - "type": "string" + "forks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" }, - "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" + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" }, - "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" + "git_refs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" }, - "commit_id": { - "description": "The SHA of the commit to which the comment applies.", - "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e", - "type": "string" + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" }, - "original_commit_id": { - "description": "The SHA of the original commit to which the comment applies.", - "example": "9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840", - "type": "string" + "git_url": { + "type": "string", + "example": "git:github.com/octocat/Hello-World.git" }, - "in_reply_to_id": { - "description": "The comment ID to reply to.", - "example": 8, - "type": "integer" + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" }, - "user": { - "$ref": "#/components/schemas/nullable-simple-user" + "issue_events_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" }, - "body": { - "description": "The text of the comment.", - "example": "We should probably include a check for null values here.", - "type": "string" + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" }, - "created_at": { + "keys_url": { "type": "string", - "format": "date-time", - "example": "2011-04-14T16:00:49Z" + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" }, - "updated_at": { + "labels_url": { "type": "string", - "format": "date-time", - "example": "2011-04-14T16:00:49Z" + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" }, - "html_url": { - "description": "HTML URL for the pull request review comment.", + "languages_url": { "type": "string", "format": "uri", - "example": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1" + "example": "http://api.github.com/repos/octocat/Hello-World/languages" }, - "pull_request_url": { - "description": "URL for the pull request that the review comment belongs to.", + "merges_url": { "type": "string", "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1" + "example": "http://api.github.com/repos/octocat/Hello-World/merges" }, - "author_association": { - "$ref": "#/components/schemas/author-association" + "milestones_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" }, - "_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" - ] + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" }, - "start_line": { - "type": "integer", - "description": "The first line of the range for a multi-line comment.", - "example": 2, - "nullable": true + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" }, - "original_start_line": { - "type": "integer", - "description": "The first line of the range for a multi-line comment.", - "example": 2, - "nullable": true + "releases_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" }, - "start_side": { + "ssh_url": { "type": "string", - "description": "The side of the first line of the range for a multi-line comment.", - "enum": [ - "LEFT", - "RIGHT" - ], - "default": "RIGHT", - "nullable": true + "example": "git@github.com:octocat/Hello-World.git" }, - "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" + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" }, - "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" + "statuses_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" }, - "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" + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" }, - "subject_type": { - "description": "The level at which the comment is targeted, can be a diff line or a file.", + "subscription_url": { "type": "string", - "enum": [ - "line", - "file" - ] + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" }, - "reactions": { - "$ref": "#/components/schemas/reaction-rollup" + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" }, - "body_html": { + "teams_url": { "type": "string", - "example": "\"

comment body

\"" + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" }, - "body_text": { + "trees_url": { "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" + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" }, - "node_id": { - "type": "string" + "clone_url": { + "type": "string", + "example": "https://github.com/octocat/Hello-World.git" }, - "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" + "mirror_url": { + "type": "string", + "format": "uri", + "example": "git:git.example.com/octocat/Hello-World", + "nullable": true }, - "node_id": { - "type": "string" + "hooks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" }, - "commit_id": { - "type": "string" + "svn_url": { + "type": "string", + "format": "uri", + "example": "https://svn.github.com/octocat/Hello-World" }, - "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" + "homepage": { + "type": "string", + "format": "uri", + "example": "https://github.com", + "nullable": true }, - "node_id": { - "type": "string" + "language": { + "type": "string", + "nullable": true }, - "url": { - "type": "string" + "forks_count": { + "type": "integer", + "example": 9 }, - "actor": { - "$ref": "#/components/schemas/simple-user" + "stargazers_count": { + "type": "integer", + "example": 80 }, - "event": { - "type": "string" + "watchers_count": { + "type": "integer", + "example": 80 }, - "commit_id": { - "type": "string", - "nullable": true + "size": { + "type": "integer", + "example": 108 }, - "commit_url": { + "default_branch": { + "description": "The default branch of the repository.", "type": "string", - "nullable": true + "example": "master" }, - "created_at": { - "type": "string" + "open_issues_count": { + "type": "integer", + "example": 0 }, - "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" + "is_template": { + "description": "Whether this repository acts as a template that can be used to generate new repositories.", + "default": false, + "type": "boolean", + "example": true }, - "commit_id": { - "type": "string", - "nullable": true + "topics": { + "type": "array", + "items": { + "type": "string" + } }, - "commit_url": { - "type": "string", - "nullable": true + "has_issues": { + "description": "Whether issues are enabled.", + "default": true, + "type": "boolean", + "example": true }, - "created_at": { - "type": "string" + "has_projects": { + "description": "Whether projects are enabled.", + "default": true, + "type": "boolean", + "example": true }, - "performed_via_github_app": { - "$ref": "#/components/schemas/nullable-integration" + "has_wiki": { + "description": "Whether the wiki is enabled.", + "default": true, + "type": "boolean", + "example": true }, - "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" + "has_pages": { + "type": "boolean" }, - "node_id": { - "type": "string" + "has_downloads": { + "description": "Whether downloads are enabled.", + "default": true, + "type": "boolean", + "example": true }, - "url": { - "type": "string" + "archived": { + "description": "Whether the repository is archived.", + "default": false, + "type": "boolean" }, - "actor": { - "$ref": "#/components/schemas/simple-user" + "disabled": { + "type": "boolean", + "description": "Returns whether or not this repository disabled." }, - "event": { + "visibility": { + "description": "The repository visibility: public, private, or internal.", + "default": "public", "type": "string" }, - "commit_id": { + "pushed_at": { "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", "nullable": true }, - "commit_url": { + "created_at": { "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", "nullable": true }, - "created_at": { - "type": "string" - }, - "performed_via_github_app": { - "$ref": "#/components/schemas/nullable-integration" - }, - "state_reason": { + "updated_at": { "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z", "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" + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "default": true, + "type": "boolean", + "example": true }, - { - "$ref": "#/components/schemas/moved-column-in-project-issue-event" + "temp_clone_token": { + "type": "string" }, - { - "$ref": "#/components/schemas/removed-from-project-issue-event" + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "default": true, + "type": "boolean", + "example": true }, - { - "$ref": "#/components/schemas/converted-note-to-issue-issue-event" + "allow_auto_merge": { + "description": "Whether to allow Auto-merge to be used on pull requests.", + "default": false, + "type": "boolean", + "example": false }, - { - "$ref": "#/components/schemas/timeline-comment-event" + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "default": false, + "type": "boolean", + "example": false }, - { - "$ref": "#/components/schemas/timeline-cross-referenced-event" + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "default": true, + "type": "boolean", + "example": true }, - { - "$ref": "#/components/schemas/timeline-committed-event" + "allow_forking": { + "description": "Whether to allow forking this repo", + "default": false, + "type": "boolean", + "example": false }, - { - "$ref": "#/components/schemas/timeline-reviewed-event" + "web_commit_signoff_required": { + "description": "Whether to require contributors to sign off on web-based commits", + "default": false, + "type": "boolean", + "example": false }, - { - "$ref": "#/components/schemas/timeline-line-commented-event" + "subscribers_count": { + "type": "integer" }, - { - "$ref": "#/components/schemas/timeline-commit-commented-event" + "network_count": { + "type": "integer" }, - { - "$ref": "#/components/schemas/timeline-assigned-issue-event" + "open_issues": { + "type": "integer" }, - { - "$ref": "#/components/schemas/timeline-unassigned-issue-event" + "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" + ], + "x-github-breaking-changes": [ { - "$ref": "#/components/schemas/state-change-issue-event" + "changeset": "remove_has_downloads", + "patch": { + "properties": { + "has_downloads": null + }, + "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", + "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" + ] + }, + "version": "2026-03-10" } ] }, - "deploy-key": { - "title": "Deploy Key", - "description": "An SSH key granting access to a single repository.", + "rate-limit": { + "title": "Rate Limit", "type": "object", "properties": { - "id": { + "limit": { "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 + "remaining": { + "type": "integer" }, - "last_used": { - "nullable": true, - "type": "string", - "format": "date-time" + "reset": { + "type": "integer" }, - "enabled": { - "type": "boolean" + "used": { + "type": "integer" } }, "required": [ - "id", - "key", - "url", - "title", - "verified", - "created_at", - "read_only" + "limit", + "remaining", + "reset", + "used" ] }, - "language": { - "title": "Language", - "description": "Language", - "type": "object", - "additionalProperties": { - "type": "integer" - } - }, - "license-content": { - "title": "License Content", - "description": "License Content", + "rate-limit-overview": { + "title": "Rate Limit Overview", + "description": "Rate Limit Overview", "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": { + "resources": { "type": "object", "properties": { - "git": { - "type": "string", - "format": "uri", - "nullable": true + "core": { + "$ref": "#/components/schemas/rate-limit" }, - "html": { - "type": "string", - "format": "uri", - "nullable": true + "graphql": { + "$ref": "#/components/schemas/rate-limit" }, - "self": { - "type": "string", - "format": "uri" + "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" + }, + "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" + }, + "copilot_usage_records": { + "$ref": "#/components/schemas/rate-limit" } }, "required": [ - "git", - "html", - "self" + "core", + "search" ] }, - "license": { - "$ref": "#/components/schemas/nullable-license-simple" + "rate": { + "$ref": "#/components/schemas/rate-limit" } }, "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" + "rate", + "resources" + ], + "x-github-breaking-changes": [ + { + "changeset": "remove_rate_limit_rate", + "patch": { + "properties": { + "rate": null + }, + "required": [ + "resources" + ] + }, + "version": "2026-03-10" } - } + ] }, - "milestone": { - "title": "Milestone", - "description": "A collection of related issues and pull requests.", + "artifact": { + "title": "Artifact", + "description": "An artifact", "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 + "example": 5 }, "node_id": { "type": "string", - "example": "MDk6TWlsZXN0b25lMTAwMjYwNA==" - }, - "number": { - "description": "The number of the milestone.", - "type": "integer", - "example": 42 + "example": "MDEwOkNoZWNrU3VpdGU1" }, - "state": { - "description": "The state of the milestone.", - "example": "open", + "name": { + "description": "The name of the artifact.", "type": "string", - "enum": [ - "open", - "closed" - ], - "default": "open" + "example": "AdventureWorks.Framework" }, - "title": { - "description": "The title of the milestone.", - "example": "v1.0", - "type": "string" + "size_in_bytes": { + "description": "The size in bytes of the artifact.", + "type": "integer", + "example": 12345 }, - "description": { + "url": { "type": "string", - "example": "Tracking milestone for version 1.0", - "nullable": true - }, - "creator": { - "$ref": "#/components/schemas/nullable-simple-user" + "example": "https://api.github.com/repos/github/hello-world/actions/artifacts/5" }, - "open_issues": { - "type": "integer", - "example": 4 + "archive_download_url": { + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/artifacts/5/zip" }, - "closed_issues": { - "type": "integer", - "example": 8 + "expired": { + "description": "Whether or not the artifact has expired.", + "type": "boolean" }, "created_at": { "type": "string", "format": "date-time", - "example": "2011-04-10T20:09:31Z" + "nullable": true }, - "updated_at": { + "expires_at": { "type": "string", "format": "date-time", - "example": "2014-03-03T18:58:10Z" + "nullable": true }, - "closed_at": { + "updated_at": { "type": "string", "format": "date-time", - "example": "2013-02-12T13:22:01Z", "nullable": true }, - "due_on": { + "digest": { "type": "string", - "format": "date-time", - "example": "2012-10-09T23:39:01Z", - "nullable": true + "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": [ - "closed_issues", - "creator", - "description", - "due_on", - "closed_at", "id", "node_id", - "labels_url", - "html_url", - "number", - "open_issues", - "state", - "title", + "name", + "size_in_bytes", "url", + "archive_download_url", + "expired", "created_at", + "expires_at", "updated_at" ] }, - "pages-source-hash": { - "title": "Pages Source Hash", + "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": { - "branch": { - "type": "string" + "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 }, - "path": { - "type": "string" + "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": [ - "branch", - "path" + "total_count", + "actions_caches" ] }, - "pages-https-certificate": { - "title": "Pages Https Certificate", + "concurrency-group-list": { + "title": "Concurrency Group List", + "description": "A list of active concurrency groups for a repository.", "type": "object", + "required": [ + "total_count", + "concurrency_groups" + ], "properties": { - "state": { + "total_count": { + "type": "integer" + }, + "concurrency_groups": { + "type": "array", + "items": { + "type": "object", + "required": [ + "group_name", + "group_url", + "last_acquired_at" + ], + "properties": { + "group_name": { + "type": "string", + "description": "The name of the concurrency group." + }, + "group_url": { + "type": "string", + "format": "uri", + "description": "API URL for this concurrency group." + }, + "last_acquired_at": { + "type": "string", + "format": "date-time", + "nullable": true + } + } + } + } + } + }, + "concurrency-group": { + "title": "Concurrency Group", + "description": "A concurrency group with the workflow runs and jobs that are either currently holding\nor waiting for the concurrency group lease.", + "type": "object", + "required": [ + "group_name", + "group_url", + "total_count", + "group_members" + ], + "properties": { + "group_name": { "type": "string", - "enum": [ - "new", - "authorization_created", - "authorization_pending", - "authorized", - "authorization_revoked", - "issued", - "uploaded", - "approved", - "errored", - "bad_authz", - "destroy_pending", - "dns_changed" - ], - "example": "approved" + "description": "The name of the concurrency group." }, - "description": { + "group_url": { "type": "string", - "example": "Certificate is approved" + "format": "uri", + "description": "API URL for this concurrency group." }, - "domains": { + "total_count": { + "type": "integer" + }, + "group_members": { "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" + "type": "object", + "required": [ + "run_id", + "run_name", + "run_url", + "run_html_url", + "status" + ], + "properties": { + "run_id": { + "type": "integer", + "description": "The ID of the workflow run." + }, + "run_name": { + "type": "string", + "description": "The name of the workflow run." + }, + "run_url": { + "type": "string", + "format": "uri", + "description": "API URL for the workflow run.", + "nullable": true + }, + "run_html_url": { + "type": "string", + "format": "uri", + "description": "Web URL for the workflow run.", + "nullable": true + }, + "job_id": { + "type": "integer", + "description": "The ID of the job, when the item represents a job-level or reusable-workflow-level lease." + }, + "job_name": { + "type": "string", + "description": "The display name of the job, when the item represents a job-level or reusable-workflow-level lease." + }, + "job_url": { + "type": "string", + "format": "uri", + "description": "API URL for the job.", + "nullable": true + }, + "job_html_url": { + "type": "string", + "format": "uri", + "description": "Web URL for the job.", + "nullable": true + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "pending" + ] + } + } + } } - }, - "required": [ - "state", - "description", - "domains" - ] + } }, - "page": { - "title": "GitHub Pages", - "description": "The configuration for GitHub Pages for a repository.", + "job": { + "title": "Job", + "description": "Information of a job execution in a workflow run", "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" + "id": { + "description": "The id of the job.", + "example": 21, + "type": "integer", + "format": "int64" }, - "status": { - "type": "string", - "description": "The status of the most recent build of the Page.", - "example": "built", - "enum": [ - "built", - "building", - "errored" - ], - "nullable": true + "run_id": { + "description": "The id of the associated workflow run.", + "example": 5, + "type": "integer", + "format": "int64" }, - "cname": { - "description": "The Pages site's custom domain", - "example": "example.com", + "run_url": { "type": "string", - "nullable": true + "example": "https://api.github.com/repos/github/hello-world/actions/runs/5" }, - "protected_domain_state": { - "type": "string", - "description": "The state if the domain is verified", - "example": "pending", - "nullable": true, - "enum": [ - "pending", - "verified", - "unverified" - ] + "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 }, - "pending_domain_unverified_at": { + "node_id": { "type": "string", - "description": "The timestamp when a pending domain becomes unverified.", - "nullable": true, - "format": "date-time" + "example": "MDg6Q2hlY2tSdW40" }, - "custom_404": { - "type": "boolean", - "description": "Whether the Page has a custom 404 page.", - "example": false, - "default": false + "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", - "description": "The web address the Page can be accessed from.", - "format": "uri", - "example": "https://example.com" + "example": "https://github.com/github/hello-world/runs/4", + "nullable": true }, - "build_type": { + "status": { + "description": "The phase of the lifecycle that the job is currently in.", + "example": "queued", "type": "string", - "description": "The process in which the Page will be built.", - "example": "legacy", - "nullable": true, "enum": [ - "legacy", - "workflow" + "queued", + "in_progress", + "completed", + "waiting", + "requested", + "pending" ] }, - "source": { - "$ref": "#/components/schemas/pages-source-hash" + "conclusion": { + "description": "The outcome of the job.", + "example": "success", + "type": "string", + "nullable": true, + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "skipped", + "timed_out", + "action_required" + ] }, - "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 + "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" }, - "https_certificate": { - "$ref": "#/components/schemas/pages-https-certificate" + "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" }, - "https_enforced": { - "type": "boolean", - "description": "Whether https is enabled on the domain", - "example": 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 + }, + "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", - "cname", - "custom_404", - "public" + "conclusion", + "started_at", + "completed_at", + "check_run_url", + "labels", + "runner_id", + "runner_name", + "runner_group_id", + "runner_group_name", + "created_at" ] }, - "page-build": { - "title": "Page Build", - "description": "Page Build", + "oidc-custom-sub-repo": { + "title": "Actions OIDC subject customization for a repository", + "description": "Actions OIDC subject customization for a repository", "type": "object", "properties": { - "url": { - "type": "string", - "format": "uri" - }, - "status": { - "type": "string" + "use_default": { + "description": "Whether to use the default template or not. If `true`, the `include_claim_keys` field is ignored.", + "type": "boolean" }, - "error": { - "type": "object", - "properties": { - "message": { - "type": "string", - "nullable": true - } - }, - "required": [ - "message" - ] + "include_claim_keys": { + "description": "Array of unique strings. Each claim key can only contain alphanumeric characters and underscores.", + "type": "array", + "items": { + "type": "string" + } }, - "pusher": { - "$ref": "#/components/schemas/nullable-simple-user" + "use_immutable_subject": { + "description": "Whether the repository has opted in to the immutable OIDC subject claim format. When `true`, OIDC tokens will use a stable, repository-ID-based `sub` claim. If not set at the repository level, falls back to the organization-level setting.", + "type": "boolean" }, - "commit": { + "sub_claim_prefix": { + "description": "The current `sub` claim prefix for this repository.", + "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" - }, - "duration": { - "type": "integer" }, "created_at": { "type": "string", @@ -139568,2281 +141805,1746 @@ } }, "required": [ - "url", - "status", - "error", - "pusher", - "commit", - "duration", + "name", "created_at", "updated_at" ] }, - "page-build-status": { - "title": "Page Build Status", - "description": "Page Build Status", + "actions-variable": { + "title": "Actions Variable", "type": "object", "properties": { - "url": { + "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": "uri", - "example": "https://api.github.com/repos/github/hello-world/pages/builds/latest" + "format": "date-time", + "example": "2019-01-24T22:45:36.000Z" }, - "status": { + "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", - "example": "queued" + "format": "date-time", + "example": "2019-01-24T22:45:36.000Z" } }, "required": [ - "url", - "status" + "name", + "value", + "created_at", + "updated_at" ] }, - "page-deployment": { - "title": "GitHub Pages", - "description": "The GitHub Pages deployment status.", + "actions-enabled": { + "type": "boolean", + "description": "Whether GitHub Actions is enabled on the repository." + }, + "actions-repository-permissions": { "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." + "enabled": { + "$ref": "#/components/schemas/actions-enabled" }, - "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" + "allowed_actions": { + "$ref": "#/components/schemas/allowed-actions" }, - "page_url": { - "type": "string", - "description": "The URI to the deployed GitHub Pages.", - "format": "uri", - "example": "hello-world.github.io" + "selected_actions_url": { + "$ref": "#/components/schemas/selected-actions-url" }, - "preview_url": { - "type": "string", - "description": "The URI to the deployed GitHub Pages preview.", - "format": "uri", - "example": "monalisa-1231a2312sa32-23sda74.drafts.github.io" + "sha_pinning_required": { + "$ref": "#/components/schemas/sha-pinning-required" } }, "required": [ - "id", - "status_url", - "page_url" + "enabled" ] }, - "pages-deployment-status": { - "title": "GitHub Pages deployment status", + "actions-workflow-access-to-repository": { "type": "object", "properties": { - "status": { + "access_level": { "type": "string", - "description": "The current status of the deployment.", + "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": [ - "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" + "none", + "user", + "organization" ] } - } + }, + "required": [ + "access_level" + ] }, - "pages-health-check": { - "title": "Pages Health Check Status", - "description": "Pages Health Check Status", + "referenced-workflow": { + "title": "Referenced workflow", + "description": "A workflow referenced/reused by the initial caller workflow", "type": "object", "properties": { - "domain": { + "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": { - "host": { - "type": "string" - }, - "uri": { - "type": "string" - }, - "nameservers": { + "name": { + "description": "Name of the commit's author", + "example": "Monalisa Octocat", "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": { + "email": { + "description": "Git email address of the commit's author", + "example": "monalisa.octocat@example.com", "type": "string", - "nullable": true + "format": "email" } - } + }, + "required": [ + "name", + "email" + ], + "nullable": true }, - "alt_domain": { + "committer": { "type": "object", - "nullable": true, + "description": "Information about the Git committer", "properties": { - "host": { - "type": "string" - }, - "uri": { - "type": "string" - }, - "nameservers": { + "name": { + "description": "Name of the commit's committer", + "example": "Monalisa Octocat", "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": { + "email": { + "description": "Git email address of the commit's committer", + "example": "monalisa.octocat@example.com", "type": "string", - "nullable": true + "format": "email" } - } + }, + "required": [ + "name", + "email" + ], + "nullable": true } - } + }, + "required": [ + "id", + "tree_id", + "message", + "timestamp", + "author", + "committer" + ], + "nullable": true }, - "pull-request": { + "workflow-run": { + "title": "Workflow Run", + "description": "An invocation of a workflow", "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" + "description": "The ID of the workflow run.", + "example": 5 }, - "commits_url": { + "name": { "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits" + "description": "The name of the workflow run.", + "nullable": true, + "example": "Build" }, - "review_comments_url": { + "node_id": { "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments" + "example": "MDEwOkNoZWNrU3VpdGU1" }, - "review_comment_url": { - "type": "string", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments{/number}" + "check_suite_id": { + "type": "integer", + "format": "int64", + "description": "The ID of the associated check suite.", + "example": 42 }, - "comments_url": { + "check_suite_node_id": { "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments" + "description": "The node ID of the associated check suite.", + "example": "MDEwOkNoZWNrU3VpdGU0Mg==" }, - "statuses_url": { + "head_branch": { "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" + "nullable": true, + "example": "master" }, - "state": { - "description": "State of this Pull Request. Either `open` or `closed`.", - "enum": [ - "open", - "closed" - ], - "example": "open", + "head_sha": { + "description": "The SHA of the head commit that points to the version of the workflow being run.", + "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", "type": "string" }, - "locked": { - "type": "boolean", - "example": true - }, - "title": { - "description": "The title of the pull request.", - "example": "Amazing new feature", + "path": { + "description": "The full path of the workflow", + "example": "octocat/octo-repo/.github/workflows/ci.yml@main", "type": "string" }, - "user": { - "$ref": "#/components/schemas/simple-user" + "run_number": { + "type": "integer", + "description": "The auto incrementing run number for the workflow run.", + "example": 106 }, - "body": { - "type": "string", - "example": "Please pull these awesome changes", - "nullable": true + "run_attempt": { + "type": "integer", + "description": "Attempt number of the run, 1 for first attempt and higher if the workflow was re-run.", + "example": 1 }, - "labels": { + "referenced_workflows": { "type": "array", + "nullable": true, "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" - ] + "$ref": "#/components/schemas/referenced-workflow" } }, - "milestone": { - "$ref": "#/components/schemas/nullable-milestone" - }, - "active_lock_reason": { + "event": { "type": "string", - "example": "too heated", - "nullable": true + "example": "push" }, - "created_at": { + "status": { "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z" + "nullable": true, + "example": "completed" }, - "updated_at": { + "conclusion": { "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z" + "nullable": true, + "example": "neutral" }, - "closed_at": { - "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z", - "nullable": true + "workflow_id": { + "type": "integer", + "description": "The ID of the parent workflow.", + "example": 5 }, - "merged_at": { + "url": { "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z", - "nullable": true + "description": "The URL to the workflow run.", + "example": "https://api.github.com/repos/github/hello-world/actions/runs/5" }, - "merge_commit_sha": { + "html_url": { "type": "string", - "example": "e5bd3914e2e596debea16f433f57875b5b90bcd6", - "nullable": true - }, - "assignee": { - "$ref": "#/components/schemas/nullable-simple-user" + "example": "https://github.com/github/hello-world/suites/4" }, - "assignees": { + "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/simple-user" + "$ref": "#/components/schemas/pull-request-minimal" } }, - "requested_reviewers": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "created_at": { + "type": "string", + "format": "date-time" }, - "requested_teams": { - "type": "array", - "items": { - "$ref": "#/components/schemas/team-simple" - } + "updated_at": { + "type": "string", + "format": "date-time" }, - "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" - ] + "actor": { + "$ref": "#/components/schemas/simple-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" - ] + "triggering_actor": { + "$ref": "#/components/schemas/simple-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" - ] + "run_started_at": { + "type": "string", + "format": "date-time", + "description": "The start time of the latest run. Resets on re-run." }, - "author_association": { - "$ref": "#/components/schemas/author-association" + "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" }, - "auto_merge": { - "$ref": "#/components/schemas/auto-merge" + "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" }, - "draft": { - "description": "Indicates whether or not the pull request is a draft.", - "example": false, - "type": "boolean" + "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" }, - "merged": { - "type": "boolean" + "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" }, - "mergeable": { - "type": "boolean", - "example": true, - "nullable": true + "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" }, - "rebaseable": { - "type": "boolean", - "example": true, - "nullable": true + "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" }, - "mergeable_state": { + "previous_attempt_url": { + "nullable": true, + "description": "The URL to the previous attempted run of this workflow, if one exists.", "type": "string", - "example": "clean" + "example": "https://api.github.com/repos/github/hello-world/actions/runs/5/attempts/3" }, - "merged_by": { - "$ref": "#/components/schemas/nullable-simple-user" + "workflow_url": { + "description": "The URL to the workflow.", + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/actions/workflows/main.yaml" }, - "comments": { - "type": "integer", - "example": 10 + "head_commit": { + "$ref": "#/components/schemas/nullable-simple-commit" }, - "review_comments": { - "type": "integer", - "example": 0 + "repository": { + "$ref": "#/components/schemas/minimal-repository" }, - "maintainer_can_modify": { - "description": "Indicates whether maintainers can modify the pull request.", - "example": true, - "type": "boolean" + "head_repository": { + "$ref": "#/components/schemas/minimal-repository" }, - "commits": { + "head_repository_id": { "type": "integer", - "example": 3 + "example": 5 }, - "additions": { - "type": "integer", - "example": 100 - }, - "deletions": { - "type": "integer", - "example": 3 - }, - "changed_files": { - "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": [ - "_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", + "head_branch", + "run_number", + "display_title", + "event", + "status", + "conclusion", + "head_sha", + "path", + "workflow_id", "url", - "user", - "author_association", - "auto_merge", - "additions", - "changed_files", - "comments", - "commits", - "deletions", - "mergeable", - "mergeable_state", - "merged", - "maintainer_can_modify", - "merged_by", - "review_comments" - ], - "x-github-breaking-changes": [ - { - "changeset": "remove_pull_request_merge_commit_sha", - "patch": { - "properties": { - "merge_commit_sha": null - }, - "required": [ - "_links", - "assignee", - "labels", - "base", - "body", - "closed_at", - "comments_url", - "commits_url", - "created_at", - "diff_url", - "head", - "html_url", - "id", - "node_id", - "issue_url", - "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" - ] - }, - "version": "2026-03-10" - }, - { - "changeset": "remove_singular_assignee_from_issues_and_pull_requests", - "patch": { - "properties": { - "assignee": null - }, - "required": [ - "_links", - "labels", - "base", - "body", - "closed_at", - "comments_url", - "commits_url", - "created_at", - "diff_url", - "head", - "html_url", - "id", - "node_id", - "issue_url", - "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" - ] - }, - "version": "2026-03-10" - } + "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" ] }, - "pull-request-merge-result": { - "title": "Pull Request Merge Result", - "description": "Pull Request Merge Result", + "environment-approvals": { + "title": "Environment Approval", + "description": "An entry in the reviews log for environment deployments", "type": "object", "properties": { - "sha": { + "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" }, - "merged": { - "type": "boolean" + "user": { + "$ref": "#/components/schemas/simple-user" }, - "message": { - "type": "string" + "comment": { + "type": "string", + "description": "The comment submitted with the deployment review", + "example": "Ship it!" } }, "required": [ - "merged", - "message", - "sha" + "environments", + "state", + "user", + "comment" ] }, - "pull-request-review-request": { - "title": "Pull Request Review Request", - "description": "Pull Request Review Request", + "concurrency-group-run-list": { + "title": "Concurrency Group Run List", + "description": "A list of concurrency groups associated with a workflow run.", "type": "object", + "required": [ + "total_count", + "concurrency_groups" + ], "properties": { - "users": { - "type": "array", - "items": { - "$ref": "#/components/schemas/simple-user" - } + "total_count": { + "type": "integer", + "description": "The total number of concurrency groups this workflow run participates in,\nderived from the run's configuration. This count is not filtered by\nwhether the run currently holds or is waiting in each group, so it can\ninclude groups whose `group_members` array is empty (for example, when\nthe run has already released its lease in that group)." }, - "teams": { + "concurrency_groups": { "type": "array", "items": { - "$ref": "#/components/schemas/team" + "type": "object", + "required": [ + "group_name", + "group_url", + "group_members" + ], + "properties": { + "group_name": { + "type": "string", + "description": "The name of the concurrency group." + }, + "group_url": { + "type": "string", + "format": "uri", + "description": "API URL for this concurrency group. May return 404 if the group\nhas no active items at the time it is requested, since the\nget-by-name endpoint reports the live repo-wide state of a group\nwhile this endpoint lists groups associated with a run by\nconfiguration." + }, + "group_members": { + "type": "array", + "description": "Items belonging to this workflow run that are either currently holding or\nwaiting for the concurrency group lease. May be empty if the run no\nlonger has any active or queued items in this group.", + "items": { + "type": "object", + "required": [ + "run_id", + "run_name", + "run_url", + "run_html_url", + "status", + "position", + "position_url" + ], + "properties": { + "run_id": { + "type": "integer", + "description": "The ID of the workflow run." + }, + "run_name": { + "type": "string", + "description": "The name of the workflow run." + }, + "run_url": { + "type": "string", + "format": "uri", + "description": "API URL for the workflow run.", + "nullable": true + }, + "run_html_url": { + "type": "string", + "format": "uri", + "description": "Web URL for the workflow run.", + "nullable": true + }, + "position": { + "type": "integer", + "description": "Queue position. 0 means the item holds the concurrency lease (in_progress), 1 or higher means queued (pending)." + }, + "position_url": { + "type": "string", + "format": "uri", + "description": "API URL to get items ahead of this item in the concurrency group." + }, + "job_id": { + "type": "integer", + "description": "The ID of the job, when the item represents a job-level or reusable-workflow-level lease.", + "nullable": true + }, + "job_name": { + "type": "string", + "description": "The display name of the job, when the item represents a job-level or reusable-workflow-level lease.", + "nullable": true + }, + "job_url": { + "type": "string", + "format": "uri", + "description": "API URL for the job.", + "nullable": true + }, + "job_html_url": { + "type": "string", + "format": "uri", + "description": "Web URL for the job.", + "nullable": true + }, + "status": { + "type": "string", + "enum": [ + "in_progress", + "pending" + ] + } + } + } + } + } } } + } + }, + "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": [ - "users", - "teams" + "environment_name", + "comment" ] }, - "pull-request-review": { - "title": "Pull Request Review", - "description": "Pull Request Reviews are reviews on pull requests.", + "review-custom-gates-state-required": { "type": "object", "properties": { - "id": { - "description": "Unique identifier of the review", - "example": 42, - "type": "integer", - "format": "int64" - }, - "node_id": { + "environment_name": { "type": "string", - "example": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA=" - }, - "user": { - "$ref": "#/components/schemas/nullable-simple-user" - }, - "body": { - "description": "The text of the review.", - "example": "This looks great.", - "type": "string" + "description": "The name of the environment to approve or reject." }, "state": { "type": "string", - "example": "CHANGES_REQUESTED" - }, - "html_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80" + "description": "Whether to approve or reject deployment to the specified environments.", + "enum": [ + "approved", + "rejected" + ] }, - "pull_request_url": { + "comment": { "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/12" - }, - "_links": { + "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": { - "html": { - "type": "object", - "properties": { - "href": { - "type": "string" - } - }, - "required": [ - "href" - ] + "id": { + "description": "The id of the environment.", + "type": "integer", + "format": "int64", + "example": 56780428 }, - "pull_request": { - "type": "object", - "properties": { - "href": { - "type": "string" - } - }, - "required": [ - "href" - ] + "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" } - }, - "required": [ - "html", - "pull_request" - ] + } }, - "submitted_at": { - "type": "string", - "format": "date-time" + "wait_timer": { + "type": "integer", + "description": "The set duration of the wait timer", + "example": 30 }, - "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", + "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 }, - "body_html": { - "type": "string" - }, - "body_text": { - "type": "string" + "current_user_can_approve": { + "description": "Whether the currently authenticated user can approve the deployment", + "type": "boolean", + "example": true }, - "author_association": { - "$ref": "#/components/schemas/author-association" + "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", - "user", - "body", - "state", - "commit_id", - "html_url", - "pull_request_url", - "_links", - "author_association" + "environment", + "wait_timer", + "wait_timer_started_at", + "current_user_can_approve", + "reviewers" ] }, - "review-comment": { - "title": "Legacy Review Comment", - "description": "Legacy Review Comment", + "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/Hello-World/pulls/comments/1" - }, - "pull_request_review_id": { - "type": "integer", - "format": "int64", - "example": 42, - "nullable": true + "example": "https://api.github.com/repos/octocat/example/deployments/1" }, "id": { + "description": "Unique identifier of the deployment", "type": "integer", "format": "int64", - "example": 10 + "example": 42 }, "node_id": { "type": "string", - "example": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw" + "example": "MDEwOkRlcGxveW1lbnQx" }, - "diff_hunk": { + "sha": { "type": "string", - "example": "@@ -16,33 +16,40 @@ public class Connection : IConnection..." + "example": "a84d88e7554fc1fa21bcbc4efae3c782a70d2b9d" }, - "path": { - "type": "string", - "example": "file1.txt" + "ref": { + "description": "The ref to deploy. This can be a branch, tag, or sha.", + "example": "topic-branch", + "type": "string" }, - "position": { - "type": "integer", - "example": 1, - "nullable": true + "task": { + "description": "Parameter to specify a task to execute", + "example": "deploy", + "type": "string" }, - "original_position": { - "type": "integer", - "example": 4 + "payload": { + "oneOf": [ + { + "type": "object", + "additionalProperties": true + }, + { + "type": "string" + } + ] }, - "commit_id": { + "original_environment": { "type": "string", - "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + "example": "staging" }, - "original_commit_id": { - "type": "string", - "example": "9c48853fa3dc5c1c3d6f1f1cd1f2743e72652840" + "environment": { + "description": "Name for the target deployment environment.", + "example": "production", + "type": "string" }, - "in_reply_to_id": { - "type": "integer", - "example": 8 + "description": { + "type": "string", + "example": "Deploy request from hubot", + "nullable": true }, - "user": { + "creator": { "$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" + "example": "2012-07-20T01:19:13Z" }, "updated_at": { "type": "string", "format": "date-time", - "example": "2011-04-14T16:00:49Z" + "example": "2012-07-20T01:19:13Z" }, - "html_url": { + "statuses_url": { "type": "string", "format": "uri", - "example": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1" + "example": "https://api.github.com/repos/octocat/example/deployments/1/statuses" }, - "pull_request_url": { + "repository_url": { "type": "string", "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1" + "example": "https://api.github.com/repos/octocat/example" }, - "author_association": { - "$ref": "#/components/schemas/author-association" + "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" }, - "_links": { + "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": { - "self": { - "$ref": "#/components/schemas/link" + "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" + } + } + } + } + } }, - "html": { - "$ref": "#/components/schemas/link" + "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" + } + } + } + } + } }, - "pull_request": { - "$ref": "#/components/schemas/link" + "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" + } + } + } + } + } } - }, - "required": [ - "self", - "html", - "pull_request" - ] + } }, - "body_text": { - "type": "string" + "run_duration_ms": { + "type": "integer" + } + }, + "required": [ + "billable" + ] + }, + "workflow": { + "title": "Workflow", + "description": "A GitHub Actions workflow", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 5 }, - "body_html": { - "type": "string" + "node_id": { + "type": "string", + "example": "MDg6V29ya2Zsb3cxMg==" }, - "reactions": { - "$ref": "#/components/schemas/reaction-rollup" + "name": { + "type": "string", + "example": "CI" }, - "side": { - "description": "The side of the first line of the range for a multi-line comment.", - "enum": [ - "LEFT", - "RIGHT" - ], - "default": "RIGHT", - "type": "string" + "path": { + "type": "string", + "example": "ruby.yaml" }, - "start_side": { + "state": { "type": "string", - "description": "The side of the first line of the range for a multi-line comment.", + "example": "active", "enum": [ - "LEFT", - "RIGHT" - ], - "default": "RIGHT", - "nullable": true + "active", + "deleted", + "disabled_fork", + "disabled_inactivity", + "disabled_manually" + ] }, - "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" + "created_at": { + "type": "string", + "format": "date-time", + "example": "2019-12-06T14:20:20.000Z" }, - "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" + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2019-12-06T14:20:20.000Z" }, - "start_line": { - "description": "The first line of the range for a multi-line comment.", - "example": 2, - "type": "integer", - "nullable": true + "url": { + "type": "string", + "example": "https://api.github.com/repos/actions/setup-ruby/workflows/5" }, - "original_start_line": { - "description": "The original first line of the range for a multi-line comment.", - "example": 2, - "type": "integer", - "nullable": true + "html_url": { + "type": "string", + "example": "https://github.com/actions/setup-ruby/blob/master/.github/workflows/ruby.yaml" }, - "subject_type": { - "description": "The level at which the comment is targeted, can be a diff line or a file.", + "badge_url": { "type": "string", - "enum": [ - "line", - "file" - ] + "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", - "url", - "body", - "diff_hunk", + "name", "path", - "position", - "original_position", - "commit_id", - "original_commit_id", - "user", - "pull_request_review_id", + "state", + "url", "html_url", - "pull_request_url", - "_links", - "author_association", + "badge_url", "created_at", "updated_at" ] }, - "release-notes-content": { - "title": "Generated Release Notes Content", - "description": "Generated name and body describing a release", + "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": { - "name": { - "description": "The generated name of the release", + "workflow_run_id": { + "$ref": "#/components/schemas/workflow-run-id" + }, + "run_url": { "type": "string", - "example": "Release v1.0.0 is now available!" + "format": "uri", + "description": "The URL to the workflow run." }, - "body": { - "description": "The generated body describing the contents of the release supporting markdown formatting", - "type": "string" + "html_url": { + "type": "string", + "format": "uri" } }, "required": [ - "name", - "body" + "workflow_run_id", + "run_url", + "html_url" ] }, - "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.", + "workflow-usage": { + "title": "Workflow Usage", + "description": "Workflow Usage", + "type": "object", "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." + "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" + ] }, - "repository-rule-detailed": { - "title": "Repository Rule", + "activity": { + "title": "Activity", + "description": "Activity", "type": "object", - "description": "A repository rule with ruleset details.", - "oneOf": [ - { - "allOf": [ - { - "$ref": "#/components/schemas/repository-rule-creation" - }, - { - "$ref": "#/components/schemas/repository-rule-ruleset-info" - } - ] + "properties": { + "id": { + "type": "integer", + "example": 1296269 }, - { - "allOf": [ - { - "$ref": "#/components/schemas/repository-rule-update" - }, - { - "$ref": "#/components/schemas/repository-rule-ruleset-info" - } - ] + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" }, - { - "allOf": [ - { - "$ref": "#/components/schemas/repository-rule-deletion" - }, - { - "$ref": "#/components/schemas/repository-rule-ruleset-info" - } - ] + "before": { + "type": "string", + "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "description": "The SHA of the commit before the activity." }, - { - "allOf": [ - { - "$ref": "#/components/schemas/repository-rule-required-linear-history" - }, - { - "$ref": "#/components/schemas/repository-rule-ruleset-info" - } - ] + "after": { + "type": "string", + "example": "827efc6d56897b048c772eb4087f854f46256132", + "description": "The SHA of the commit after the activity." }, - { - "allOf": [ - { - "$ref": "#/components/schemas/repository-rule-merge-queue" - }, - { - "$ref": "#/components/schemas/repository-rule-ruleset-info" - } - ] + "ref": { + "type": "string", + "example": "refs/heads/main", + "description": "The full Git reference, formatted as `refs/heads/`." }, - { - "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).\"" - }, - "provider": { - "type": "string", - "description": "The provider of the secret that was detected.", - "nullable": true - }, - "provider_slug": { - "type": "string", - "description": "The slug identifier for the provider of the secret that was detected. Use this value for filtering by provider with the `providers` or `exclude_providers` parameters.", - "nullable": true - }, - "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": { + "timestamp": { "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" - }, - "closure_request_comment": { - "type": "string", - "description": "An optional comment from the closure request author.", - "nullable": true - }, - "closure_request_reviewer_comment": { - "type": "string", - "description": "An optional comment from the closure request reviewer.", - "nullable": true + "example": "2011-01-26T19:06:43Z", + "description": "The time when the activity occurred." }, - "closure_request_reviewer": { - "$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": { + "activity_type": { "type": "string", + "example": "force_push", "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" + "push", + "force_push", + "branch_deletion", + "branch_creation", + "pr_merge", + "merge_queue_merge" ], - "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" + "description": "The type of the activity that was performed." }, - "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" - } - ] + "actor": { + "$ref": "#/components/schemas/nullable-simple-user" } - } - }, - "secret-scanning-push-protection-bypass-reason": { - "description": "The reason for bypassing push protection.", - "type": "string", - "enum": [ - "false_positive", - "used_in_tests", - "will_fix_later" + }, + "required": [ + "id", + "node_id", + "before", + "after", + "ref", + "timestamp", + "activity_type", + "actor" ] }, - "secret-scanning-push-protection-bypass": { + "autolink": { + "title": "Autolink reference", + "description": "An autolink reference.", "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 + "id": { + "type": "integer", + "example": 3 }, - "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" + "key_prefix": { + "description": "The prefix of a key that is linkified.", + "example": "TICKET-", + "type": "string" }, - "status": { - "type": "string", - "description": "The state of the scan. Either \"completed\", \"running\", or \"pending\"" + "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" }, - "completed_at": { - "type": "string", - "format": "date-time", - "description": "The time that the scan was completed. Empty if the scan is running", - "nullable": true + "is_alphanumeric": { + "description": "Whether this autolink reference matches alphanumeric characters. If false, this autolink reference only matches numeric characters.", + "example": true, + "type": "boolean" }, - "started_at": { + "updated_at": { "type": "string", - "format": "date-time", - "description": "The time that the scan was started. Empty if the scan is pending", - "nullable": true + "nullable": true, + "format": "date-time" } - } + }, + "required": [ + "id", + "key_prefix", + "url_template", + "is_alphanumeric" + ] }, - "secret-scanning-scan-history": { + "check-automated-security-fixes": { + "title": "Check Dependabot security updates", + "description": "Check Dependabot security updates", "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" - } + "enabled": { + "type": "boolean", + "example": true, + "description": "Whether Dependabot security updates are enabled for the repository." }, - "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\"" - } - } - } - ] - } + "paused": { + "type": "boolean", + "example": false, + "description": "Whether Dependabot security updates are paused for the repository." } - } + }, + "required": [ + "enabled", + "paused" + ] }, - "repository-advisory-create": { + "protected-branch-required-status-check": { + "title": "Protected Branch Required Status Check", + "description": "Protected Branch Required Status Check", "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 + "url": { + "type": "string" }, - "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 - } + "enforcement_level": { + "type": "string" }, - "cwe_ids": { + "contexts": { "type": "array", - "description": "A list of Common Weakness Enumeration (CWE) IDs.", - "nullable": true, "items": { "type": "string" } }, - "credits": { + "checks": { "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." + "context": { + "type": "string" }, - "type": { - "$ref": "#/components/schemas/security-advisory-credit-types" + "app_id": { + "type": "integer", + "nullable": true } }, "required": [ - "login", - "type" - ], - "additionalProperties": false + "context", + "app_id" + ] } }, - "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" - ] + "contexts_url": { + "type": "string" }, - "cvss_vector_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", - "description": "The CVSS vector that calculates the severity of the advisory. You must choose between setting this field or `severity`.", - "nullable": true + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/enforce_admins" }, - "start_private_fork": { + "enabled": { "type": "boolean", - "description": "Whether to create a temporary private fork of the repository to collaborate on a fix.", - "default": false + "example": true } }, "required": [ - "summary", - "description", - "vulnerabilities" - ], - "additionalProperties": false + "url", + "enabled" + ] }, - "private-vulnerability-report-create": { + "protected-branch-pull-request-review": { + "title": "Protected Branch Pull Request Review", + "description": "Protected Branch Pull Request Review", "type": "object", "properties": { - "summary": { - "type": "string", - "description": "A short summary of the advisory.", - "maxLength": 1024 - }, - "description": { + "url": { "type": "string", - "description": "A detailed description of what the advisory impacts.", - "maxLength": 65535 + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/dismissal_restrictions" }, - "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" - } + "dismissal_restrictions": { + "type": "object", + "properties": { + "users": { + "description": "The list of users with review dismissal access.", + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" } }, - "required": [ - "package" - ], - "additionalProperties": false + "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\"" + } } }, - "cwe_ids": { - "type": "array", - "description": "A list of Common Weakness Enumeration (CWE) IDs.", - "nullable": true, - "items": { - "type": "string" + "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" + } + } } }, - "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" - ] + "dismiss_stale_reviews": { + "type": "boolean", + "example": true }, - "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 + "require_code_owner_reviews": { + "type": "boolean", + "example": true }, - "start_private_fork": { + "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", - "description": "Whether to create a temporary private fork of the repository to collaborate on a fix.", + "example": true, "default": false } }, "required": [ - "summary", - "description" - ], - "additionalProperties": false + "dismiss_stale_reviews", + "require_code_owner_reviews" + ] }, - "repository-advisory-update": { + "branch-restriction-policy": { + "title": "Branch Restriction Policy", + "description": "Branch Restriction Policy", "type": "object", "properties": { - "summary": { + "url": { "type": "string", - "description": "A short summary of the advisory.", - "maxLength": 1024 + "format": "uri" }, - "description": { + "users_url": { "type": "string", - "description": "A detailed description of what the advisory impacts.", - "maxLength": 65535 + "format": "uri" }, - "cve_id": { + "teams_url": { "type": "string", - "description": "The Common Vulnerabilities and Exposures (CVE) ID.", - "nullable": true + "format": "uri" }, - "vulnerabilities": { + "apps_url": { + "type": "string", + "format": "uri" + }, + "users": { "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" - ] + "login": { + "type": "string" }, - "vulnerable_version_range": { - "type": "string", - "description": "The range of the package versions affected by the vulnerability.", - "nullable": true + "id": { + "type": "integer", + "format": "int64" }, - "patched_versions": { - "type": "string", - "description": "The package version(s) that resolve the vulnerability.", - "nullable": true + "node_id": { + "type": "string" }, - "vulnerable_functions": { - "type": "array", - "description": "The functions in the package that are affected.", - "nullable": true, - "items": { - "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" } - }, - "required": [ - "package" - ], - "additionalProperties": false + } } }, - "cwe_ids": { + "teams": { "type": "array", - "description": "A list of Common Weakness Enumeration (CWE) IDs.", - "nullable": true, "items": { - "type": "string" + "$ref": "#/components/schemas/team" } }, - "credits": { + "apps": { "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." + "id": { + "type": "integer" }, - "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" + "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": [ - "starred_at", - "user" + "url", + "users_url", + "teams_url", + "apps_url", + "users", + "teams", + "apps" ] }, - "code-frequency-stat": { - "title": "Code Frequency Stat", - "description": "Code Frequency Stat", - "type": "array", - "items": { - "type": "integer" - } - }, - "commit-activity": { - "title": "Commit Activity", - "description": "Commit Activity", + "branch-protection": { + "title": "Branch Protection", + "description": "Branch Protection", "type": "object", "properties": { - "days": { - "type": "array", - "example": [ - 0, - 3, - 26, - 20, - 39, - 1, - 0 - ], - "items": { - "type": "integer" - } + "url": { + "type": "string" }, - "total": { - "type": "integer", - "example": 89 + "enabled": { + "type": "boolean" }, - "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" + "required_status_checks": { + "$ref": "#/components/schemas/protected-branch-required-status-check" }, - "total": { - "type": "integer", - "example": 135 + "enforce_admins": { + "$ref": "#/components/schemas/protected-branch-admin-enforced" }, - "weeks": { - "type": "array", - "example": [ - { - "w": "1367712000", - "a": 6898, - "d": 77, - "c": 10 + "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" } - ], - "items": { - "type": "object", - "properties": { - "w": { - "type": "integer" - }, - "a": { - "type": "integer" - }, - "d": { - "type": "integer" - }, - "c": { - "type": "integer" - } + } + }, + "allow_force_pushes": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" } } - } - }, - "required": [ - "author", - "total", - "weeks" - ] - }, - "participation-stats": { - "title": "Participation Stats", - "type": "object", - "properties": { - "all": { - "type": "array", - "items": { - "type": "integer" + }, + "allow_deletions": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } } }, - "owner": { - "type": "array", - "items": { - "type": "integer" + "block_creations": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } } - } - }, - "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" + "required_conversation_resolution": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } }, - "reason": { + "name": { "type": "string", - "nullable": true + "example": "\"branch/with/protection\"" }, - "created_at": { + "protection_url": { "type": "string", - "format": "date-time", - "example": "2012-10-06T21:34:12Z" + "example": "\"https://api.github.com/repos/owner-79e94e2d36b3fd06a32bb213/AAA_Public_Repo/branches/branch/with/protection/protection\"" }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/example/subscription" + "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" + ] }, - "repository_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/example" + "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" + } + } } - }, - "required": [ - "created_at", - "ignored", - "reason", - "subscribed", - "url", - "repository_url" - ] + } }, - "tag": { - "title": "Tag", - "description": "Tag", + "short-branch": { + "title": "Short Branch", + "description": "Short Branch", "type": "object", "properties": { "name": { - "type": "string", - "example": "v0.1" + "type": "string" }, "commit": { "type": "object", @@ -141860,338 +143562,231 @@ "url" ] }, - "zipball_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/zipball/v0.1" + "protected": { + "type": "boolean" }, - "tarball_url": { - "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World/tarball/v0.1" + "protection": { + "$ref": "#/components/schemas/branch-protection" }, - "node_id": { - "type": "string" + "protection_url": { + "type": "string", + "format": "uri" } }, "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" + "protected" ] }, - "traffic": { - "title": "Traffic", + "nullable-git-user": { + "title": "Git User", + "description": "Metaproperties for Git author/committer information.", "type": "object", "properties": { - "timestamp": { + "name": { "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 + "example": "\"Chris Wanstrath\"" }, - "uniques": { - "type": "integer", - "example": 128 + "email": { + "type": "string", + "example": "\"chris@ozmm.org\"" }, - "clones": { - "type": "array", - "items": { - "$ref": "#/components/schemas/traffic" - } + "date": { + "type": "string", + "format": "date-time", + "example": "\"2007-10-29T02:42:39.000-07:00\"" } }, - "required": [ - "uniques", - "count", - "clones" - ] + "nullable": true }, - "content-traffic": { - "title": "Content Traffic", - "description": "Content Traffic", + "git-user": { + "title": "Git User", + "description": "Metaproperties for Git author/committer information.", "type": "object", "properties": { - "path": { + "name": { "type": "string", - "example": "/github/hubot" + "example": "\"Chris Wanstrath\"" }, - "title": { + "email": { "type": "string", - "example": "github/hubot: A customizable life embetterment robot." - }, - "count": { - "type": "integer", - "example": 3542 + "example": "\"chris@ozmm.org\"" }, - "uniques": { - "type": "integer", - "example": 2225 + "date": { + "type": "string", + "format": "date-time", + "example": "\"2007-10-29T02:42:39.000-07:00\"" } - }, - "required": [ - "path", - "title", - "uniques", - "count" - ] + } }, - "referrer-traffic": { - "title": "Referrer Traffic", - "description": "Referrer Traffic", + "verification": { + "title": "Verification", "type": "object", "properties": { - "referrer": { - "type": "string", - "example": "Google" + "verified": { + "type": "boolean" }, - "count": { - "type": "integer", - "example": 4 + "reason": { + "type": "string" }, - "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 + "payload": { + "type": "string", + "nullable": true }, - "uniques": { - "type": "integer", - "example": 3782 + "signature": { + "type": "string", + "nullable": true }, - "views": { - "type": "array", - "items": { - "$ref": "#/components/schemas/traffic" - } + "verified_at": { + "type": "string", + "nullable": true } }, "required": [ - "uniques", - "count", - "views" + "verified", + "reason", + "payload", + "signature", + "verified_at" ] }, - "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", + "diff-entry": { + "title": "Diff Entry", + "description": "Diff Entry", "type": "object", "properties": { - "name": { - "type": "string" - }, - "path": { - "type": "string" - }, "sha": { - "type": "string" - }, - "url": { "type": "string", - "format": "uri" + "nullable": true, + "example": "bbcd538c8e72b8c175046e27cc8f907076331401" }, - "git_url": { + "filename": { "type": "string", - "format": "uri" + "example": "file1.txt" }, - "html_url": { + "status": { "type": "string", - "format": "uri" + "enum": [ + "added", + "removed", + "modified", + "renamed", + "copied", + "changed", + "unchanged" + ], + "example": "added" }, - "repository": { - "$ref": "#/components/schemas/minimal-repository" + "additions": { + "type": "integer", + "example": 103 }, - "score": { - "type": "number" + "deletions": { + "type": "integer", + "example": 21 }, - "file_size": { - "type": "integer" + "changes": { + "type": "integer", + "example": 124 }, - "language": { + "blob_url": { "type": "string", - "nullable": true + "format": "uri", + "example": "https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt" }, - "last_modified_at": { + "raw_url": { "type": "string", - "format": "date-time" + "format": "uri", + "example": "https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt" }, - "line_numbers": { - "type": "array", - "items": { - "type": "string" - }, - "example": [ - "73..77", - "77..78" - ] + "contents_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e" }, - "text_matches": { - "$ref": "#/components/schemas/search-result-text-matches" + "patch": { + "type": "string", + "example": "@@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test" + }, + "previous_filename": { + "type": "string", + "example": "file.txt" } }, "required": [ - "score", - "name", - "path", + "additions", + "blob_url", + "changes", + "contents_url", + "deletions", + "filename", + "raw_url", "sha", - "git_url", - "html_url", - "url", - "repository" + "status" ] }, - "commit-search-result-item": { - "title": "Commit Search Result Item", - "description": "Commit Search Result Item", + "commit": { + "title": "Commit", + "description": "Commit", "type": "object", "properties": { "url": { "type": "string", - "format": "uri" + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e" }, "sha": { - "type": "string" + "type": "string", + "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e" + }, + "node_id": { + "type": "string", + "example": "MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ==" }, "html_url": { "type": "string", - "format": "uri" + "format": "uri", + "example": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e" }, "comments_url": { "type": "string", - "format": "uri" + "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": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "email": { - "type": "string" - }, - "date": { - "type": "string", - "format": "date-time" - } - }, - "required": [ - "name", - "email", - "date" - ] + "$ref": "#/components/schemas/nullable-git-user" }, "committer": { "$ref": "#/components/schemas/nullable-git-user" }, - "comment_count": { - "type": "integer" - }, "message": { - "type": "string" + "type": "string", + "example": "Fix all the bugs" + }, + "comment_count": { + "type": "integer", + "example": 0 }, "tree": { "type": "object", "properties": { "sha": { - "type": "string" + "type": "string", + "example": "827efc6d56897b048c772eb4087f854f46256132" }, "url": { "type": "string", - "format": "uri" + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/tree/827efc6d56897b048c772eb4087f854f46256132" } }, "required": [ @@ -142199,10 +143794,6 @@ "url" ] }, - "url": { - "type": "string", - "format": "uri" - }, "verification": { "$ref": "#/components/schemas/verification" } @@ -142217,1932 +143808,2912 @@ ] }, "author": { - "$ref": "#/components/schemas/nullable-simple-user" + "nullable": true, + "oneOf": [ + { + "$ref": "#/components/schemas/simple-user" + }, + { + "$ref": "#/components/schemas/empty-object" + } + ] }, "committer": { - "$ref": "#/components/schemas/nullable-git-user" + "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" + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/commits/7638417db6d59f3c431d3e1f261cc637155684cd" }, "html_url": { - "type": "string" - }, - "sha": { - "type": "string" + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/commit/7638417db6d59f3c431d3e1f261cc637155684cd" } - } + }, + "required": [ + "sha", + "url" + ] } }, - "repository": { - "$ref": "#/components/schemas/minimal-repository" - }, - "score": { - "type": "number" - }, - "node_id": { - "type": "string" + "stats": { + "type": "object", + "properties": { + "additions": { + "type": "integer" + }, + "deletions": { + "type": "integer" + }, + "total": { + "type": "integer" + } + } }, - "text_matches": { - "$ref": "#/components/schemas/search-result-text-matches" + "files": { + "type": "array", + "items": { + "$ref": "#/components/schemas/diff-entry" + } } }, "required": [ + "url", "sha", "node_id", - "url", "html_url", - "author", - "committer", - "parents", "comments_url", "commit", - "repository", - "score" + "author", + "committer", + "parents" ] }, - "issue-search-result-item": { - "title": "Issue Search Result Item", - "description": "Issue Search Result Item", + "branch-with-protection": { + "title": "Branch With Protection", + "description": "Branch With Protection", "type": "object", "properties": { - "url": { - "type": "string", - "format": "uri" + "name": { + "type": "string" }, - "repository_url": { - "type": "string", - "format": "uri" + "commit": { + "$ref": "#/components/schemas/commit" }, - "labels_url": { - "type": "string" + "_links": { + "type": "object", + "properties": { + "html": { + "type": "string" + }, + "self": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "html", + "self" + ] }, - "comments_url": { - "type": "string", - "format": "uri" + "protected": { + "type": "boolean" }, - "events_url": { + "protection": { + "$ref": "#/components/schemas/branch-protection" + }, + "protection_url": { "type": "string", "format": "uri" }, - "html_url": { + "pattern": { "type": "string", - "format": "uri" + "example": "\"mas*\"" }, - "id": { + "required_approving_review_count": { "type": "integer", - "format": "int64" - }, - "node_id": { - "type": "string" - }, - "number": { - "type": "integer" - }, - "title": { - "type": "string" - }, - "locked": { - "type": "boolean" - }, - "active_lock_reason": { + "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", - "nullable": true + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_status_checks" }, - "assignees": { + "strict": { + "type": "boolean", + "example": true + }, + "contexts": { "type": "array", + "example": [ + "continuous-integration/travis-ci" + ], "items": { - "$ref": "#/components/schemas/simple-user" - }, - "nullable": true - }, - "user": { - "$ref": "#/components/schemas/nullable-simple-user" + "type": "string" + } }, - "labels": { + "checks": { "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": { + "context": { "type": "string", + "example": "continuous-integration/travis-ci" + }, + "app_id": { + "type": "integer", "nullable": true } - } + }, + "required": [ + "context", + "app_id" + ] } }, - "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" - } + "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" }, - "state": { - "type": "string" + "required_status_checks": { + "$ref": "#/components/schemas/status-check-policy" }, - "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": { + "required_pull_request_reviews": { "type": "object", "properties": { - "merged_at": { + "url": { "type": "string", - "format": "date-time", - "nullable": true + "format": "uri" }, - "diff_url": { - "type": "string", - "format": "uri", - "nullable": true + "dismiss_stale_reviews": { + "type": "boolean" }, - "html_url": { - "type": "string", - "format": "uri", - "nullable": true + "require_code_owner_reviews": { + "type": "boolean" }, - "patch_url": { - "type": "string", - "format": "uri", - "nullable": true + "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", - "nullable": true + "example": "https://api.github.com/repos/octocat/Hello-World/branches/master/protection/required_signatures" + }, + "enabled": { + "type": "boolean", + "example": true } }, "required": [ - "diff_url", - "html_url", - "patch_url", - "url" + "url", + "enabled" ] }, - "body": { - "type": "string" - }, - "score": { - "type": "number" - }, - "author_association": { - "$ref": "#/components/schemas/author-association" - }, - "draft": { - "type": "boolean" + "enforce_admins": { + "type": "object", + "properties": { + "url": { + "type": "string", + "format": "uri" + }, + "enabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "url", + "enabled" + ] }, - "repository": { - "$ref": "#/components/schemas/repository" + "required_linear_history": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enabled" + ] }, - "body_html": { - "type": "string" + "allow_force_pushes": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enabled" + ] }, - "body_text": { - "type": "string" + "allow_deletions": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enabled" + ] }, - "timeline_url": { - "type": "string", - "format": "uri" + "restrictions": { + "$ref": "#/components/schemas/branch-restriction-policy" }, - "type": { - "$ref": "#/components/schemas/issue-type" + "required_conversation_resolution": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "additionalProperties": false }, - "performed_via_github_app": { - "$ref": "#/components/schemas/nullable-integration" + "block_creations": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + }, + "additionalProperties": false, + "required": [ + "enabled" + ] }, - "pinned_comment": { - "$ref": "#/components/schemas/nullable-issue-comment" + "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 }, - "reactions": { - "$ref": "#/components/schemas/reaction-rollup" + "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": [ - "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" - ], - "x-github-breaking-changes": [ - { - "changeset": "remove_singular_assignee_from_issues_and_pull_requests", - "patch": { - "properties": { - "assignee": null - }, - "required": [ - "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" - ] - }, - "version": "2026-03-10" - } + "url" ] }, - "label-search-result-item": { - "title": "Label Search Result Item", - "description": "Label Search Result Item", + "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" - }, - "url": { "type": "string", - "format": "uri" + "example": "MDEwOkRlcGxveW1lbnQx" }, - "name": { + "task": { + "description": "Parameter to specify a task to execute", + "example": "deploy", "type": "string" }, - "color": { - "type": "string" + "original_environment": { + "type": "string", + "example": "staging" }, - "default": { - "type": "boolean" + "environment": { + "description": "Name for the target deployment environment.", + "example": "production", + "type": "string" }, "description": { "type": "string", + "example": "Deploy request from hubot", "nullable": true }, - "score": { - "type": "number" + "created_at": { + "type": "string", + "format": "date-time", + "example": "2012-07-20T01:19:13Z" }, - "text_matches": { - "$ref": "#/components/schemas/search-result-text-matches" + "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", - "url", - "name", - "color", - "default", + "task", + "environment", "description", - "score" + "statuses_url", + "repository_url", + "url", + "created_at", + "updated_at" ] }, - "repo-search-result-item": { - "title": "Repo Search Result Item", - "description": "Repo Search Result Item", + "check-run": { + "title": "CheckRun", + "description": "A check performed on the code of a given code change", "type": "object", "properties": { "id": { - "type": "integer" - }, - "node_id": { - "type": "string" - }, - "name": { - "type": "string" + "description": "The id of the check.", + "example": 21, + "type": "integer", + "format": "int64" }, - "full_name": { + "head_sha": { + "description": "The SHA of the commit that is being checked.", + "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", "type": "string" }, - "owner": { - "$ref": "#/components/schemas/nullable-simple-user" - }, - "private": { - "type": "boolean" - }, - "html_url": { + "node_id": { "type": "string", - "format": "uri" + "example": "MDg6Q2hlY2tSdW40" }, - "description": { + "external_id": { "type": "string", + "example": "42", "nullable": true }, - "fork": { - "type": "boolean" - }, "url": { "type": "string", - "format": "uri" + "example": "https://api.github.com/repos/github/hello-world/check-runs/4" }, - "created_at": { + "html_url": { "type": "string", - "format": "date-time" + "example": "https://github.com/github/hello-world/runs/4", + "nullable": true }, - "updated_at": { + "details_url": { "type": "string", - "format": "date-time" + "example": "https://example.com", + "nullable": true }, - "pushed_at": { + "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", - "format": "date-time" + "enum": [ + "queued", + "in_progress", + "completed", + "waiting", + "requested", + "pending" + ] }, - "homepage": { + "conclusion": { "type": "string", - "format": "uri", + "example": "neutral", + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "skipped", + "timed_out", + "action_required" + ], "nullable": true }, - "size": { - "type": "integer" - }, - "stargazers_count": { - "type": "integer" - }, - "watchers_count": { - "type": "integer" - }, - "language": { + "started_at": { "type": "string", + "format": "date-time", + "example": "2018-05-04T01:14:52Z", "nullable": true }, - "forks_count": { - "type": "integer" + "completed_at": { + "type": "string", + "format": "date-time", + "example": "2018-05-04T01:14:52Z", + "nullable": true }, - "open_issues_count": { - "type": "integer" + "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" + ] }, - "master_branch": { + "name": { + "description": "The name of the check.", + "example": "test-coverage", "type": "string" }, - "default_branch": { - "type": "string" + "check_suite": { + "type": "object", + "properties": { + "id": { + "type": "integer" + } + }, + "required": [ + "id" + ], + "nullable": true }, - "score": { - "type": "number" + "app": { + "$ref": "#/components/schemas/nullable-integration" }, - "forks_url": { + "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", - "format": "uri" + "example": "README.md" }, - "keys_url": { - "type": "string" + "start_line": { + "type": "integer", + "example": 2 }, - "collaborators_url": { - "type": "string" + "end_line": { + "type": "integer", + "example": 2 }, - "teams_url": { - "type": "string", - "format": "uri" + "start_column": { + "type": "integer", + "example": 5, + "nullable": true }, - "hooks_url": { + "end_column": { + "type": "integer", + "example": 10, + "nullable": true + }, + "annotation_level": { "type": "string", - "format": "uri" + "example": "warning", + "nullable": true }, - "issue_events_url": { - "type": "string" + "title": { + "type": "string", + "example": "Spell Checker", + "nullable": true }, - "events_url": { + "message": { "type": "string", - "format": "uri" + "example": "Check your spelling for 'banaas'.", + "nullable": true }, - "assignees_url": { - "type": "string" + "raw_details": { + "type": "string", + "example": "Do you mean 'bananas' or 'banana'?", + "nullable": true }, - "branches_url": { + "blob_href": { "type": "string" - }, - "tags_url": { + } + }, + "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", - "format": "uri" + "description": "SHA for the commit", + "example": "7638417db6d59f3c431d3e1f261cc637155684cd" }, - "blobs_url": { - "type": "string" + "tree_id": { + "type": "string", + "description": "SHA for the commit's tree" }, - "git_tags_url": { + "message": { + "description": "Message describing the purpose of the commit", + "example": "Fix #42", "type": "string" }, - "git_refs_url": { + "timestamp": { + "description": "Timestamp of the commit", + "example": "2014-08-09T08:02:04+12:00", + "format": "date-time", "type": "string" }, - "trees_url": { - "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 }, - "statuses_url": { - "type": "string" + "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" }, - "languages_url": { + "node_id": { "type": "string", - "format": "uri" + "example": "MDEwOkNoZWNrU3VpdGU1" }, - "stargazers_url": { + "head_branch": { "type": "string", - "format": "uri" + "example": "master", + "nullable": true }, - "contributors_url": { + "head_sha": { + "description": "The SHA of the head commit that is being checked.", + "example": "009b8a3a9ccbb128af87f9b1c0f4c62e8a304f6d", + "type": "string" + }, + "status": { "type": "string", - "format": "uri" + "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 }, - "subscribers_url": { + "conclusion": { "type": "string", - "format": "uri" + "example": "neutral", + "enum": [ + "success", + "failure", + "neutral", + "cancelled", + "skipped", + "timed_out", + "action_required", + "startup_failure", + "stale", + null + ], + "nullable": true }, - "subscription_url": { + "url": { "type": "string", - "format": "uri" + "example": "https://api.github.com/repos/github/hello-world/check-suites/5", + "nullable": true }, - "commits_url": { - "type": "string" + "before": { + "type": "string", + "example": "146e867f55c26428e5f9fade55a9bbf5e95a7912", + "nullable": true }, - "git_commits_url": { - "type": "string" + "after": { + "type": "string", + "example": "d6fde92930d4715a2b49857d24b940956b26d2d3", + "nullable": true }, - "comments_url": { - "type": "string" + "pull_requests": { + "type": "array", + "items": { + "$ref": "#/components/schemas/pull-request-minimal" + }, + "nullable": true }, - "issue_comment_url": { - "type": "string" + "app": { + "$ref": "#/components/schemas/nullable-integration" }, - "contents_url": { - "type": "string" + "repository": { + "$ref": "#/components/schemas/minimal-repository" }, - "compare_url": { - "type": "string" + "created_at": { + "type": "string", + "format": "date-time", + "nullable": true }, - "merges_url": { + "updated_at": { "type": "string", - "format": "uri" + "format": "date-time", + "nullable": true }, - "archive_url": { - "type": "string" + "head_commit": { + "$ref": "#/components/schemas/simple-commit" }, - "downloads_url": { - "type": "string", - "format": "uri" + "latest_check_runs_count": { + "type": "integer" }, - "issues_url": { + "check_runs_url": { "type": "string" }, - "pulls_url": { - "type": "string" + "rerequestable": { + "type": "boolean" }, - "milestones_url": { - "type": "string" + "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" + ] + } + } + } }, - "notifications_url": { + "repository": { + "$ref": "#/components/schemas/minimal-repository" + } + } + }, + "code-quality-finding-rule": { + "description": "Code quality rule", + "type": "object", + "properties": { + "id": { + "description": "A unique identifier for the rule used to detect the finding.", "type": "string" }, - "labels_url": { + "title": { + "description": "The name of the rule used to detect the finding.", "type": "string" }, - "releases_url": { + "description": { + "description": "A short description of the rule used to detect the finding.", "type": "string" }, - "deployments_url": { - "type": "string", - "format": "uri" - }, - "git_url": { + "help": { + "description": "A detailed description of the rule used to detect the finding.", "type": "string" }, - "ssh_url": { - "type": "string" + "severity": { + "description": "The severity of the rule used to detect the finding.", + "type": "string", + "enum": [ + "error", + "warning", + "note", + "none" + ] }, - "clone_url": { + "category": { + "description": "The category of the rule used to detect the finding.", + "type": "string", + "enum": [ + "none", + "maintainability", + "reliability" + ] + } + }, + "required": [ + "id", + "title", + "description", + "severity", + "category" + ] + }, + "code-quality-finding-location": { + "description": "Code quality file location", + "type": "object", + "properties": { + "path": { + "description": "The file path where the finding was detected.", "type": "string" }, - "svn_url": { - "type": "string", - "format": "uri" + "start_line": { + "description": "The line number where the finding starts.", + "type": "integer" }, - "forks": { + "start_column": { + "description": "The column number where the finding starts.", "type": "integer" }, - "open_issues": { + "end_line": { + "description": "The line number where the finding ends.", "type": "integer" }, - "watchers": { + "end_column": { + "description": "The column number where the finding ends.", "type": "integer" + } + }, + "required": [ + "path" + ] + }, + "code-quality-finding-message": { + "description": "Code quality finding message", + "type": "object", + "properties": { + "text": { + "description": "The message text of the code quality finding.", + "type": "string" }, - "topics": { - "type": "array", - "items": { - "type": "string" - } + "markdown": { + "description": "The message text of the code quality finding in markdown format.", + "type": "string" + } + }, + "required": [ + "text", + "markdown" + ] + }, + "code-quality-finding": { + "description": "Code quality finding", + "type": "object", + "properties": { + "number": { + "description": "The finding number.", + "type": "integer" }, - "mirror_url": { + "state": { + "description": "State of the code quality finding.", "type": "string", - "format": "uri", - "nullable": true - }, - "has_issues": { - "type": "boolean" - }, - "has_projects": { - "type": "boolean" - }, - "has_pages": { - "type": "boolean" + "enum": [ + "open", + "dismissed" + ] }, - "has_wiki": { - "type": "boolean" + "url": { + "description": "The REST API URL of the code quality finding resource.", + "type": "string", + "format": "uri" }, - "has_downloads": { - "type": "boolean" + "rule": { + "$ref": "#/components/schemas/code-quality-finding-rule" }, - "has_discussions": { - "type": "boolean" + "location": { + "$ref": "#/components/schemas/code-quality-finding-location" }, - "has_pull_requests": { - "type": "boolean" + "message": { + "$ref": "#/components/schemas/code-quality-finding-message" }, - "pull_request_creation_policy": { - "description": "The policy controlling who can create pull requests: all or collaborators_only.", + "created_at": { + "description": "The time the code quality finding was created.", "type": "string", - "enum": [ - "all", - "collaborators_only" + "format": "date-time" + } + }, + "required": [ + "number", + "state", + "url", + "rule", + "location", + "message" + ] + }, + "code-quality-setup": { + "description": "Configuration for code quality setup.", + "type": "object", + "properties": { + "state": { + "description": "Code quality setup has been configured or not.", + "type": "string", + "enum": [ + "configured", + "not-configured" ] }, - "archived": { - "type": "boolean" + "languages": { + "description": "Languages to be analyzed.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "csharp", + "go", + "java-kotlin", + "javascript-typescript", + "python", + "ruby", + "rust" + ] + } }, - "disabled": { - "type": "boolean", - "description": "Returns whether or not this repository disabled." + "runner_type": { + "description": "Runner type to be used.", + "nullable": true, + "type": "string", + "enum": [ + "standard", + "labeled" + ] }, - "visibility": { - "description": "The repository visibility: public, private, or internal.", - "type": "string" + "runner_label": { + "description": "Runner label to be used if the runner type is labeled.", + "nullable": true, + "type": "string", + "example": "code-scanning" }, - "license": { - "$ref": "#/components/schemas/nullable-license-simple" + "updated_at": { + "description": "Timestamp of latest configuration update.", + "nullable": true, + "type": "string", + "format": "date-time", + "example": "2023-12-06T14:20:20.000Z" }, - "permissions": { - "type": "object", - "properties": { - "admin": { - "type": "boolean" - }, - "maintain": { - "type": "boolean" - }, - "push": { - "type": "boolean" - }, - "triage": { - "type": "boolean" - }, - "pull": { - "type": "boolean" - } - }, + "schedule": { + "description": "The frequency of the periodic analysis.", + "nullable": true, + "type": "string", + "enum": [ + "weekly" + ] + }, + "ai_findings_option": { + "description": "The AI findings configuration for the repository.", + "nullable": true, + "type": "string", + "enum": [ + "disabled", + "on_push" + ] + } + } + }, + "code-quality-setup-update": { + "description": "Configuration for code quality setup.", + "type": "object", + "properties": { + "state": { + "description": "The desired state of code quality 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" + }, + "languages": { + "description": "Languages to be analyzed.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "csharp", + "go", + "java-kotlin", + "javascript-typescript", + "python", + "ruby" + ] + } + }, + "ai_findings_option": { + "description": "Whether AI findings run for Code Quality on this repository.", + "type": "string", + "enum": [ + "disabled", + "on_push" + ] + } + }, + "anyOf": [ + { "required": [ - "admin", - "pull", - "push" + "state" ] }, - "text_matches": { - "$ref": "#/components/schemas/search-result-text-matches" + { + "required": [ + "runner_type" + ] }, - "temp_clone_token": { + { + "required": [ + "runner_label" + ] + }, + { + "required": [ + "languages" + ] + }, + { + "required": [ + "ai_findings_option" + ] + } + ], + "additionalProperties": false + }, + "code-quality-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-alert-items": { + "type": "object", + "properties": { + "number": { + "$ref": "#/components/schemas/alert-number" }, - "allow_merge_commit": { - "type": "boolean" + "created_at": { + "$ref": "#/components/schemas/alert-created-at" }, - "allow_squash_merge": { - "type": "boolean" + "updated_at": { + "$ref": "#/components/schemas/alert-updated-at" }, - "allow_rebase_merge": { - "type": "boolean" + "url": { + "$ref": "#/components/schemas/alert-url" }, - "allow_auto_merge": { - "type": "boolean" + "html_url": { + "$ref": "#/components/schemas/alert-html-url" }, - "delete_branch_on_merge": { - "type": "boolean" + "instances_url": { + "$ref": "#/components/schemas/alert-instances-url" }, - "allow_forking": { - "type": "boolean" + "state": { + "$ref": "#/components/schemas/code-scanning-alert-state" }, - "is_template": { - "type": "boolean" + "fixed_at": { + "$ref": "#/components/schemas/alert-fixed-at" }, - "web_commit_signoff_required": { - "type": "boolean", - "example": false + "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": [ - "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", + "number", "created_at", - "updated_at", - "score" + "url", + "html_url", + "instances_url", + "state", + "dismissed_by", + "dismissed_at", + "dismissed_reason", + "rule", + "tool", + "most_recent_instance" ] }, - "topic-search-result-item": { - "title": "Topic Search Result Item", - "description": "Topic Search Result Item", + "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" + "type": "string", + "description": "The name of the rule used to detect the alert." }, - "display_name": { + "severity": { + "nullable": true, "type": "string", - "nullable": true + "description": "The severity of the alert.", + "enum": [ + "none", + "note", + "warning", + "error" + ] }, - "short_description": { + "security_severity_level": { + "nullable": true, "type": "string", - "nullable": true + "description": "The security severity of the alert.", + "enum": [ + "low", + "medium", + "high", + "critical" + ] }, "description": { "type": "string", - "nullable": true + "description": "A short description of the rule used to detect the alert." }, - "created_by": { + "full_description": { "type": "string", - "nullable": true + "description": "A description of the rule used to detect the alert." }, - "released": { + "tags": { + "nullable": true, + "type": "array", + "description": "A set of tags applicable for the rule.", + "items": { + "type": "string" + } + }, + "help": { + "nullable": true, "type": "string", - "nullable": true + "description": "Detailed documentation for the rule as GitHub Flavored Markdown." }, - "created_at": { + "help_uri": { + "nullable": true, "type": "string", - "format": "date-time" + "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": { - "type": "string", - "format": "date-time" + "$ref": "#/components/schemas/alert-updated-at" }, - "featured": { - "type": "boolean" + "url": { + "$ref": "#/components/schemas/alert-url" }, - "curated": { - "type": "boolean" + "html_url": { + "$ref": "#/components/schemas/alert-html-url" }, - "score": { - "type": "number" + "instances_url": { + "$ref": "#/components/schemas/alert-instances-url" }, - "repository_count": { - "type": "integer", - "nullable": true + "state": { + "$ref": "#/components/schemas/code-scanning-alert-state" }, - "logo_url": { - "type": "string", - "format": "uri", - "nullable": true + "fixed_at": { + "$ref": "#/components/schemas/alert-fixed-at" }, - "text_matches": { - "$ref": "#/components/schemas/search-result-text-matches" + "dismissed_by": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "related": { + "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", - "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" - } - } - } - } + "$ref": "#/components/schemas/simple-user" } }, - "aliases": { + "linked_pull_requests": { + "description": "Pull requests linked to this alert.", "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" - } - } - } - } + "$ref": "#/components/schemas/pull-request-simple" } } }, "required": [ - "name", - "display_name", - "short_description", - "description", - "created_by", - "released", + "number", "created_at", - "updated_at", - "featured", - "curated", - "score" + "url", + "html_url", + "instances_url", + "state", + "dismissed_by", + "dismissed_at", + "dismissed_reason", + "rule", + "tool", + "most_recent_instance" ] }, - "user-search-result-item": { - "title": "User Search Result Item", - "description": "User Search Result Item", + "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": { - "login": { - "type": "string" + "status": { + "$ref": "#/components/schemas/code-scanning-autofix-status" }, - "id": { - "type": "integer", - "format": "int64" + "description": { + "$ref": "#/components/schemas/code-scanning-autofix-description" }, - "node_id": { + "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" }, - "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": { + "message": { + "description": "Commit message to be used.", + "type": "string" + } + }, + "nullable": true + }, + "code-scanning-autofix-commits-response": { + "type": "object", + "properties": { + "target_ref": { "type": "string", - "format": "uri" + "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." }, - "organizations_url": { + "sha": { "type": "string", - "format": "uri" + "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" }, - "repos_url": { - "type": "string", - "format": "uri" + "analysis_key": { + "$ref": "#/components/schemas/code-scanning-analysis-analysis-key" }, - "received_events_url": { - "type": "string", - "format": "uri" + "environment": { + "$ref": "#/components/schemas/code-scanning-alert-environment" }, - "type": { - "type": "string" + "category": { + "$ref": "#/components/schemas/code-scanning-analysis-category" }, - "score": { - "type": "number" + "state": { + "$ref": "#/components/schemas/code-scanning-alert-instance-state" }, - "following_url": { + "commit_sha": { "type": "string" }, - "gists_url": { - "type": "string" + "message": { + "type": "object", + "properties": { + "text": { + "type": "string" + } + } }, - "starred_url": { - "type": "string" + "location": { + "$ref": "#/components/schemas/code-scanning-alert-location" }, - "events_url": { + "html_url": { "type": "string" }, - "public_repos": { - "type": "integer" - }, - "public_gists": { - "type": "integer" + "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": 64, + "pattern": "^([0-9a-fA-F]{40}(?:[0-9a-fA-F]{24})?)$" + }, + "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" }, - "followers": { - "type": "integer" + "commit_sha": { + "$ref": "#/components/schemas/code-scanning-analysis-commit-sha" }, - "following": { - "type": "integer" + "analysis_key": { + "$ref": "#/components/schemas/code-scanning-analysis-analysis-key" }, - "created_at": { - "type": "string", - "format": "date-time" + "environment": { + "$ref": "#/components/schemas/code-scanning-analysis-environment" }, - "updated_at": { - "type": "string", - "format": "date-time" + "category": { + "$ref": "#/components/schemas/code-scanning-analysis-category" }, - "name": { + "error": { "type": "string", - "nullable": true + "example": "error reading field xyz" }, - "bio": { - "type": "string", - "nullable": true + "created_at": { + "$ref": "#/components/schemas/code-scanning-analysis-created-at" }, - "email": { - "type": "string", - "format": "email", - "nullable": true + "results_count": { + "type": "integer", + "description": "The total number of results in the analysis." }, - "location": { - "type": "string", - "nullable": true + "rules_count": { + "type": "integer", + "description": "The total number of rules used in the analysis." }, - "site_admin": { - "type": "boolean" + "id": { + "type": "integer", + "description": "Unique identifier for this analysis." }, - "hireable": { - "type": "boolean", - "nullable": true + "url": { + "$ref": "#/components/schemas/code-scanning-analysis-url" }, - "text_matches": { - "$ref": "#/components/schemas/search-result-text-matches" + "sarif_id": { + "$ref": "#/components/schemas/code-scanning-analysis-sarif-id" }, - "blog": { - "type": "string", - "nullable": true + "tool": { + "$ref": "#/components/schemas/code-scanning-analysis-tool" }, - "company": { - "type": "string", - "nullable": true + "deletable": { + "type": "boolean" }, - "suspended_at": { + "warning": { "type": "string", - "format": "date-time", - "nullable": true - }, - "user_view_type": { - "type": "string" + "description": "Warning generated when processing the analysis", + "example": "123 results were ignored" } }, "required": [ - "avatar_url", - "events_url", - "followers_url", - "following_url", - "gists_url", - "gravatar_id", - "html_url", + "ref", + "commit_sha", + "analysis_key", + "environment", + "error", + "created_at", + "results_count", + "rules_count", "id", - "node_id", - "login", - "organizations_url", - "received_events_url", - "repos_url", - "site_admin", - "starred_url", - "subscriptions_url", - "type", "url", - "score" + "sarif_id", + "tool", + "deletable", + "warning" ] }, - "private-user": { - "title": "Private User", - "description": "Private User", + "code-scanning-analysis-deletion": { + "title": "Analysis deletion", + "description": "Successful deletion of a code scanning analysis", "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": { + "next_analysis_url": { "type": "string", + "description": "Next deletable analysis in chain, without last analysis deletion confirmation", "format": "uri", - "example": "https://github.com/images/error/octocat_happy.gif" - }, - "gravatar_id": { - "type": "string", - "example": "41d064eb2195891e12d0413f63227ea7", + "readOnly": true, "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": { + "confirm_delete_url": { "type": "string", + "description": "Next deletable analysis in chain, with last analysis deletion confirmation", "format": "uri", - "example": "https://api.github.com/users/octocat/followers" + "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." }, - "following_url": { + "name": { "type": "string", - "example": "https://api.github.com/users/octocat/following{/other_user}" + "description": "The name of the CodeQL database." }, - "gists_url": { + "language": { "type": "string", - "example": "https://api.github.com/users/octocat/gists{/gist_id}" + "description": "The language of the CodeQL database." }, - "starred_url": { - "type": "string", - "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + "uploader": { + "$ref": "#/components/schemas/simple-user" }, - "subscriptions_url": { + "content_type": { "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/subscriptions" + "description": "The MIME type of the CodeQL database file." }, - "organizations_url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/orgs" + "size": { + "type": "integer", + "description": "The size of the CodeQL database file in bytes." }, - "repos_url": { + "created_at": { "type": "string", - "format": "uri", - "example": "https://api.github.com/users/octocat/repos" + "format": "date-time", + "description": "The date and time at which the CodeQL database was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." }, - "events_url": { + "updated_at": { "type": "string", - "example": "https://api.github.com/users/octocat/events{/privacy}" + "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." }, - "received_events_url": { + "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 + "description": "The URL at which to download the CodeQL database. The `Accept` header must be set to the value of the `content_type` property." }, - "location": { + "commit_oid": { "type": "string", - "example": "San Francisco", + "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." }, - "email": { + "name": { "type": "string", - "format": "email", - "example": "octocat@github.com", - "nullable": true + "example": "Hello-World", + "description": "The name of the repository." }, - "notification_email": { + "full_name": { "type": "string", - "format": "email", - "example": "octocat@github.com", - "nullable": true + "example": "octocat/Hello-World", + "description": "The full, globally unique, name of the repository." }, - "hireable": { + "private": { "type": "boolean", - "nullable": true + "description": "Whether the repository is private." }, - "bio": { - "type": "string", - "example": "There once was...", - "nullable": true + "stargazers_count": { + "type": "integer", + "example": 80 }, - "twitter_username": { + "updated_at": { "type": "string", - "example": "monalisa", + "format": "date-time", + "example": "2011-01-26T19:14:43Z", "nullable": true - }, - "public_repos": { - "type": "integer", - "example": 2 - }, - "public_gists": { + } + }, + "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", - "example": 1 + "description": "The total number of repositories that were skipped for this reason.", + "example": 2 }, - "followers": { + "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", - "example": 20 + "description": "The ID of the variant analysis." }, - "following": { - "type": "integer", - "example": 0 + "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", - "example": "2008-01-14T04:33:35Z" + "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", - "example": "2008-01-14T04:33:35Z" - }, - "private_gists": { - "type": "integer", - "example": 81 + "description": "The date and time at which the variant analysis was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ." }, - "total_private_repos": { - "type": "integer", - "example": 100 + "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." }, - "owned_private_repos": { - "type": "integer", - "example": 100 + "status": { + "type": "string", + "enum": [ + "in_progress", + "succeeded", + "failed", + "cancelled" + ] }, - "disk_usage": { + "actions_workflow_run_id": { "type": "integer", - "example": 10000 + "description": "The GitHub Actions workflow run used to execute this variant analysis. This is only available if the workflow run has started." }, - "collaborators": { - "type": "integer", - "example": 8 + "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." }, - "two_factor_authentication": { - "type": "boolean", - "example": true + "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" + ] + } }, - "plan": { + "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": { - "collaborators": { - "type": "integer" + "access_mismatch_repos": { + "$ref": "#/components/schemas/code-scanning-variant-analysis-skipped-repo-group" }, - "name": { - "type": "string" + "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" + ] }, - "space": { - "type": "integer" + "no_codeql_db_repos": { + "$ref": "#/components/schemas/code-scanning-variant-analysis-skipped-repo-group" }, - "private_repos": { - "type": "integer" + "over_limit_repos": { + "$ref": "#/components/schemas/code-scanning-variant-analysis-skipped-repo-group" } }, "required": [ - "collaborators", - "name", - "space", - "private_repos" + "access_mismatch_repos", + "not_found_repos", + "no_codeql_db_repos", + "over_limit_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" + "controller_repo", + "actor", + "query_language", + "query_pack_url", + "status" ] }, - "codespaces-secret": { - "title": "Codespaces Secret", - "description": "Secrets for a GitHub Codespace.", + "code-scanning-variant-analysis-repo-task": { "type": "object", "properties": { - "name": { - "description": "The name of the secret", - "example": "SECRET_NAME", - "type": "string" + "repository": { + "$ref": "#/components/schemas/simple-repository" }, - "created_at": { - "description": "The date and time at which the secret was created, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "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", - "format": "date-time" + "description": "The reason of the failure of this repo task. This is only available if the repository task has failed." }, - "updated_at": { - "description": "The date and time at which the secret was last updated, in ISO 8601 format':' YYYY-MM-DDTHH:MM:SSZ.", + "database_commit_sha": { "type": "string", - "format": "date-time" + "description": "The SHA of the commit the CodeQL database was built against. This is only available for successful analyses." }, - "visibility": { - "description": "The type of repositories in the organization that the secret is visible to", - "enum": [ - "all", - "private", - "selected" - ], - "type": "string" + "source_location_prefix": { + "type": "string", + "description": "The source location prefix to use. This is only available for successful analyses." }, - "selected_repositories_url": { - "description": "The API URL at which the list of repositories this secret is visible to can be retrieved", + "artifact_url": { "type": "string", - "format": "uri", - "example": "https://api.github.com/user/secrets/SECRET_NAME/repositories" + "description": "The URL of the artifact. This is only available for successful analyses." } }, "required": [ - "name", - "created_at", - "updated_at", - "visibility", - "selected_repositories_url" + "repository", + "analysis_status" ] }, - "codespaces-user-public-key": { - "title": "CodespacesUserPublicKey", - "description": "The public key used for setting user Codespaces' Secrets.", + "code-scanning-default-setup": { + "description": "Configuration for code scanning default setup.", "type": "object", "properties": { - "key_id": { - "description": "The identifier for the key.", + "state": { + "description": "Code scanning default setup has been configured or not.", "type": "string", - "example": "1234567" + "enum": [ + "configured", + "not-configured" + ] }, - "key": { - "description": "The Base64 encoded public key.", + "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", - "example": "hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs=" + "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" + ] } }, - "required": [ - "key_id", - "key" + "x-github-breaking-changes": [ + { + "changeset": "remove_single_js_ts", + "patch": { + "properties": { + "languages": { + "items": { + "enum": [ + "actions", + "c-cpp", + "csharp", + "go", + "java-kotlin", + "javascript-typescript", + "python", + "ruby", + "swift" + ] + } + } + } + }, + "version": "2026-03-10" + } ] }, - "codespace-export-details": { + "code-scanning-default-setup-update": { + "description": "Configuration for code scanning default setup.", "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": { + "description": "The desired state of code scanning default setup.", "type": "string", - "description": "State of the latest export", - "nullable": true, - "example": "succeeded | failed | in_progress" + "enum": [ + "configured", + "not-configured" + ] }, - "completed_at": { - "description": "Completion time of the last export operation", + "runner_type": { + "description": "Runner type to be used.", "type": "string", - "format": "date-time", + "enum": [ + "standard", + "labeled" + ] + }, + "runner_label": { "nullable": true, - "example": "2021-01-01T19:01:12Z" + "description": "Runner label to be used if the runner type is labeled.", + "type": "string", + "example": "code-scanning" }, - "branch": { + "query_suite": { + "description": "CodeQL query suite to be used.", "type": "string", - "description": "Name of the exported branch", - "nullable": true, - "example": "codespace-monalisa-octocat-hello-world-g4wpq6h95q" + "enum": [ + "default", + "extended" + ] }, - "sha": { + "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", - "description": "Git commit SHA of the exported branch", - "nullable": true, - "example": "fd95a81ca01e48ede9f39c799ecbcef817b8a3b2" + "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": { - "type": "string", - "description": "Id for the export details", - "example": "latest" + "$ref": "#/components/schemas/code-scanning-analysis-sarif-id" }, - "export_url": { + "url": { "type": "string", - "description": "Url for fetching export details", - "example": "https://api.github.com/user/codespaces/:name/exports/latest" + "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." }, - "html_url": { + "analyses_url": { "type": "string", - "nullable": true, - "description": "Web url for the exported branch", - "example": "https://github.com/octocat/hello-world/tree/:branch" + "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 } } }, - "codespace-with-full-repository": { + "code-security-configuration-for-repository": { "type": "object", - "title": "Codespace", - "description": "A codespace.", + "description": "Code security configuration associated with a repository and attachment status", "properties": { - "id": { - "type": "integer", - "format": "int64", - "example": 1 + "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": { - "description": "Automatically generated name of this codespace.", "type": "string", - "example": "monalisa-octocat-hello-world-g4wpq6h95q" + "description": "The name of the machine.", + "example": "standardLinux" }, "display_name": { - "description": "Display name for this codespace.", "type": "string", - "example": "bookish space pancake", - "nullable": true + "description": "The display name of the machine includes cores, memory, and storage.", + "example": "4 cores, 16 GB RAM, 64 GB storage" }, - "environment_id": { - "description": "UUID identifying this codespace's environment.", + "operating_system": { "type": "string", - "example": "26a7c758-7299-4a73-b978-5a92a7ae98a0", - "nullable": true - }, - "owner": { - "$ref": "#/components/schemas/simple-user" + "description": "The operating system of the machine.", + "example": "linux" }, - "billable_owner": { - "$ref": "#/components/schemas/simple-user" + "storage_in_bytes": { + "type": "integer", + "description": "How much storage is available to the codespace.", + "example": 68719476736 }, - "repository": { - "$ref": "#/components/schemas/full-repository" + "memory_in_bytes": { + "type": "integer", + "description": "How much memory is available to the codespace.", + "example": 17179869184 }, - "machine": { - "$ref": "#/components/schemas/nullable-codespace-machine" + "cpus": { + "type": "integer", + "description": "How many cores are available to the codespace.", + "example": 4 }, - "devcontainer_path": { - "description": "Path to devcontainer.json from repo root used to create Codespace.", + "prebuild_availability": { "type": "string", - "example": ".devcontainer/example/devcontainer.json", - "nullable": true - }, - "prebuild": { - "description": "Whether the codespace was created from a prebuild.", - "type": "boolean", - "example": false, + "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", - "example": "2011-01-26T19:01:12Z" + "format": "date-time" }, "updated_at": { "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z" - }, - "last_used_at": { - "description": "Last known time this codespace was started.", + "format": "date-time" + } + }, + "required": [ + "name", + "created_at", + "updated_at" + ] + }, + "collaborator": { + "title": "Collaborator", + "description": "Collaborator", + "type": "object", + "properties": { + "login": { "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z" + "example": "octocat" }, - "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", + "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": { - "description": "API URL for this codespace.", "type": "string", - "format": "uri" + "format": "uri", + "example": "https://api.github.com/users/octocat" }, - "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" - } - } + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" }, - "location": { - "description": "The initally assigned location of a new codespace.", - "enum": [ - "EastUs", - "SouthEastAsia", - "WestEurope", - "WestUs2" - ], - "example": "WestUs2", - "type": "string" + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" }, - "idle_timeout_minutes": { - "description": "The number of minutes of inactivity after which this codespace will be automatically stopped.", - "type": "integer", - "example": 60, - "nullable": true + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" }, - "web_url": { - "description": "URL to access this codespace on the web.", + "gists_url": { "type": "string", - "format": "uri" + "example": "https://api.github.com/users/octocat/gists{/gist_id}" }, - "machines_url": { - "description": "API URL to access available alternate machine types for this codespace.", + "starred_url": { "type": "string", - "format": "uri" + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" }, - "start_url": { - "description": "API URL to start this codespace.", + "subscriptions_url": { "type": "string", - "format": "uri" + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" }, - "stop_url": { - "description": "API URL to stop this codespace.", + "organizations_url": { "type": "string", - "format": "uri" + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" }, - "publish_url": { - "description": "API URL to publish this codespace to a new repository.", + "repos_url": { "type": "string", "format": "uri", - "nullable": true + "example": "https://api.github.com/users/octocat/repos" }, - "pulls_url": { - "description": "API URL for the Pull Request associated with this codespace, if any.", + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { "type": "string", "format": "uri", - "nullable": true + "example": "https://api.github.com/users/octocat/received_events" }, - "recent_folders": { - "type": "array", - "items": { - "type": "string" - } + "type": { + "type": "string", + "example": "User" }, - "runtime_constraints": { + "site_admin": { + "type": "boolean" + }, + "permissions": { "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 + "pull": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "admin": { + "type": "boolean" } - } - }, - "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 + }, + "required": [ + "pull", + "push", + "admin" + ] }, - "idle_timeout_notice": { - "description": "Text to show user when codespace idle timeout minutes has been overriden by an organization policy", + "role_name": { "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 + "example": "admin" }, - "retention_expires_at": { - "description": "When a codespace will be auto-deleted based on the \"retention_period_minutes\" and \"last_used_at\"", + "user_view_type": { "type": "string", - "format": "date-time", - "example": "2011-01-26T20:01:12Z", - "nullable": true + "example": "public" } }, "required": [ + "avatar_url", + "events_url", + "followers_url", + "following_url", + "gists_url", + "gravatar_id", + "html_url", "id", - "name", - "environment_id", - "owner", - "billable_owner", - "repository", - "machine", - "prebuild", - "created_at", - "updated_at", - "last_used_at", - "state", + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", "url", - "git_status", - "location", - "idle_timeout_minutes", - "web_url", - "machines_url", - "start_url", - "stop_url", - "pulls_url", - "recent_folders" + "role_name" ] }, - "email": { - "title": "Email", - "description": "Email", + "repository-invitation": { + "title": "Repository Invitation", + "description": "Repository invitations let you manage who you collaborate with.", "type": "object", "properties": { - "email": { - "type": "string", - "format": "email", - "example": "octocat@github.com" + "id": { + "description": "Unique identifier of the repository invitation.", + "example": 42, + "type": "integer", + "format": "int64" }, - "primary": { - "type": "boolean", - "example": true + "repository": { + "$ref": "#/components/schemas/minimal-repository" }, - "verified": { - "type": "boolean", - "example": true + "invitee": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "visibility": { + "inviter": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "permissions": { + "description": "The permission associated with the invitation.", + "example": "read", "type": "string", - "example": "public", - "nullable": true + "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": [ - "email", - "primary", - "verified", - "visibility" + "id", + "node_id", + "permissions", + "inviter", + "invitee", + "repository", + "url", + "html_url", + "created_at" ] }, - "gpg-key": { - "title": "GPG Key", - "description": "A unique encryption key", + "nullable-collaborator": { + "title": "Collaborator", + "description": "Collaborator", "type": "object", "properties": { + "login": { + "type": "string", + "example": "octocat" + }, "id": { "type": "integer", "format": "int64", - "example": 3 + "example": 1 + }, + "email": { + "nullable": true, + "type": "string" }, "name": { + "nullable": true, + "type": "string" + }, + "node_id": { "type": "string", - "example": "Octocat's GPG Key", - "nullable": true + "example": "MDQ6VXNlcjE=" }, - "primary_key_id": { - "type": "integer", + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", "nullable": true }, - "key_id": { + "url": { "type": "string", - "example": "3262EFF25BA0D270" + "format": "uri", + "example": "https://api.github.com/users/octocat" }, - "public_key": { + "html_url": { "type": "string", - "example": "xsBNBFayYZ..." + "format": "uri", + "example": "https://github.com/octocat" }, - "emails": { - "type": "array", - "example": [ - { - "email": "octocat@users.noreply.github.com", - "verified": true - } - ], - "items": { - "type": "object", - "properties": { - "email": { - "type": "string" - }, - "verified": { - "type": "boolean" - } - } - } + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" }, - "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" - } - } - } + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" }, - "can_sign": { - "type": "boolean", - "example": true + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" }, - "can_encrypt_comms": { - "type": "boolean" + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" }, - "can_encrypt_storage": { - "type": "boolean" + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" }, - "can_certify": { - "type": "boolean", - "example": true + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" }, - "created_at": { + "repos_url": { "type": "string", - "format": "date-time", - "example": "2016-03-24T11:31:04-06:00" + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" }, - "expires_at": { + "events_url": { "type": "string", - "format": "date-time", - "nullable": true + "example": "https://api.github.com/users/octocat/events{/privacy}" }, - "revoked": { - "type": "boolean", - "example": true + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" }, - "raw_key": { + "type": { "type": "string", - "nullable": true + "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", - "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" - ] + "node_id", + "login", + "organizations_url", + "received_events_url", + "repos_url", + "site_admin", + "starred_url", + "subscriptions_url", + "type", + "url", + "role_name" + ], + "nullable": true }, - "key": { - "title": "Key", - "description": "Key", + "repository-collaborator-permission": { + "title": "Repository Collaborator Permission", + "description": "Repository Collaborator Permission", "type": "object", "properties": { - "key": { - "type": "string" - }, - "id": { - "type": "integer", - "format": "int64" - }, - "url": { - "type": "string" - }, - "title": { + "permission": { "type": "string" }, - "created_at": { + "role_name": { "type": "string", - "format": "date-time" - }, - "verified": { - "type": "boolean" - }, - "read_only": { - "type": "boolean" + "example": "admin" }, - "last_used": { - "nullable": true, - "type": "string", - "format": "date-time" + "user": { + "$ref": "#/components/schemas/nullable-collaborator" } }, "required": [ - "key", - "id", - "url", - "title", - "created_at", - "verified", - "read_only" + "permission", + "role_name", + "user" ] }, - "marketplace-account": { - "title": "Marketplace Account", + "commit-comment": { + "title": "Commit Comment", + "description": "Commit Comment", "type": "object", "properties": { + "html_url": { + "type": "string", + "format": "uri" + }, "url": { "type": "string", "format": "uri" @@ -144150,2205 +146721,2008 @@ "id": { "type": "integer" }, - "type": { - "type": "string" - }, "node_id": { "type": "string" }, - "login": { + "body": { "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": { + "path": { "type": "string", - "example": "monthly" + "nullable": true }, - "next_billing_date": { - "type": "string", - "format": "date-time", - "example": "2017-11-11T00:00:00Z", + "position": { + "type": "integer", "nullable": true }, - "unit_count": { + "line": { "type": "integer", "nullable": true }, - "on_free_trial": { - "type": "boolean", - "example": true + "commit_id": { + "type": "string" }, - "free_trial_ends_on": { + "user": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "created_at": { "type": "string", - "format": "date-time", - "example": "2017-11-11T00:00:00Z", - "nullable": true + "format": "date-time" }, "updated_at": { "type": "string", - "format": "date-time", - "example": "2017-11-02T01:12:12Z", - "nullable": true + "format": "date-time" }, - "account": { - "$ref": "#/components/schemas/marketplace-account" + "author_association": { + "$ref": "#/components/schemas/author-association" }, - "plan": { - "$ref": "#/components/schemas/marketplace-listing-plan" + "reactions": { + "$ref": "#/components/schemas/reaction-rollup" } }, "required": [ - "billing_cycle", - "next_billing_date", - "unit_count", - "updated_at", - "on_free_trial", - "free_trial_ends_on", - "account", - "plan" + "url", + "html_url", + "id", + "node_id", + "user", + "position", + "line", + "path", + "commit_id", + "body", + "author_association", + "created_at", + "updated_at" ] }, - "social-account": { - "title": "Social account", - "description": "Social media account", + "reaction": { + "title": "Reaction", + "description": "Reactions to conversations provide a way to help people express their feelings more simply and effectively.", "type": "object", "properties": { - "provider": { - "type": "string", - "example": "linkedin" + "id": { + "type": "integer", + "example": 1 }, - "url": { + "node_id": { "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" + "example": "MDg6UmVhY3Rpb24x" }, - "id": { - "type": "integer" + "user": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "title": { - "type": "string" + "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" + "format": "date-time", + "example": "2016-05-20T20:09:31Z" } }, "required": [ - "key", "id", - "title", + "node_id", + "user", + "content", "created_at" ] }, - "starred-repository": { - "title": "Starred Repository", - "description": "Starred Repository", + "branch-short": { + "title": "Branch Short", + "description": "Branch Short", "type": "object", "properties": { - "starred_at": { - "type": "string", - "format": "date-time" + "name": { + "type": "string" }, - "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" - } + "commit": { + "type": "object", + "properties": { + "sha": { + "type": "string" }, - "required": [ - "message", - "octicon" - ] - } + "url": { + "type": "string" + } + }, + "required": [ + "sha", + "url" + ] + }, + "protected": { + "type": "boolean" } }, "required": [ - "contexts" + "name", + "commit", + "protected" ] }, - "key-simple": { - "title": "Key Simple", - "description": "Key Simple", + "simple-commit-status": { + "title": "Simple Commit Status", "type": "object", "properties": { + "description": { + "type": "string", + "nullable": true + }, "id": { "type": "integer" }, - "key": { + "node_id": { "type": "string" }, - "created_at": { - "type": "string", - "format": "date-time" + "state": { + "type": "string" }, - "last_used": { - "nullable": true, + "context": { + "type": "string" + }, + "target_url": { "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" - ] + "format": "uri", + "nullable": true }, - "user": { + "required": { + "type": "boolean", + "nullable": true + }, + "avatar_url": { "type": "string", - "description": "The unique identifier of the user." + "nullable": true, + "format": "uri" }, - "product": { + "url": { "type": "string", - "description": "The product for the usage report." + "format": "uri" }, - "model": { + "created_at": { "type": "string", - "description": "The model for the usage report." + "format": "date-time" }, - "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" - ] - } + "updated_at": { + "type": "string", + "format": "date-time" } }, "required": [ - "timePeriod", - "user", - "usageItems" + "description", + "id", + "node_id", + "state", + "context", + "target_url", + "avatar_url", + "url", + "created_at", + "updated_at" ] }, - "billing-usage-report-user": { + "combined-commit-status": { + "title": "Combined Commit Status", + "description": "Combined Commit Status", "type": "object", "properties": { - "usageItems": { + "state": { + "type": "string" + }, + "statuses": { "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" - ] + "$ref": "#/components/schemas/simple-commit-status" } - } - } - }, - "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." + "sha": { + "type": "string" + }, + "total_count": { + "type": "integer" }, "repository": { - "type": "string", - "description": "The name of the repository for the usage report." + "$ref": "#/components/schemas/minimal-repository" }, - "product": { + "commit_url": { "type": "string", - "description": "The product for the usage report." + "format": "uri" }, - "sku": { + "url": { "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" - ] - } + "format": "uri" } }, "required": [ - "timePeriod", - "user", - "usageItems" + "state", + "sha", + "total_count", + "statuses", + "repository", + "commit_url", + "url" ] }, - "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).\"", + "status": { + "title": "Status", + "description": "The status of a commit.", "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" + "url": { + "type": "string" }, - "website_url": { - "description": "The enterprise's website URL.", + "avatar_url": { "type": "string", - "nullable": true, - "format": "uri" + "nullable": true }, "id": { - "description": "Unique identifier of the enterprise", - "example": 42, "type": "integer" }, "node_id": { - "type": "string", - "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + "type": "string" }, - "name": { - "description": "The name of the enterprise.", + "state": { + "type": "string" + }, + "description": { "type": "string", - "example": "Octo Business" + "nullable": true }, - "slug": { - "description": "The slug url identifier for the enterprise.", + "target_url": { "type": "string", - "example": "octo-business" + "nullable": true + }, + "context": { + "type": "string" }, "created_at": { - "type": "string", - "nullable": true, - "format": "date-time", - "example": "2019-01-26T19:01:12Z" + "type": "string" }, "updated_at": { - "type": "string", - "nullable": true, - "format": "date-time", - "example": "2019-01-26T19:14:43Z" + "type": "string" }, - "avatar_url": { - "type": "string", - "format": "uri" + "creator": { + "$ref": "#/components/schemas/nullable-simple-user" } }, "required": [ + "url", + "avatar_url", "id", "node_id", - "name", - "slug", - "html_url", + "state", + "description", + "target_url", + "context", "created_at", "updated_at", - "avatar_url" + "creator" ] }, - "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).\"", + "nullable-code-of-conduct-simple": { + "title": "Code Of Conduct Simple", + "description": "Code of Conduct Simple", "type": "object", "properties": { - "id": { - "description": "The ID of the installation.", - "type": "integer", - "example": 1 + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/github/docs/community/code_of_conduct" }, - "node_id": { - "description": "The global node ID of the installation.", + "key": { "type": "string", - "example": "MDQ6VXNlcjU4MzIzMQ==" + "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": [ - "id", - "node_id" - ] + "url", + "key", + "name", + "html_url" + ], + "nullable": true }, - "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.", + "nullable-community-health-file": { + "title": "Community Health File", "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" + "format": "uri" }, - "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": { + "html_url": { "type": "string", - "example": "A great organization", - "nullable": true + "format": "uri" } }, "required": [ - "login", "url", - "id", - "node_id", - "repos_url", - "events_url", - "hooks_url", - "issues_url", - "members_url", - "public_members_url", - "avatar_url", - "description" - ] + "html_url" + ], + "nullable": true }, - "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.", + "community-profile": { + "title": "Community Profile", + "description": "Community Profile", "type": "object", "properties": { - "id": { - "description": "Unique identifier of the repository", - "example": 42, + "health_percentage": { "type": "integer", - "format": "int64" - }, - "node_id": { - "type": "string", - "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + "example": 100 }, - "name": { - "description": "The name of the repository.", + "description": { "type": "string", - "example": "Team Environment" + "example": "My first repository on GitHub!", + "nullable": true }, - "full_name": { + "documentation": { "type": "string", - "example": "octocat/Hello-World" - }, - "license": { - "$ref": "#/components/schemas/nullable-license-simple" - }, - "organization": { - "$ref": "#/components/schemas/nullable-simple-user" - }, - "forks": { - "type": "integer" + "example": "example.com", + "nullable": true }, - "permissions": { + "files": { "type": "object", "properties": { - "admin": { - "type": "boolean" + "code_of_conduct": { + "$ref": "#/components/schemas/nullable-code-of-conduct-simple" }, - "pull": { - "type": "boolean" + "code_of_conduct_file": { + "$ref": "#/components/schemas/nullable-community-health-file" }, - "triage": { - "type": "boolean" + "license": { + "$ref": "#/components/schemas/nullable-license-simple" }, - "push": { - "type": "boolean" + "contributing": { + "$ref": "#/components/schemas/nullable-community-health-file" }, - "maintain": { - "type": "boolean" + "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": [ - "admin", - "pull", - "push" + "code_of_conduct", + "code_of_conduct_file", + "license", + "contributing", + "readme", + "issue_template", + "pull_request_template" ] }, - "owner": { - "$ref": "#/components/schemas/simple-user" + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2017-02-28T19:09:29Z", + "nullable": true }, - "private": { - "description": "Whether the repository is private or public.", - "default": false, - "type": "boolean" + "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" + "example": "https://github.com/octocat/Hello-World/compare/master...topic" }, - "description": { + "permalink_url": { "type": "string", - "example": "This your first repo!", - "nullable": true - }, - "fork": { - "type": "boolean" + "format": "uri", + "example": "https://github.com/octocat/Hello-World/compare/octocat:bbcd538c8e72b8c175046e27cc8f907076331401...octocat:0328041d1152db8ae77652d1618a02e57f745f17" }, - "url": { + "diff_url": { "type": "string", "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World" + "example": "https://github.com/octocat/Hello-World/compare/master...topic.diff" }, - "archive_url": { + "patch_url": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + "format": "uri", + "example": "https://github.com/octocat/Hello-World/compare/master...topic.patch" }, - "assignees_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + "base_commit": { + "$ref": "#/components/schemas/commit" }, - "blobs_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + "merge_base_commit": { + "$ref": "#/components/schemas/commit" }, - "branches_url": { + "status": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + "enum": [ + "diverged", + "ahead", + "behind", + "identical" + ], + "example": "ahead" }, - "collaborators_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + "ahead_by": { + "type": "integer", + "example": 4 }, - "comments_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + "behind_by": { + "type": "integer", + "example": 5 }, - "commits_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + "total_commits": { + "type": "integer", + "example": 6 }, - "compare_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + "commits": { + "type": "array", + "items": { + "$ref": "#/components/schemas/commit" + } }, - "contents_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + "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" }, - "contributors_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + "size": { + "type": "integer" }, - "deployments_url": { + "name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "sha": { + "type": "string" + }, + "content": { + "type": "string" + }, + "url": { "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + "format": "uri" }, - "downloads_url": { + "git_url": { "type": "string", "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + "nullable": true }, - "events_url": { + "html_url": { "type": "string", "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/events" + "nullable": true }, - "forks_url": { + "download_url": { "type": "string", "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/forks" + "nullable": true }, - "git_commits_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + "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" + ] + } }, - "git_refs_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + "encoding": { + "type": "string" }, - "git_tags_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + "_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" + ] + } }, - "git_url": { + "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", - "example": "git:github.com/octocat/Hello-World.git" + "enum": [ + "file" + ] }, - "issue_comment_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + "encoding": { + "type": "string" }, - "issue_events_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + "size": { + "type": "integer" }, - "issues_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + "name": { + "type": "string" }, - "keys_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + "path": { + "type": "string" }, - "labels_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + "content": { + "type": "string" }, - "languages_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/languages" + "sha": { + "type": "string" }, - "merges_url": { + "url": { "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/merges" + "format": "uri" }, - "milestones_url": { + "git_url": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + "format": "uri", + "nullable": true }, - "notifications_url": { + "html_url": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + "format": "uri", + "nullable": true }, - "pulls_url": { + "download_url": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + "format": "uri", + "nullable": true }, - "releases_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + "_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" + ] }, - "ssh_url": { + "target": { "type": "string", - "example": "git@github.com:octocat/Hello-World.git" + "example": "\"actual/actual.md\"" }, - "stargazers_url": { + "submodule_git_url": { "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" - }, - "statuses_url": { + "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", - "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + "enum": [ + "symlink" + ] }, - "subscribers_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + "target": { + "type": "string" }, - "subscription_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + "size": { + "type": "integer" }, - "tags_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/tags" + "name": { + "type": "string" }, - "teams_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/teams" + "path": { + "type": "string" }, - "trees_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + "sha": { + "type": "string" }, - "clone_url": { + "url": { "type": "string", - "example": "https://github.com/octocat/Hello-World.git" + "format": "uri" }, - "mirror_url": { + "git_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": { + "html_url": { "type": "string", "format": "uri", - "example": "https://svn.github.com/octocat/Hello-World" + "nullable": true }, - "homepage": { + "download_url": { "type": "string", "format": "uri", - "example": "https://github.com", "nullable": true }, - "language": { + "_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", - "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 + "enum": [ + "submodule" + ] }, - "default_branch": { - "description": "The default branch of the repository.", + "submodule_git_url": { "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 + "format": "uri" }, - "has_pages": { - "type": "boolean" + "size": { + "type": "integer" }, - "has_downloads": { - "description": "Whether downloads are enabled.", - "default": true, - "type": "boolean", - "example": true + "name": { + "type": "string" }, - "has_discussions": { - "description": "Whether discussions are enabled.", - "default": false, - "type": "boolean", - "example": true + "path": { + "type": "string" }, - "has_pull_requests": { - "description": "Whether pull requests are enabled.", - "default": true, - "type": "boolean", - "example": true + "sha": { + "type": "string" }, - "pull_request_creation_policy": { - "description": "The policy controlling who can create pull requests: all or collaborators_only.", + "url": { "type": "string", - "enum": [ - "all", - "collaborators_only" - ] - }, - "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" + "format": "uri" }, - "pushed_at": { + "git_url": { "type": "string", - "format": "date-time", - "example": "2011-01-26T19:06:43Z", + "format": "uri", "nullable": true }, - "created_at": { + "html_url": { "type": "string", - "format": "date-time", - "example": "2011-01-26T19:01:12Z", + "format": "uri", "nullable": true }, - "updated_at": { + "download_url": { "type": "string", - "format": "date-time", - "example": "2011-01-26T19:14:43Z", + "format": "uri", "nullable": true }, - "allow_rebase_merge": { - "description": "Whether to allow rebase merges for pull requests.", - "default": true, - "type": "boolean", - "example": true - }, - "template_repository": { - "nullable": true, + "_links": { "type": "object", "properties": { - "id": { + "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" }, - "node_id": { + "url": { "type": "string" }, - "name": { + "html_url": { "type": "string" }, - "full_name": { + "git_url": { "type": "string" }, - "owner": { + "download_url": { + "type": "string" + }, + "type": { + "type": "string" + }, + "_links": { "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": { + "self": { "type": "string" }, - "followers_url": { + "git": { "type": "string" }, - "following_url": { + "html": { "type": "string" - }, - "gists_url": { + } + } + } + }, + "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" }, - "starred_url": { + "name": { "type": "string" }, - "subscriptions_url": { + "email": { "type": "string" - }, - "organizations_url": { + } + } + }, + "committer": { + "type": "object", + "properties": { + "date": { "type": "string" }, - "repos_url": { + "name": { "type": "string" }, - "events_url": { + "email": { "type": "string" - }, - "received_events_url": { + } + } + }, + "message": { + "type": "string" + }, + "tree": { + "type": "object", + "properties": { + "url": { "type": "string" }, - "type": { + "sha": { "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": { + "parents": { "type": "array", "items": { - "type": "string" + "type": "object", + "properties": { + "url": { + "type": "string" + }, + "html_url": { + "type": "string" + }, + "sha": { + "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": { + "verification": { "type": "object", "properties": { - "admin": { + "verified": { "type": "boolean" }, - "maintain": { - "type": "boolean" + "reason": { + "type": "string" }, - "push": { - "type": "boolean" + "signature": { + "type": "string", + "nullable": true }, - "triage": { - "type": "boolean" + "payload": { + "type": "string", + "nullable": true }, - "pull": { - "type": "boolean" + "verified_at": { + "type": "string", + "nullable": true } } - }, - "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": { + } + } + }, + "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" }, - "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": { + "documentation_url": { "type": "string" }, - "starred_at": { - "type": "string", - "example": "\"2020-07-09T00:17:42Z\"" + "status": { + "type": "string" }, - "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" - ], - "x-github-breaking-changes": [ - { - "changeset": "remove_use_squash_pr_title_as_default", - "patch": { - "properties": { - "use_squash_pr_title_as_default": null, - "template_repository": { - "properties": { - "use_squash_pr_title_as_default": null + "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" + } + } + } } } } - }, - "version": "2026-03-10" - }, - { - "changeset": "deprecate_beta_media_type", - "patch": { - "properties": { - "master_branch": null - } - }, - "version": "2026-03-10" + } } - ] + } }, - "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.", + "contributor": { + "title": "Contributor", + "description": "Contributor", "type": "object", "properties": { - "admin_enforced": { - "type": "boolean" + "login": { + "type": "string" }, - "allow_deletions_enforcement_level": { - "type": "string", - "enum": [ - "off", - "non_admins", - "everyone" - ] + "id": { + "type": "integer" }, - "allow_force_pushes_enforcement_level": { - "type": "string", - "enum": [ - "off", - "non_admins", - "everyone" - ] + "node_id": { + "type": "string" }, - "authorized_actor_names": { - "type": "array", - "items": { - "type": "string" - } + "avatar_url": { + "type": "string", + "format": "uri" }, - "authorized_actors_only": { - "type": "boolean" + "gravatar_id": { + "type": "string", + "nullable": true }, - "authorized_dismissal_actors_only": { - "type": "boolean" + "url": { + "type": "string", + "format": "uri" }, - "create_protected": { - "type": "boolean" + "html_url": { + "type": "string", + "format": "uri" }, - "created_at": { + "followers_url": { "type": "string", - "format": "date-time" + "format": "uri" }, - "dismiss_stale_reviews_on_push": { - "type": "boolean" + "following_url": { + "type": "string" }, - "id": { - "type": "integer" + "gists_url": { + "type": "string" }, - "ignore_approvals_from_contributors": { - "type": "boolean" + "starred_url": { + "type": "string" }, - "linear_history_requirement_enforcement_level": { + "subscriptions_url": { "type": "string", - "enum": [ - "off", - "non_admins", - "everyone" - ] + "format": "uri" }, - "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.", + "organizations_url": { "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" + "format": "uri" }, - "merge_queue_enforcement_level": { + "repos_url": { "type": "string", - "enum": [ - "off", - "non_admins", - "everyone" - ] + "format": "uri" }, - "name": { + "events_url": { "type": "string" }, - "pull_request_reviews_enforcement_level": { + "received_events_url": { "type": "string", - "enum": [ - "off", - "non_admins", - "everyone" - ] - }, - "repository_id": { - "type": "integer" + "format": "uri" }, - "require_code_owner_review": { - "type": "boolean" + "type": { + "type": "string" }, - "require_last_push_approval": { - "description": "Whether the most recent push must be approved by someone other than the person who pushed it", + "site_admin": { "type": "boolean" }, - "required_approving_review_count": { + "contributions": { "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" - ] + "email": { + "type": "string" }, - "strict_required_status_checks_policy": { - "type": "boolean" + "name": { + "type": "string" }, - "updated_at": { - "type": "string", - "format": "date-time" + "user_view_type": { + "type": "string" } }, "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" + "contributions", + "type" ] }, - "simple-check-suite": { - "description": "A suite of checks performed on the code of a given code change", + "dependabot-alert": { "type": "object", + "description": "A Dependabot alert.", "properties": { - "after": { - "example": "d6fde92930d4715a2b49857d24b940956b26d2d3", - "type": "string", - "nullable": true - }, - "app": { - "$ref": "#/components/schemas/integration" - }, - "before": { - "example": "146e867f55c26428e5f9fade55a9bbf5e95a7912", - "type": "string", - "nullable": true + "number": { + "$ref": "#/components/schemas/alert-number" }, - "conclusion": { - "example": "neutral", + "state": { "type": "string", - "nullable": true, + "description": "The state of the Dependabot alert.", + "readOnly": true, "enum": [ - "success", - "failure", - "neutral", - "cancelled", - "skipped", - "timed_out", - "action_required", - "stale", - "startup_failure" + "auto_dismissed", + "dismissed", + "fixed", + "open" ] }, - "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" + "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", + "inconclusive" + ] + } + } }, - "id": { - "example": 5, - "type": "integer" + "security_advisory": { + "$ref": "#/components/schemas/dependabot-alert-security-advisory" }, - "node_id": { - "example": "MDEwOkNoZWNrU3VpdGU1", - "type": "string" + "security_vulnerability": { + "$ref": "#/components/schemas/dependabot-alert-security-vulnerability" }, - "pull_requests": { - "type": "array", - "items": { - "$ref": "#/components/schemas/pull-request-minimal" - } + "url": { + "$ref": "#/components/schemas/alert-url" }, - "repository": { - "$ref": "#/components/schemas/minimal-repository" + "html_url": { + "$ref": "#/components/schemas/alert-html-url" }, - "status": { - "example": "completed", - "type": "string", - "enum": [ - "queued", - "in_progress", - "completed", - "pending", - "waiting" - ] + "created_at": { + "$ref": "#/components/schemas/alert-created-at" }, "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" + "$ref": "#/components/schemas/alert-updated-at" }, - "check_suite": { - "$ref": "#/components/schemas/simple-check-suite" + "dismissed_at": { + "$ref": "#/components/schemas/alert-dismissed-at" }, - "completed_at": { - "example": "2018-05-04T01:14:52Z", - "type": "string", - "nullable": true, - "format": "date-time" + "dismissed_by": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "conclusion": { - "example": "neutral", + "dismissed_reason": { "type": "string", + "description": "The reason that the alert was dismissed.", "nullable": true, "enum": [ - "waiting", - "pending", - "startup_failure", - "stale", - "success", - "failure", - "neutral", - "cancelled", - "skipped", - "timed_out", - "action_required" + "fix_started", + "inaccurate", + "no_bandwidth", + "not_used", + "tolerable_risk" ] }, - "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" + "dismissed_comment": { + "type": "string", + "description": "An optional comment associated with the alert's dismissal.", + "nullable": true, + "maxLength": 280 }, - "name": { - "description": "The name of the check.", - "example": "test-coverage", - "type": "string" + "fixed_at": { + "$ref": "#/components/schemas/alert-fixed-at" }, - "node_id": { - "example": "MDg6Q2hlY2tSdW40", - "type": "string" + "auto_dismissed_at": { + "$ref": "#/components/schemas/alert-auto-dismissed-at" }, - "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" - ] + "dismissal_request": { + "$ref": "#/components/schemas/dependabot-alert-dismissal-request-simple" }, - "pull_requests": { + "assignees": { "type": "array", + "description": "The users assigned to this alert.", + "readOnly": true, "items": { - "$ref": "#/components/schemas/pull-request-minimal" + "$ref": "#/components/schemas/simple-user" } + } + }, + "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" }, - "started_at": { - "example": "2018-05-04T01:14:52Z", + "created_at": { "type": "string", "format": "date-time" }, - "status": { - "description": "The phase of the lifecycle that the check is currently in.", - "example": "queued", + "updated_at": { "type": "string", - "enum": [ - "queued", - "in_progress", - "completed", - "pending" - ] - }, - "url": { - "example": "https://api.github.com/repos/github/hello-world/check-runs/4", - "type": "string" + "format": "date-time" } }, "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" + "created_at", + "updated_at" ] }, - "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" + "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" + ] + } }, - "webhooks_deploy_pusher_type": { - "description": "The pusher type for the event. Can be either `user` or a deploy key.", - "type": "string" + "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" + ] }, - "webhooks_ref_0": { - "description": "The [`git ref`](https://docs.github.com/rest/git/refs#get-a-reference) resource.", - "type": "string" + "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" + } + ] + } }, - "webhooks_deploy_key": { - "description": "The [`deploy key`](https://docs.github.com/rest/deploy-keys/deploy-keys#get-a-deploy-key) resource.", + "dependency": { "type": "object", "properties": { - "added_by": { + "package_url": { "type": "string", - "nullable": true - }, - "created_at": { - "type": "string" - }, - "id": { - "type": "integer" + "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" }, - "key": { - "type": "string" + "metadata": { + "$ref": "#/components/schemas/metadata" }, - "last_used": { + "relationship": { "type": "string", - "nullable": true - }, - "read_only": { - "type": "boolean" - }, - "title": { - "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" + ] }, - "url": { + "scope": { "type": "string", - "format": "uri" - }, - "verified": { - "type": "boolean" + "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" + ] }, - "enabled": { - "type": "boolean" + "dependencies": { + "type": "array", + "description": "Array of package-url (PURLs) of direct child dependencies.", + "example": "@actions/http-client", + "items": { + "type": "string" + } } }, - "required": [ - "id", - "key", - "url", - "title", - "verified", - "created_at", - "read_only" - ] + "additionalProperties": false }, - "webhooks_workflow": { - "title": "Workflow", + "manifest": { "type": "object", - "nullable": true, "properties": { - "badge_url": { + "name": { "type": "string", - "format": "uri" + "description": "The name of the manifest.", + "example": "package-lock.json" }, - "created_at": { - "type": "string", - "format": "date-time" + "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 }, - "html_url": { - "type": "string", - "format": "uri" + "metadata": { + "$ref": "#/components/schemas/metadata" }, - "id": { + "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" }, - "name": { - "type": "string" + "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 }, - "node_id": { - "type": "string" + "sha": { + "description": "The commit SHA associated with this dependency snapshot. Maximum length: 40 characters.", + "type": "string", + "example": "ddc951f4b1293222421f2c8df679786153acf689", + "minLength": 40, + "maxLength": 40 }, - "path": { - "type": "string" + "ref": { + "description": "The repository branch that triggered this snapshot.", + "type": "string", + "pattern": "^refs/", + "example": "refs/heads/main" }, - "state": { - "type": "string" + "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 }, - "updated_at": { - "type": "string", - "format": "date-time" + "metadata": { + "$ref": "#/components/schemas/metadata" }, - "url": { + "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": "uri" + "format": "date-time", + "description": "The time at which the snapshot was scanned.", + "example": "2020-06-13T14:52:50-05:00" } }, "required": [ - "badge_url", - "created_at", - "html_url", - "id", - "name", - "node_id", - "path", - "state", - "updated_at", - "url" - ] + "detector", + "version", + "ref", + "sha", + "job", + "scanned" + ], + "additionalProperties": false }, - "nullable-deployment": { - "title": "Deployment", - "description": "A request for a specific ref(branch,sha,tag) to be deployed", + "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/1" + "example": "https://api.github.com/repos/octocat/example/deployments/42/statuses/1" }, "id": { - "description": "Unique identifier of the deployment", "type": "integer", "format": "int64", - "example": 42 + "example": 1 }, "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" + "example": "MDE2OkRlcGxveW1lbnRTdGF0dXMx" }, - "task": { - "description": "Parameter to specify a task to execute", - "example": "deploy", + "state": { + "description": "The state of the status.", + "enum": [ + "error", + "failure", + "inactive", + "pending", + "success", + "queued", + "in_progress" + ], + "example": "success", "type": "string" }, - "payload": { - "oneOf": [ - { - "type": "object", - "additionalProperties": true - }, - { - "type": "string" - } - ] + "creator": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "original_environment": { + "description": { + "description": "A short description of the status.", + "default": "", "type": "string", - "example": "staging" + "maxLength": 140, + "example": "Deployment finished successfully." }, "environment": { - "description": "Name for the target deployment environment.", - "example": "production", - "type": "string" - }, - "description": { + "description": "The environment of the deployment that the status is for.", + "default": "", "type": "string", - "example": "Deploy request from hubot", - "nullable": true + "example": "production" }, - "creator": { - "$ref": "#/components/schemas/nullable-simple-user" + "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", @@ -146360,25 +148734,29 @@ "format": "date-time", "example": "2012-07-20T01:19:13Z" }, - "statuses_url": { + "deployment_url": { "type": "string", "format": "uri", - "example": "https://api.github.com/repos/octocat/example/deployments/1/statuses" + "example": "https://api.github.com/repos/octocat/example/deployments/42" }, "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" + "environment_url": { + "description": "The URL for accessing your environment.", + "default": "", + "type": "string", + "format": "uri", + "example": "https://staging.example.com/" }, - "production_environment": { - "description": "Specifies if the given environment is one that end-users directly interact with. Default: false.", - "example": true, - "type": "boolean" + "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" @@ -146387,608 +148765,585 @@ "required": [ "id", "node_id", - "sha", - "ref", - "task", - "environment", + "state", "creator", - "payload", "description", - "statuses_url", + "deployment_url", + "target_url", "repository_url", "url", "created_at", "updated_at" - ], - "nullable": true + ] }, - "webhooks_approver": { + "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": { - "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" + "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": { - "type": "integer" - }, - "login": { - "type": "string" + "description": "The id of the environment.", + "example": 56780428, + "type": "integer", + "format": "int64" }, "node_id": { - "type": "string" - }, - "organizations_url": { - "type": "string" - }, - "received_events_url": { - "type": "string" + "type": "string", + "example": "MDExOkVudmlyb25tZW50NTY3ODA0Mjg=" }, - "repos_url": { + "name": { + "description": "The name of the environment.", + "example": "staging", "type": "string" }, - "site_admin": { - "type": "boolean" - }, - "starred_url": { - "type": "string" + "url": { + "type": "string", + "example": "https://api.github.com/repos/github/hello-world/environments/staging" }, - "subscriptions_url": { - "type": "string" + "html_url": { + "type": "string", + "example": "https://github.com/github/hello-world/deployments/activity_log?environments_filter=staging" }, - "type": { + "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" }, - "url": { + "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" }, - "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" + "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": { - "type": "string", - "enum": [ - "Bot", - "User", - "Organization" + { + "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" ] }, - "url": { - "type": "string", - "format": "uri" + { + "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" + ] } - }, - "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" + "deployment_branch_policy": { + "$ref": "#/components/schemas/deployment-branch-policy-settings" } }, "required": [ "id", + "node_id", "name", - "status", - "conclusion", + "url", "html_url", "created_at", - "updated_at", - "environment" + "updated_at" ] }, - "webhooks_user": { - "title": "User", + "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", - "nullable": true, "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "deleted": { - "type": "boolean" - }, - "email": { - "type": "string", - "nullable": true - }, - "events_url": { - "type": "string", - "format": "uri-template" + "id": { + "description": "The unique identifier of the branch or tag policy.", + "type": "integer", + "example": 361471 }, - "followers_url": { + "node_id": { "type": "string", - "format": "uri" + "example": "MDE2OkdhdGVCcmFuY2hQb2xpY3kzNjE0NzE=" }, - "following_url": { + "name": { + "description": "The name pattern that branches or tags must match in order to deploy to the environment.", "type": "string", - "format": "uri-template" + "example": "release/*" }, - "gists_url": { + "type": { + "description": "Whether this rule targets a branch or tag.", "type": "string", - "format": "uri-template" - }, - "gravatar_id": { - "type": "string" - }, - "html_url": { + "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", - "format": "uri" - }, - "id": { - "type": "integer", - "format": "int64" - }, - "login": { - "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": { - "type": "string" - }, - "node_id": { - "type": "string" - }, - "organizations_url": { + "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", - "format": "uri" + "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." }, - "received_events_url": { + "slug": { "type": "string", - "format": "uri" + "example": "my-custom-app", + "description": "The slugified name of the deployment protection rule integration." }, - "repos_url": { + "integration_url": { "type": "string", - "format": "uri" - }, - "site_admin": { - "type": "boolean" + "example": "https://api.github.com/apps/custom-app-slug", + "description": "The URL for the endpoint to get details about the app." }, - "starred_url": { + "node_id": { "type": "string", - "format": "uri-template" + "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." }, - "subscriptions_url": { + "node_id": { "type": "string", - "format": "uri" + "example": "MDQ6R2F0ZTM1MTU=", + "description": "The node ID for the deployment protection rule." }, - "type": { - "type": "string", - "enum": [ - "Bot", - "User", - "Organization" - ] + "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", - "format": "uri" + "type": "string" }, - "user_view_type": { + "sha": { "type": "string" } }, "required": [ - "login", - "id" + "url", + "sha" ] }, - "webhooks_answer": { + "blob": { + "title": "Blob", + "description": "Blob", "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": { + "content": { "type": "string" }, - "child_comment_count": { - "type": "integer" + "encoding": { + "type": "string" }, - "created_at": { + "url": { "type": "string", - "format": "date-time" + "format": "uri" }, - "discussion_id": { - "type": "integer" + "sha": { + "type": "string" }, - "html_url": { + "size": { + "type": "integer", + "nullable": true + }, + "node_id": { "type": "string" }, - "id": { - "type": "integer" + "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" }, - "parent_id": { - "nullable": true + "url": { + "type": "string", + "format": "uri" }, - "reactions": { - "title": "Reactions", + "author": { + "description": "Identifying information for the git-user", "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" + "date": { + "description": "Timestamp of the commit", + "example": "2014-08-09T08:02:04+12:00", + "format": "date-time", + "type": "string" }, - "url": { + "email": { "type": "string", - "format": "uri" + "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": [ - "url", - "total_count", - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "eyes", - "rocket" + "email", + "name", + "date" ] }, - "repository_url": { - "type": "string" - }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "user": { - "title": "User", + "committer": { + "description": "Identifying information for the git-user", "type": "object", - "nullable": true, "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "deleted": { - "type": "boolean" - }, - "email": { - "type": "string", - "nullable": true - }, - "events_url": { - "type": "string", - "format": "uri-template" - }, - "followers_url": { - "type": "string", - "format": "uri" - }, - "following_url": { - "type": "string", - "format": "uri-template" - }, - "gists_url": { - "type": "string", - "format": "uri-template" - }, - "gravatar_id": { + "date": { + "description": "Timestamp of the commit", + "example": "2014-08-09T08:02:04+12:00", + "format": "date-time", "type": "string" }, - "html_url": { + "email": { "type": "string", - "format": "uri" - }, - "id": { - "type": "integer", - "format": "int64" - }, - "login": { - "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" - }, - "node_id": { + } + }, + "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" }, - "organizations_url": { - "type": "string", - "format": "uri" - }, - "received_events_url": { - "type": "string", - "format": "uri" - }, - "repos_url": { + "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" + } }, - "site_admin": { + "required": [ + "sha", + "url", + "html_url" + ] + } + }, + "verification": { + "type": "object", + "properties": { + "verified": { "type": "boolean" }, - "starred_url": { - "type": "string", - "format": "uri-template" + "reason": { + "type": "string" }, - "subscriptions_url": { + "signature": { "type": "string", - "format": "uri" + "nullable": true }, - "type": { + "payload": { "type": "string", - "enum": [ - "Bot", - "User", - "Organization" - ] + "nullable": true }, - "url": { + "verified_at": { "type": "string", - "format": "uri" - }, - "user_view_type": { - "type": "string" + "nullable": true } }, "required": [ - "login", - "id" + "verified", + "reason", + "signature", + "payload", + "verified_at" ] + }, + "html_url": { + "type": "string", + "format": "uri" } }, "required": [ - "id", + "sha", "node_id", + "url", "html_url", - "parent_id", - "child_comment_count", - "repository_url", - "discussion_id", - "author_association", - "user", - "created_at", - "updated_at", - "body" + "author", + "committer", + "tree", + "message", + "parents", + "verification" ] }, - "webhooks_comment": { + "git-ref": { + "title": "Git Reference", + "description": "Git references within a repository", "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": { + "ref": { "type": "string" }, - "id": { - "type": "integer" - }, "node_id": { "type": "string" }, - "parent_id": { - "type": "integer", - "nullable": true + "url": { + "type": "string", + "format": "uri" }, - "reactions": { - "title": "Reactions", + "object": { "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" + "type": { + "type": "string" }, - "total_count": { - "type": "integer" + "sha": { + "description": "SHA for the reference", + "example": "7638417db6d59f3c431d3e1f261cc637155684cd", + "type": "string", + "minLength": 40, + "maxLength": 40 }, "url": { "type": "string", @@ -146996,6216 +149351,4906 @@ } }, "required": [ - "url", - "total_count", - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "eyes", - "rocket" + "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==" }, - "repository_url": { + "tag": { + "description": "Name of the tag", + "example": "v0.0.1", "type": "string" }, - "updated_at": { + "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" }, - "user": { - "title": "User", + "tagger": { "type": "object", - "nullable": true, "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "deleted": { - "type": "boolean" - }, - "email": { - "type": "string", - "nullable": true - }, - "events_url": { - "type": "string", - "format": "uri-template" - }, - "followers_url": { - "type": "string", - "format": "uri" - }, - "following_url": { - "type": "string", - "format": "uri-template" - }, - "gists_url": { - "type": "string", - "format": "uri-template" - }, - "gravatar_id": { + "date": { "type": "string" }, - "html_url": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "integer", - "format": "int64" - }, - "login": { + "email": { "type": "string" }, "name": { "type": "string" - }, - "node_id": { + } + }, + "required": [ + "date", + "email", + "name" + ] + }, + "object": { + "type": "object", + "properties": { + "sha": { "type": "string" }, - "organizations_url": { - "type": "string", - "format": "uri" - }, - "received_events_url": { - "type": "string", - "format": "uri" - }, - "repos_url": { - "type": "string", - "format": "uri" - }, - "site_admin": { - "type": "boolean" - }, - "starred_url": { - "type": "string", - "format": "uri-template" - }, - "subscriptions_url": { - "type": "string", - "format": "uri" - }, "type": { - "type": "string", - "enum": [ - "Bot", - "User", - "Organization" - ] + "type": "string" }, "url": { "type": "string", "format": "uri" - }, - "user_view_type": { - "type": "string" } }, "required": [ - "login", - "id" + "sha", + "type", + "url" ] + }, + "verification": { + "$ref": "#/components/schemas/verification" } }, "required": [ - "id", + "sha", + "url", "node_id", - "html_url", - "parent_id", - "child_comment_count", - "repository_url", - "discussion_id", - "author_association", - "user", - "created_at", - "updated_at", - "body", - "reactions" + "tagger", + "object", + "tag", + "message" ] }, - "webhooks_label": { - "title": "Label", + "git-tree": { + "title": "Git Tree", + "description": "The hierarchy between files in a Git repository.", "type": "object", "properties": { - "color": { - "description": "6-character hex code, without the leading #, identifying the color", + "sha": { "type": "string" }, - "default": { + "url": { + "type": "string", + "format": "uri" + }, + "truncated": { "type": "boolean" }, - "description": { + "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" + ] + }, + "repository-hash-algorithm": { + "title": "Repository hash algorithm", + "description": "Repository hash algorithm", + "type": "object", + "properties": { + "hash_algorithm": { + "type": "string", + "description": "The Git hash algorithm used by this repository.", + "enum": [ + "sha1", + "sha256" + ], + "example": "sha1" + } + }, + "required": [ + "hash_algorithm" + ] + }, + "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 the label.", + "description": "The name of a valid service, use 'web' for a webhook.", + "example": "web", "type": "string" }, - "node_id": { - "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": { - "description": "URL for the label", "type": "string", - "format": "uri" + "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", - "node_id", "url", + "type", "name", - "color", - "default", - "description" + "active", + "events", + "config", + "ping_url", + "created_at", + "updated_at", + "last_response", + "test_url" ] }, - "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" - } + "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." }, - "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" + "enforced_by_owner": { + "type": "boolean", + "example": false, + "description": "Whether immutable releases are enforced by the repository owner." + } + }, + "required": [ + "enabled", + "enforced_by_owner" ] }, - "webhooks_issue_comment": { - "title": "issue comment", - "description": "The [comment](https://docs.github.com/rest/issues/comments#get-an-issue-comment) itself.", + "import": { + "title": "Import", + "description": "A repository import from an external source.", "type": "object", "properties": { - "author_association": { - "title": "AuthorAssociation", - "description": "How the author is associated with the repository.", + "vcs": { "type": "string", - "enum": [ - "COLLABORATOR", - "CONTRIBUTOR", - "FIRST_TIMER", - "FIRST_TIME_CONTRIBUTOR", - "MANNEQUIN", - "MEMBER", - "NONE", - "OWNER" - ] + "nullable": true }, - "body": { - "description": "Contents of the issue comment", + "use_lfs": { + "type": "boolean" + }, + "vcs_url": { + "description": "The URL of the originating repository.", "type": "string" }, - "created_at": { + "svc_root": { + "type": "string" + }, + "tfvc_project": { + "type": "string" + }, + "status": { "type": "string", - "format": "date-time" + "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" + ] }, - "html_url": { + "status_text": { "type": "string", - "format": "uri" + "nullable": true }, - "id": { - "description": "Unique identifier of the issue comment", - "type": "integer", - "format": "int64" + "failed_step": { + "type": "string", + "nullable": true }, - "issue_url": { + "error_message": { "type": "string", - "format": "uri" + "nullable": true }, - "node_id": { - "type": "string" + "import_percent": { + "type": "integer", + "nullable": true }, - "performed_via_github_app": { - "$ref": "#/components/schemas/integration" + "commit_count": { + "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" + "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" + } } - }, - "required": [ - "url", - "total_count", - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "eyes", - "rocket" - ] + } }, - "updated_at": { - "type": "string", - "format": "date-time" + "message": { + "type": "string" + }, + "authors_count": { + "type": "integer", + "nullable": true }, "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" - ] + "html_url": { + "type": "string", + "format": "uri" }, - "pin": { - "$ref": "#/components/schemas/nullable-pinned-issue-comment" + "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", - "issue_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", - "node_id", - "user", - "created_at", - "updated_at", - "author_association", - "performed_via_github_app", - "body", - "reactions" + "remote_id", + "remote_name", + "email", + "name", + "url", + "import_url" ] }, - "webhooks_changes": { - "description": "The changes to the comment.", + "porter-large-file": { + "title": "Porter Large File", + "description": "Porter Large File", "type": "object", "properties": { - "body": { - "type": "object", - "properties": { - "from": { - "description": "The previous version of the body.", - "type": "string" - } + "ref_name": { + "type": "string" + }, + "path": { + "type": "string" + }, + "oid": { + "type": "string" + }, + "size": { + "type": "integer" + } + }, + "required": [ + "oid", + "path", + "ref_name", + "size" + ] + }, + "interaction-limit-pull-request-bypass-list": { + "title": "Interaction Limits Pull Request Bypass List", + "description": "A list of user logins to add or remove from the pull request creation cap bypass list.", + "type": "object", + "properties": { + "users": { + "description": "A list of user logins to add or remove from the bypass list.", + "type": "array", + "items": { + "type": "string" }, - "required": [ - "from" + "example": [ + "octocat", + "monalisa" ] } - } + }, + "required": [ + "users" + ] }, - "webhooks_issue": { + "nullable-issue": { "title": "Issue", - "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "description": "Issues are a great way to keep track of tasks, enhancements, and bugs for your projects.", "type": "object", "properties": { - "active_lock_reason": { + "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": [ - "resolved", - "off-topic", - "too heated", - "spam", - null + "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": { - "title": "User", + "$ref": "#/components/schemas/nullable-simple-user" + }, + "assignees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "milestone": { + "$ref": "#/components/schemas/nullable-milestone" + }, + "locked": { + "type": "boolean" + }, + "active_lock_reason": { + "type": "string", + "nullable": true + }, + "comments": { + "type": "integer" + }, + "pull_request": { "type": "object", - "nullable": true, "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "deleted": { - "type": "boolean" - }, - "email": { + "merged_at": { "type": "string", + "format": "date-time", "nullable": true }, - "events_url": { - "type": "string", - "format": "uri-template" - }, - "followers_url": { - "type": "string", - "format": "uri" - }, - "following_url": { - "type": "string", - "format": "uri-template" - }, - "gists_url": { + "diff_url": { "type": "string", - "format": "uri-template" - }, - "gravatar_id": { - "type": "string" + "format": "uri", + "nullable": true }, "html_url": { "type": "string", - "format": "uri" - }, - "id": { - "type": "integer" - }, - "login": { - "type": "string" - }, - "name": { - "type": "string" - }, - "node_id": { - "type": "string" - }, - "organizations_url": { - "type": "string", - "format": "uri" - }, - "received_events_url": { - "type": "string", - "format": "uri" - }, - "repos_url": { - "type": "string", - "format": "uri" - }, - "site_admin": { - "type": "boolean" - }, - "starred_url": { - "type": "string", - "format": "uri-template" - }, - "subscriptions_url": { - "type": "string", - "format": "uri" + "format": "uri", + "nullable": true }, - "type": { + "patch_url": { "type": "string", - "enum": [ - "Bot", - "User", - "Organization", - "Mannequin" - ] + "format": "uri", + "nullable": true }, "url": { "type": "string", - "format": "uri" - }, - "user_view_type": { - "type": "string" + "format": "uri", + "nullable": true } }, "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" + "diff_url", + "html_url", + "patch_url", + "url" ] }, - "body": { - "description": "Contents of the issue", + "closed_at": { "type": "string", + "format": "date-time", "nullable": true }, - "closed_at": { + "created_at": { "type": "string", - "nullable": true, "format": "date-time" }, - "comments": { - "type": "integer" - }, - "comments_url": { - "type": "string", - "format": "uri" - }, - "created_at": { + "updated_at": { "type": "string", "format": "date-time" }, "draft": { "type": "boolean" }, - "events_url": { + "closed_by": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "body_html": { + "type": "string" + }, + "body_text": { + "type": "string" + }, + "timeline_url": { "type": "string", "format": "uri" }, - "html_url": { + "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" + "format": "uri", + "nullable": true }, - "id": { - "type": "integer", - "format": "int64" + "pinned_comment": { + "$ref": "#/components/schemas/nullable-issue-comment" }, - "labels": { + "issue_dependencies_summary": { + "$ref": "#/components/schemas/issue-dependencies-summary" + }, + "issue_field_values": { "type": "array", "items": { - "title": "Label", - "type": "object", + "$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" + ], + "x-github-breaking-changes": [ + { + "changeset": "deprecate_beta_media_type", + "patch": { "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" + "pull_request": { + "type": "object", + "properties": { + "merged_at": { + "nullable": false + }, + "diff_url": { + "nullable": false + }, + "html_url": { + "nullable": false + }, + "patch_url": { + "nullable": false + }, + "url": { + "nullable": false + } + } } + } + }, + "version": "2026-03-10" + }, + { + "changeset": "remove_singular_assignee_from_issues_and_pull_requests", + "patch": { + "properties": { + "assignee": null }, "required": [ + "closed_at", + "comments", + "comments_url", + "events_url", + "html_url", "id", "node_id", + "labels", + "labels_url", + "milestone", + "number", + "repository_url", + "state", + "locked", + "title", "url", - "name", - "color", - "default", - "description" + "user", + "created_at", + "updated_at" ] - } + }, + "version": "2026-03-10" + } + ], + "nullable": true + }, + "issue-event-label": { + "title": "Issue Event Label", + "description": "Issue Event Label", + "type": "object", + "properties": { + "name": { + "type": "string", + "nullable": true }, - "labels_url": { + "color": { "type": "string", - "format": "uri-template" + "nullable": true + } + }, + "required": [ + "name", + "color" + ] + }, + "issue-event-dismissed-review": { + "title": "Issue Event Dismissed Review", + "type": "object", + "properties": { + "state": { + "type": "string" }, - "locked": { - "type": "boolean" + "review_id": { + "type": "integer" }, - "milestone": { - "title": "Milestone", - "description": "A collection of related issues and pull requests.", + "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-type-webhook": { + "title": "Issue Type", + "description": "The type of issue.", + "type": "object", + "nullable": true, + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the issue type." + }, + "name": { + "type": "string", + "description": "The name of the issue type." + }, + "color": { + "type": "string", + "description": "The color of the issue type.", + "enum": [ + "gray", + "blue", + "green", + "yellow", + "orange", + "red", + "pink", + "purple" + ], + "nullable": true + } + }, + "required": [ + "id", + "name" + ] + }, + "nullable-issue-reference": { + "title": "Issue Reference", + "description": "A minimal reference to an issue linked from a timeline event (e.g. sub-issue, parent-issue, or dependency events).", + "type": "object", + "nullable": true, + "properties": { + "number": { + "type": "integer", + "description": "The number of the referenced issue." + }, + "title": { + "type": "string", + "description": "The title of the referenced issue." + }, + "state": { + "type": "string", + "description": "The state of the referenced issue." + }, + "state_reason": { + "type": "string", + "description": "The reason for the referenced issue's state.", + "nullable": true + }, + "repository": { + "$ref": "#/components/schemas/simple-repository" + }, + "issue_type": { + "title": "Issue Type", + "description": "The type of the referenced issue.", "type": "object", "nullable": true, "properties": { - "closed_at": { - "type": "string", - "nullable": true, - "format": "date-time" + "id": { + "type": "integer", + "description": "The unique identifier of the issue type." }, - "closed_issues": { - "type": "integer" + "node_id": { + "type": "string", + "description": "The node identifier of the issue type." }, - "created_at": { + "name": { "type": "string", - "format": "date-time" + "description": "The name of the issue type." }, - "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": { + "color": { "type": "string", + "description": "The color of the issue type.", "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" + "name" ] + } + }, + "required": [ + "number", + "title", + "state", + "repository", + "issue_type" + ] + }, + "nullable-issue-event-intent": { + "title": "Issue Event Intent", + "description": "The intent behind an agent's action on an issue, including the rationale and confidence. Present (and `null` when the event carried no agent intent) on supported event types while the issue suggestions feature is enabled for the repository; the property is omitted entirely when the feature is disabled or the event type does not support intent.", + "type": "object", + "nullable": true, + "properties": { + "rationale": { + "type": "string", + "description": "The reasoning the agent provided for the change.", + "nullable": true + }, + "confidence": { + "type": "string", + "description": "The confidence level the agent had when performing this action.", + "enum": [ + "LOW", + "MEDIUM", + "HIGH" + ], + "nullable": true + } + } + }, + "issue-event": { + "title": "Issue Event", + "description": "Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer", + "format": "int64", + "example": 1 }, "node_id": { - "type": "string" + "type": "string", + "example": "MDEwOklzc3VlRXZlbnQx" }, - "number": { - "type": "integer" + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/issues/events/1" }, - "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" - ] + "actor": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "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" - } - } + "event": { + "type": "string", + "example": "closed" }, - "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" - ] + "commit_id": { + "type": "string", + "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e", + "nullable": true }, - "repository_url": { + "commit_url": { "type": "string", - "format": "uri" + "example": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", + "nullable": true }, - "pinned_comment": { - "$ref": "#/components/schemas/nullable-issue-comment" + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" }, - "sub_issues_summary": { - "$ref": "#/components/schemas/sub-issues-summary" + "issue": { + "$ref": "#/components/schemas/nullable-issue" }, - "issue_dependencies_summary": { - "$ref": "#/components/schemas/issue-dependencies-summary" + "label": { + "$ref": "#/components/schemas/issue-event-label" }, - "issue_field_values": { - "type": "array", - "items": { - "$ref": "#/components/schemas/issue-field-value" - } + "assignee": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "state": { - "description": "State of the issue; either 'open' or 'closed'", - "type": "string", - "enum": [ - "open", - "closed" - ] + "assigner": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "state_reason": { + "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" + }, + "issue_type": { + "$ref": "#/components/schemas/issue-type-webhook" + }, + "prev_issue_type": { + "$ref": "#/components/schemas/issue-type-webhook" + }, + "sub_issue": { + "$ref": "#/components/schemas/nullable-issue-reference" + }, + "parent_issue": { + "$ref": "#/components/schemas/nullable-issue-reference" + }, + "blocked_by": { + "$ref": "#/components/schemas/nullable-issue-reference" + }, + "blocking": { + "$ref": "#/components/schemas/nullable-issue-reference" + }, + "intent": { + "$ref": "#/components/schemas/nullable-issue-event-intent" + }, + "author_association": { + "$ref": "#/components/schemas/author-association" + }, + "lock_reason": { "type": "string", "nullable": true }, - "timeline_url": { - "type": "string", - "format": "uri" + "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" }, - "title": { - "description": "Title of the issue", + "node_id": { "type": "string" }, - "type": { - "$ref": "#/components/schemas/issue-type" + "url": { + "type": "string" }, - "updated_at": { + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { "type": "string", - "format": "date-time" + "nullable": true }, - "url": { - "description": "URL for the issue", + "commit_url": { "type": "string", - "format": "uri" + "nullable": true }, - "user": { - "title": "User", + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "label": { "type": "object", - "nullable": true, "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "deleted": { - "type": "boolean" - }, - "email": { - "type": "string", - "nullable": true - }, - "events_url": { - "type": "string", - "format": "uri-template" - }, - "followers_url": { - "type": "string", - "format": "uri" - }, - "following_url": { - "type": "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": { + "color": { "type": "string" } }, "required": [ - "login", - "id" + "name", + "color" ] + }, + "intent": { + "$ref": "#/components/schemas/nullable-issue-event-intent" } }, "required": [ - "url", - "repository_url", - "labels_url", - "comments_url", - "events_url", - "html_url", + "label", "id", "node_id", - "number", - "title", - "user", - "assignees", - "milestone", - "comments", + "url", + "actor", + "event", + "commit_id", + "commit_url", "created_at", - "updated_at", - "closed_at", - "author_association", - "active_lock_reason", - "body", - "reactions" + "performed_via_github_app" ] }, - "webhooks_milestone": { - "title": "Milestone", - "description": "A collection of related issues and pull requests.", + "unlabeled-issue-event": { + "title": "Unlabeled Issue Event", + "description": "Unlabeled Issue Event", "type": "object", "properties": { - "closed_at": { + "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, - "format": "date-time" + "nullable": true }, - "closed_issues": { - "type": "integer" + "commit_url": { + "type": "string", + "nullable": true }, "created_at": { - "type": "string", - "format": "date-time" + "type": "string" }, - "creator": { - "title": "User", + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "label": { "type": "object", - "nullable": true, "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "deleted": { - "type": "boolean" - }, - "email": { - "type": "string", - "nullable": true - }, - "events_url": { - "type": "string", - "format": "uri-template" - }, - "followers_url": { - "type": "string", - "format": "uri" + "name": { + "type": "string" }, - "following_url": { - "type": "string", - "format": "uri-template" - }, - "gists_url": { - "type": "string", - "format": "uri-template" - }, - "gravatar_id": { - "type": "string" - }, - "html_url": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "integer" - }, - "login": { - "type": "string" - }, - "name": { - "type": "string" - }, - "node_id": { - "type": "string" - }, - "organizations_url": { - "type": "string", - "format": "uri" - }, - "received_events_url": { - "type": "string", - "format": "uri" - }, - "repos_url": { - "type": "string", - "format": "uri" - }, - "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": { + "color": { "type": "string" } }, "required": [ - "login", - "id" + "name", + "color" ] }, - "description": { + "intent": { + "$ref": "#/components/schemas/nullable-issue-event-intent" + } + }, + "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 }, - "due_on": { + "commit_url": { "type": "string", - "nullable": true, - "format": "date-time" + "nullable": true }, - "html_url": { - "type": "string", - "format": "uri" + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/integration" + }, + "assignee": { + "$ref": "#/components/schemas/simple-user" }, + "assigner": { + "$ref": "#/components/schemas/simple-user" + }, + "intent": { + "$ref": "#/components/schemas/nullable-issue-event-intent" + } + }, + "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" }, - "labels_url": { + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { "type": "string", - "format": "uri" + "nullable": true }, - "node_id": { + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { "type": "string" }, - "number": { - "description": "The number of the milestone.", - "type": "integer" + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" }, - "open_issues": { + "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" }, - "state": { - "description": "The state of the milestone.", + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { "type": "string", - "enum": [ - "open", - "closed" + "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" }, - "title": { - "description": "The title of the milestone.", + "node_id": { "type": "string" }, - "updated_at": { + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { "type": "string", - "format": "date-time" + "nullable": true }, - "url": { + "commit_url": { "type": "string", - "format": "uri" + "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": [ - "url", - "html_url", - "labels_url", + "milestone", "id", "node_id", - "number", - "title", - "description", - "creator", - "open_issues", - "closed_issues", - "state", + "url", + "actor", + "event", + "commit_id", + "commit_url", "created_at", - "updated_at", - "due_on", - "closed_at" + "performed_via_github_app" ] }, - "webhooks_issue_2": { - "title": "Issue", - "description": "The [issue](https://docs.github.com/rest/issues/issues#get-an-issue) itself.", + "renamed-issue-event": { + "title": "Renamed Issue Event", + "description": "Renamed Issue Event", "type": "object", "properties": { - "active_lock_reason": { + "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, - "enum": [ - "resolved", - "off-topic", - "too heated", - "spam", - null - ] + "nullable": true }, - "assignee": { - "title": "User", + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "rename": { "type": "object", - "nullable": true, "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "deleted": { - "type": "boolean" - }, - "email": { - "type": "string", - "nullable": true - }, - "events_url": { - "type": "string", - "format": "uri-template" - }, - "followers_url": { - "type": "string", - "format": "uri" - }, - "following_url": { - "type": "string", - "format": "uri-template" - }, - "gists_url": { - "type": "string", - "format": "uri-template" - }, - "gravatar_id": { - "type": "string" - }, - "html_url": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "integer" - }, - "login": { - "type": "string" - }, - "name": { - "type": "string" - }, - "node_id": { + "from": { "type": "string" }, - "organizations_url": { - "type": "string", - "format": "uri" - }, - "received_events_url": { - "type": "string", - "format": "uri" - }, - "repos_url": { - "type": "string", - "format": "uri" - }, - "site_admin": { - "type": "boolean" - }, - "starred_url": { - "type": "string", - "format": "uri-template" - }, - "subscriptions_url": { - "type": "string", - "format": "uri" - }, - "type": { - "type": "string", - "enum": [ - "Bot", - "User", - "Organization" - ] - }, - "url": { - "type": "string", - "format": "uri" - }, - "user_view_type": { + "to": { "type": "string" } }, "required": [ - "login", - "id" + "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" }, - "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" - ] - } + "node_id": { + "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" - ] + "url": { + "type": "string" }, - "body": { - "description": "Contents of the issue", + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { "type": "string", "nullable": true }, - "closed_at": { + "commit_url": { "type": "string", - "nullable": true, - "format": "date-time" + "nullable": true }, - "comments": { + "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" }, - "comments_url": { - "type": "string", - "format": "uri" + "node_id": { + "type": "string" }, - "created_at": { - "type": "string", - "format": "date-time" + "url": { + "type": "string" }, - "draft": { - "type": "boolean" + "actor": { + "$ref": "#/components/schemas/simple-user" }, - "events_url": { + "event": { + "type": "string" + }, + "commit_id": { "type": "string", - "format": "uri" + "nullable": true }, - "html_url": { + "commit_url": { "type": "string", - "format": "uri" + "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", - "format": "int64" + "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" - ] - } + "node_id": { + "type": "string" }, - "labels_url": { + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { "type": "string", - "format": "uri-template" + "nullable": true }, - "locked": { - "type": "boolean" + "commit_url": { + "type": "string", + "nullable": true }, - "milestone": { - "title": "Milestone", - "description": "A collection of related issues and pull requests.", + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "dismissed_review": { "type": "object", - "nullable": true, "properties": { - "closed_at": { - "type": "string", - "nullable": true, - "format": "date-time" + "state": { + "type": "string" }, - "closed_issues": { + "review_id": { "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", + "dismissal_message": { "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.", + "dismissal_commit_id": { "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" + "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" }, - "number": { - "type": "integer" + "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": { - "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" - ] - } + "$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" }, - "external_url": { + "url": { "type": "string", - "nullable": true, "format": "uri" }, - "html_url": { + "project_id": { + "type": "integer" + }, + "project_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": { + "column_name": { "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", + "previous_column_name": { "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" + "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" }, - "pull_request": { + "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": { - "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" + "id": { + "type": "integer" }, "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": { + "project_id": { "type": "integer" }, - "url": { + "project_url": { "type": "string", "format": "uri" + }, + "column_name": { + "type": "string" + }, + "previous_column_name": { + "type": "string" } }, "required": [ + "id", "url", - "total_count", - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "eyes", - "rocket" + "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" }, - "repository_url": { - "type": "string", - "format": "uri" - }, - "pinned_comment": { - "$ref": "#/components/schemas/nullable-issue-comment" - }, - "sub_issues_summary": { - "$ref": "#/components/schemas/sub-issues-summary" + "node_id": { + "type": "string" }, - "issue_dependencies_summary": { - "$ref": "#/components/schemas/issue-dependencies-summary" + "url": { + "type": "string" }, - "issue_field_values": { - "type": "array", - "items": { - "$ref": "#/components/schemas/issue-field-value" - } + "actor": { + "$ref": "#/components/schemas/simple-user" }, - "state": { - "description": "State of the issue; either 'open' or 'closed'", - "type": "string", - "enum": [ - "open", - "closed" - ] + "event": { + "type": "string" }, - "state_reason": { + "commit_id": { "type": "string", "nullable": true }, - "timeline_url": { + "commit_url": { "type": "string", - "format": "uri" + "nullable": true }, - "title": { - "description": "Title of the issue", + "created_at": { "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" + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" }, - "user": { - "title": "User", + "project_card": { "type": "object", - "nullable": true, "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "deleted": { - "type": "boolean" - }, - "email": { - "type": "string", - "nullable": true - }, - "events_url": { - "type": "string", - "format": "uri-template" + "id": { + "type": "integer" }, - "followers_url": { + "url": { "type": "string", "format": "uri" }, - "following_url": { - "type": "string", - "format": "uri-template" - }, - "gists_url": { - "type": "string", - "format": "uri-template" - }, - "gravatar_id": { - "type": "string" + "project_id": { + "type": "integer" }, - "html_url": { + "project_url": { "type": "string", "format": "uri" }, - "id": { - "type": "integer", - "format": "int64" - }, - "login": { - "type": "string" - }, - "name": { + "column_name": { "type": "string" }, - "node_id": { + "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" }, - "organizations_url": { - "type": "string", - "format": "uri" - }, - "received_events_url": { - "type": "string", - "format": "uri" - }, - "repos_url": { + "url": { "type": "string", "format": "uri" }, - "site_admin": { - "type": "boolean" - }, - "starred_url": { - "type": "string", - "format": "uri-template" + "project_id": { + "type": "integer" }, - "subscriptions_url": { + "project_url": { "type": "string", "format": "uri" }, - "type": { - "type": "string", - "enum": [ - "Bot", - "User", - "Organization" - ] - }, - "url": { - "type": "string", - "format": "uri" + "column_name": { + "type": "string" }, - "user_view_type": { + "previous_column_name": { "type": "string" } }, "required": [ - "login", - "id" + "id", + "url", + "project_id", + "project_url", + "column_name" ] } }, "required": [ - "url", - "repository_url", - "labels_url", - "comments_url", - "events_url", - "html_url", "id", "node_id", - "number", - "title", - "user", - "assignees", - "milestone", - "comments", + "url", + "actor", + "event", + "commit_id", + "commit_url", "created_at", - "updated_at", - "closed_at", - "author_association", - "active_lock_reason", - "body", - "reactions" + "performed_via_github_app" ] }, - "webhooks_user_mannequin": { - "title": "User", + "issue-type-added-issue-event": { + "title": "Issue Type Added Issue Event", + "description": "Issue Type Added Issue Event", "type": "object", - "nullable": true, "properties": { - "avatar_url": { - "type": "string", - "format": "uri" + "id": { + "type": "integer" }, - "deleted": { - "type": "boolean" + "node_id": { + "type": "string" }, - "email": { - "type": "string", - "nullable": true + "url": { + "type": "string" }, - "events_url": { - "type": "string", - "format": "uri-template" + "actor": { + "$ref": "#/components/schemas/simple-user" }, - "followers_url": { - "type": "string", - "format": "uri" + "event": { + "type": "string" }, - "following_url": { + "commit_id": { "type": "string", - "format": "uri-template" + "nullable": true }, - "gists_url": { + "commit_url": { "type": "string", - "format": "uri-template" + "nullable": true }, - "gravatar_id": { + "created_at": { "type": "string" }, - "html_url": { - "type": "string", - "format": "uri" + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" }, + "issue_type": { + "$ref": "#/components/schemas/issue-type-webhook" + }, + "intent": { + "$ref": "#/components/schemas/nullable-issue-event-intent" + } + }, + "required": [ + "issue_type", + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" + ] + }, + "issue-type-removed-issue-event": { + "title": "Issue Type Removed Issue Event", + "description": "Issue Type Removed Issue Event", + "type": "object", + "properties": { "id": { "type": "integer" }, - "login": { - "type": "string" - }, - "name": { + "node_id": { "type": "string" }, - "node_id": { + "url": { "type": "string" }, - "organizations_url": { - "type": "string", - "format": "uri" + "actor": { + "$ref": "#/components/schemas/simple-user" }, - "received_events_url": { - "type": "string", - "format": "uri" + "event": { + "type": "string" }, - "repos_url": { + "commit_id": { "type": "string", - "format": "uri" - }, - "site_admin": { - "type": "boolean" + "nullable": true }, - "starred_url": { + "commit_url": { "type": "string", - "format": "uri-template" + "nullable": true }, - "subscriptions_url": { - "type": "string", - "format": "uri" + "created_at": { + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "Bot", - "User", - "Organization", - "Mannequin" - ] + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" }, - "url": { - "type": "string", - "format": "uri" + "prev_issue_type": { + "$ref": "#/components/schemas/issue-type-webhook" }, - "user_view_type": { - "type": "string" + "intent": { + "$ref": "#/components/schemas/nullable-issue-event-intent" } }, "required": [ - "login", - "id" + "prev_issue_type", + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" ] }, - "webhooks_marketplace_purchase": { - "title": "Marketplace Purchase", + "issue-type-changed-issue-event": { + "title": "Issue Type Changed Issue Event", + "description": "Issue Type Changed Issue Event", "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" - } - } + "id": { + "type": "integer" }, - "billing_cycle": { + "node_id": { "type": "string" }, - "free_trial_ends_on": { + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { "type": "string", "nullable": true }, - "next_billing_date": { + "commit_url": { "type": "string", "nullable": true }, - "on_free_trial": { - "type": "boolean" + "created_at": { + "type": "string" }, - "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" - } - } + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" }, - "unit_count": { - "type": "integer" + "issue_type": { + "$ref": "#/components/schemas/issue-type-webhook" + }, + "prev_issue_type": { + "$ref": "#/components/schemas/issue-type-webhook" + }, + "intent": { + "$ref": "#/components/schemas/nullable-issue-event-intent" } - } + }, + "required": [ + "issue_type", + "prev_issue_type", + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" + ] }, - "webhooks_previous_marketplace_purchase": { - "title": "Marketplace Purchase", + "sub-issue-added-issue-event": { + "title": "Sub-issue Added Issue Event", + "description": "Sub-issue Added Issue Event", "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" - ] + "id": { + "type": "integer" }, - "billing_cycle": { + "node_id": { "type": "string" }, - "free_trial_ends_on": { + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { + "type": "string", "nullable": true }, - "next_billing_date": { + "commit_url": { "type": "string", "nullable": true }, - "on_free_trial": { - "type": "boolean" + "created_at": { + "type": "string" }, - "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" - ] + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" }, - "unit_count": { - "type": "integer" + "sub_issue": { + "$ref": "#/components/schemas/nullable-issue-reference" } }, "required": [ - "account", - "billing_cycle", - "unit_count", - "on_free_trial", - "free_trial_ends_on", - "plan" + "sub_issue", + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" ] }, - "webhooks_team": { - "title": "Team", - "description": "Groups of organization members that gives permissions on specified repositories.", + "sub-issue-removed-issue-event": { + "title": "Sub-issue Removed Issue Event", + "description": "Sub-issue Removed Issue Event", "type": "object", "properties": { - "deleted": { - "type": "boolean" + "id": { + "type": "integer" }, - "description": { - "description": "Description of the team", + "node_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { "type": "string", "nullable": true }, - "html_url": { + "commit_url": { "type": "string", - "format": "uri" + "nullable": true + }, + "created_at": { + "type": "string" }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "sub_issue": { + "$ref": "#/components/schemas/nullable-issue-reference" + } + }, + "required": [ + "sub_issue", + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" + ] + }, + "parent-issue-added-issue-event": { + "title": "Parent-issue Added Issue Event", + "description": "Parent-issue Added Issue Event", + "type": "object", + "properties": { "id": { - "description": "Unique identifier of the team", "type": "integer" }, - "members_url": { - "type": "string", - "format": "uri-template" - }, - "name": { - "description": "Name of the team", + "node_id": { "type": "string" }, - "node_id": { + "url": { "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" - ] + "actor": { + "$ref": "#/components/schemas/simple-user" }, - "permission": { - "description": "Permission that the team will have for its repositories", + "event": { "type": "string" }, - "privacy": { + "commit_id": { "type": "string", - "enum": [ - "open", - "closed", - "secret" - ] + "nullable": true }, - "notification_setting": { + "commit_url": { "type": "string", - "enum": [ - "notifications_enabled", - "notifications_disabled" - ] + "nullable": true }, - "repositories_url": { - "type": "string", - "format": "uri" + "created_at": { + "type": "string" }, - "slug": { + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "parent_issue": { + "$ref": "#/components/schemas/nullable-issue-reference" + } + }, + "required": [ + "parent_issue", + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" + ] + }, + "parent-issue-removed-issue-event": { + "title": "Parent-issue Removed Issue Event", + "description": "Parent-issue Removed Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "node_id": { "type": "string" }, "url": { - "description": "URL for the team", + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { "type": "string", - "format": "uri" + "nullable": true }, - "type": { - "description": "The ownership type of the team", + "commit_url": { "type": "string", - "enum": [ - "enterprise", - "organization" - ] + "nullable": true }, - "organization_id": { - "type": "integer", - "description": "Unique identifier of the organization to which this team belongs", - "example": 37 + "created_at": { + "type": "string" }, - "enterprise_id": { - "type": "integer", - "description": "Unique identifier of the enterprise to which this team belongs", - "example": 42 + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "parent_issue": { + "$ref": "#/components/schemas/nullable-issue-reference" } }, "required": [ - "name", - "id" + "parent_issue", + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" ] }, - "merge-group": { + "blocked-by-added-issue-event": { + "title": "Blocked-by Added Issue Event", + "description": "Blocked-by Added Issue Event", "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.", + "id": { + "type": "integer" + }, + "node_id": { "type": "string" }, - "head_ref": { - "description": "The full ref of the merge group.", + "url": { "type": "string" }, - "base_sha": { - "description": "The SHA of the merge group's parent commit.", + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { "type": "string" }, - "base_ref": { - "description": "The full ref of the branch the merge group will be merged into.", + "commit_id": { + "type": "string", + "nullable": true + }, + "commit_url": { + "type": "string", + "nullable": true + }, + "created_at": { "type": "string" }, - "head_commit": { - "$ref": "#/components/schemas/simple-commit" + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "blocked_by": { + "$ref": "#/components/schemas/nullable-issue-reference" } }, "required": [ - "head_sha", - "head_ref", - "base_sha", - "base_ref", - "head_commit" + "blocked_by", + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" ] }, - "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.", + "blocked-by-removed-issue-event": { + "title": "Blocked-by Removed Issue Event", + "description": "Blocked-by Removed Issue Event", "type": "object", "properties": { "id": { - "description": "Unique identifier of the repository", - "example": 42, - "type": "integer", - "format": "int64" + "type": "integer" }, "node_id": { - "type": "string", - "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + "type": "string" }, - "name": { - "description": "The name of the repository.", + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { "type": "string", - "example": "Team Environment" + "nullable": true }, - "full_name": { + "commit_url": { "type": "string", - "example": "octocat/Hello-World" + "nullable": true }, - "license": { - "$ref": "#/components/schemas/nullable-license-simple" + "created_at": { + "type": "string" }, - "organization": { - "$ref": "#/components/schemas/nullable-simple-user" + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" }, - "forks": { + "blocked_by": { + "$ref": "#/components/schemas/nullable-issue-reference" + } + }, + "required": [ + "blocked_by", + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" + ] + }, + "blocking-added-issue-event": { + "title": "Blocking Added Issue Event", + "description": "Blocking Added Issue Event", + "type": "object", + "properties": { + "id": { "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" - ] + "node_id": { + "type": "string" }, - "owner": { + "url": { + "type": "string" + }, + "actor": { "$ref": "#/components/schemas/simple-user" }, - "private": { - "description": "Whether the repository is private or public.", - "default": false, - "type": "boolean" + "event": { + "type": "string" }, - "html_url": { + "commit_id": { "type": "string", - "format": "uri", - "example": "https://github.com/octocat/Hello-World" + "nullable": true }, - "description": { + "commit_url": { "type": "string", - "example": "This your first repo!", "nullable": true }, - "fork": { - "type": "boolean" + "created_at": { + "type": "string" }, - "url": { - "type": "string", - "format": "uri", - "example": "https://api.github.com/repos/octocat/Hello-World" + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" }, - "archive_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + "blocking": { + "$ref": "#/components/schemas/nullable-issue-reference" + } + }, + "required": [ + "blocking", + "id", + "node_id", + "url", + "actor", + "event", + "commit_id", + "commit_url", + "created_at", + "performed_via_github_app" + ] + }, + "blocking-removed-issue-event": { + "title": "Blocking Removed Issue Event", + "description": "Blocking Removed Issue Event", + "type": "object", + "properties": { + "id": { + "type": "integer" }, - "assignees_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + "node_id": { + "type": "string" }, - "blobs_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + "url": { + "type": "string" }, - "branches_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + "actor": { + "$ref": "#/components/schemas/simple-user" }, - "collaborators_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + "event": { + "type": "string" }, - "comments_url": { + "commit_id": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + "nullable": true }, - "commits_url": { + "commit_url": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + "nullable": true }, - "compare_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + "created_at": { + "type": "string" }, - "contents_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" }, - "contributors_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + "blocking": { + "$ref": "#/components/schemas/nullable-issue-reference" + } + }, + "required": [ + "blocking", + "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" }, - "deployments_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + { + "$ref": "#/components/schemas/unlabeled-issue-event" }, - "downloads_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + { + "$ref": "#/components/schemas/assigned-issue-event" }, - "events_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/events" + { + "$ref": "#/components/schemas/unassigned-issue-event" }, - "forks_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/forks" + { + "$ref": "#/components/schemas/milestoned-issue-event" }, - "git_commits_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + { + "$ref": "#/components/schemas/demilestoned-issue-event" }, - "git_refs_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + { + "$ref": "#/components/schemas/renamed-issue-event" }, - "git_tags_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + { + "$ref": "#/components/schemas/review-requested-issue-event" }, - "git_url": { - "type": "string", - "example": "git:github.com/octocat/Hello-World.git" + { + "$ref": "#/components/schemas/review-request-removed-issue-event" }, - "issue_comment_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + { + "$ref": "#/components/schemas/review-dismissed-issue-event" }, - "issue_events_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + { + "$ref": "#/components/schemas/locked-issue-event" }, - "issues_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + { + "$ref": "#/components/schemas/added-to-project-issue-event" }, - "keys_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + { + "$ref": "#/components/schemas/moved-column-in-project-issue-event" }, - "labels_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + { + "$ref": "#/components/schemas/removed-from-project-issue-event" }, - "languages_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/languages" + { + "$ref": "#/components/schemas/converted-note-to-issue-issue-event" }, - "merges_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/merges" + { + "$ref": "#/components/schemas/issue-type-added-issue-event" }, - "milestones_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + { + "$ref": "#/components/schemas/issue-type-removed-issue-event" }, - "notifications_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + { + "$ref": "#/components/schemas/issue-type-changed-issue-event" }, - "pulls_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + { + "$ref": "#/components/schemas/sub-issue-added-issue-event" }, - "releases_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + { + "$ref": "#/components/schemas/sub-issue-removed-issue-event" }, - "ssh_url": { - "type": "string", - "example": "git@github.com:octocat/Hello-World.git" + { + "$ref": "#/components/schemas/parent-issue-added-issue-event" }, - "stargazers_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + { + "$ref": "#/components/schemas/parent-issue-removed-issue-event" }, - "statuses_url": { - "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + { + "$ref": "#/components/schemas/blocked-by-added-issue-event" }, - "subscribers_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + { + "$ref": "#/components/schemas/blocked-by-removed-issue-event" }, - "subscription_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + { + "$ref": "#/components/schemas/blocking-added-issue-event" }, - "tags_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/tags" + { + "$ref": "#/components/schemas/blocking-removed-issue-event" + } + ] + }, + "issue-suggestion": { + "title": "Issue Suggestion", + "description": "An agent-proposed change to an issue that a maintainer can approve or dismiss.", + "type": "object", + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the suggestion." }, - "teams_url": { - "type": "string", - "format": "uri", - "example": "http://api.github.com/repos/octocat/Hello-World/teams" + "issue_id": { + "type": "integer", + "description": "The unique identifier of the issue the suggestion applies to." }, - "trees_url": { + "action": { "type": "string", - "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + "description": "The kind of change proposed.", + "enum": [ + "set_type", + "add_label", + "add_field", + "add_assignee", + "close_issue" + ] }, - "clone_url": { + "state": { "type": "string", - "example": "https://github.com/octocat/Hello-World.git" + "description": "The suggestion's lifecycle state.", + "enum": [ + "pending", + "applied", + "approved", + "dismissed", + "replaced", + "invalidated" + ] }, - "mirror_url": { - "type": "string", - "format": "uri", - "example": "git:git.example.com/octocat/Hello-World", + "target_id": { + "type": "integer", + "description": "The identifier of the target the change applies to (issue type, label, field, assignee, or duplicate issue), when applicable.", "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" + "target_value": { + "description": "The proposed value, when applicable. An array for multi-select field suggestions.", + "nullable": true, + "oneOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "boolean" + }, + { + "type": "array", + "items": { + "type": "string" + } + } + ] }, - "homepage": { + "rationale": { "type": "string", - "format": "uri", - "example": "https://github.com", + "description": "The rationale the actor provided for the suggestion.", "nullable": true }, - "language": { + "confidence": { "type": "string", + "description": "The actor's confidence level in the suggestion.", + "enum": [ + "LOW", + "MEDIUM", + "HIGH" + ], "nullable": true }, - "forks_count": { - "type": "integer", - "example": 9 - }, - "stargazers_count": { + "actor_id": { "type": "integer", - "example": 80 + "description": "The unique identifier of the actor that proposed the suggestion.", + "nullable": true }, - "watchers_count": { + "issue_event_id": { "type": "integer", - "example": 80 + "description": "The identifier of the timeline event created when the suggestion was approved, when applicable.", + "nullable": true }, - "size": { - "description": "The size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0.", + "resolved_by": { "type": "integer", - "example": 108 + "description": "The unique identifier of the user who approved or dismissed the suggestion.", + "nullable": true }, - "default_branch": { - "description": "The default branch of the repository.", + "created_at": { "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 + "description": "The time the suggestion was created.", + "format": "date-time" }, - "has_pages": { - "type": "boolean" + "updated_at": { + "type": "string", + "description": "The time the suggestion was last updated.", + "format": "date-time" + } + }, + "required": [ + "id", + "issue_id", + "action", + "state", + "target_id", + "target_value", + "rationale", + "confidence", + "actor_id", + "issue_event_id", + "resolved_by", + "created_at", + "updated_at" + ] + }, + "timeline-comment-event": { + "title": "Timeline Comment Event", + "description": "Timeline Comment Event", + "type": "object", + "properties": { + "event": { + "type": "string" }, - "has_downloads": { - "description": "Whether downloads are enabled.", - "default": true, - "type": "boolean", - "example": true + "actor": { + "$ref": "#/components/schemas/simple-user" }, - "has_discussions": { - "description": "Whether discussions are enabled.", - "default": false, - "type": "boolean", - "example": true + "id": { + "description": "Unique identifier of the issue comment", + "example": 42, + "type": "integer" }, - "has_pull_requests": { - "description": "Whether pull requests are enabled.", - "default": true, - "type": "boolean", - "example": true + "node_id": { + "type": "string" }, - "pull_request_creation_policy": { - "description": "The policy controlling who can create pull requests: all or collaborators_only.", + "url": { + "description": "URL for the issue comment", + "example": "https://api.github.com/repositories/42/issues/comments/1", "type": "string", - "enum": [ - "all", - "collaborators_only" - ] + "format": "uri" }, - "archived": { - "description": "Whether the repository is archived.", - "default": false, - "type": "boolean" + "body": { + "description": "Contents of the issue comment", + "example": "What version of Safari were you using when you observed this bug?", + "type": "string" }, - "disabled": { - "type": "boolean", - "description": "Returns whether or not this repository disabled." + "body_text": { + "type": "string" }, - "visibility": { - "description": "The repository visibility: public, private, or internal.", - "default": "public", + "body_html": { "type": "string" }, - "pushed_at": { + "html_url": { "type": "string", - "format": "date-time", - "example": "2011-01-26T19:06:43Z", - "nullable": true + "format": "uri" + }, + "user": { + "$ref": "#/components/schemas/simple-user" }, "created_at": { "type": "string", "format": "date-time", - "example": "2011-01-26T19:01:12Z", - "nullable": true + "example": "2011-04-14T16:00:49Z" }, "updated_at": { "type": "string", "format": "date-time", - "example": "2011-01-26T19:14:43Z", - "nullable": true + "example": "2011-04-14T16:00:49Z" }, - "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": { + "issue_url": { "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" + "format": "uri" }, - "open_issues": { - "type": "integer" + "author_association": { + "$ref": "#/components/schemas/author-association" }, - "watchers": { - "type": "integer" + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" }, - "master_branch": { - "type": "string" + "reactions": { + "$ref": "#/components/schemas/reaction-rollup" }, - "starred_at": { - "type": "string", - "example": "\"2020-07-09T00:17:42Z\"" + "pin": { + "$ref": "#/components/schemas/nullable-pinned-issue-comment" }, - "anonymous_access_enabled": { - "type": "boolean", - "description": "Whether anonymous git access is enabled for this repository" + "minimized": { + "$ref": "#/components/schemas/nullable-issue-comment-minimized" } }, "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", + "event", + "actor", "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", + "html_url", + "issue_url", + "author_association", + "user", "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-breaking-changes": [ - { - "changeset": "remove_use_squash_pr_title_as_default", - "patch": { - "properties": { - "use_squash_pr_title_as_default": null, - "template_repository": { - "properties": { - "use_squash_pr_title_as_default": null - } - } - } - }, - "version": "2026-03-10" - }, - { - "changeset": "deprecate_beta_media_type", - "patch": { - "properties": { - "master_branch": null - } - }, - "version": "2026-03-10" - } - ], - "nullable": true + ] }, - "webhooks_milestone_3": { - "title": "Milestone", - "description": "A collection of related issues and pull requests.", + "timeline-cross-referenced-event": { + "title": "Timeline Cross Referenced Event", + "description": "Timeline Cross Referenced Event", "type": "object", "properties": { - "closed_at": { - "type": "string", - "nullable": true, - "format": "date-time" + "event": { + "type": "string" }, - "closed_issues": { - "type": "integer" + "actor": { + "$ref": "#/components/schemas/simple-user" }, "created_at": { "type": "string", "format": "date-time" }, - "creator": { - "title": "User", + "updated_at": { + "type": "string", + "format": "date-time" + }, + "source": { "type": "object", - "nullable": true, "properties": { - "avatar_url": { - "type": "string", - "format": "uri" + "type": { + "type": "string" }, - "deleted": { - "type": "boolean" + "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", - "nullable": true - }, - "events_url": { - "type": "string", - "format": "uri-template" - }, - "followers_url": { - "type": "string", - "format": "uri" - }, - "following_url": { - "type": "string", - "format": "uri-template" - }, - "gists_url": { - "type": "string", - "format": "uri-template" + "description": "Git email address of the user", + "example": "monalisa.octocat@example.com" }, - "gravatar_id": { + "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" }, - "html_url": { + "email": { "type": "string", - "format": "uri" - }, - "id": { - "type": "integer" - }, - "login": { - "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" - }, - "node_id": { + } + }, + "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" }, - "organizations_url": { - "type": "string", - "format": "uri" - }, - "received_events_url": { - "type": "string", - "format": "uri" - }, - "repos_url": { + "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" + } }, - "site_admin": { + "required": [ + "sha", + "url", + "html_url" + ] + } + }, + "verification": { + "type": "object", + "properties": { + "verified": { "type": "boolean" }, - "starred_url": { - "type": "string", - "format": "uri-template" + "reason": { + "type": "string" }, - "subscriptions_url": { + "signature": { "type": "string", - "format": "uri" + "nullable": true }, - "type": { + "payload": { "type": "string", - "enum": [ - "Bot", - "User", - "Organization" - ] + "nullable": true }, - "url": { + "verified_at": { "type": "string", - "format": "uri" - }, - "user_view_type": { - "type": "string" + "nullable": true } }, "required": [ - "login", - "id" + "verified", + "reason", + "signature", + "payload", + "verified_at" ] }, - "description": { - "type": "string", - "nullable": true - }, - "due_on": { - "type": "string", - "nullable": true, - "format": "date-time" - }, "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" }, - "labels_url": { + "node_id": { "type": "string", - "format": "uri" + "example": "MDE3OlB1bGxSZXF1ZXN0UmV2aWV3ODA=" }, - "node_id": { + "user": { + "$ref": "#/components/schemas/simple-user" + }, + "body": { + "nullable": true, + "description": "The text of the review.", + "example": "This looks great.", "type": "string" }, - "number": { - "description": "The number of the milestone.", - "type": "integer" + "state": { + "type": "string", + "example": "CHANGES_REQUESTED" }, - "open_issues": { - "type": "integer" + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80" }, - "state": { - "description": "The state of the milestone.", + "pull_request_url": { "type": "string", - "enum": [ - "open", - "closed" + "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" ] }, - "title": { - "description": "The title of the milestone.", - "type": "string" + "submitted_at": { + "type": "string", + "format": "date-time" }, "updated_at": { "type": "string", + "nullable": true, "format": "date-time" }, - "url": { - "type": "string", - "format": "uri" + "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": [ - "url", - "html_url", - "labels_url", + "event", "id", "node_id", - "number", - "title", - "description", - "creator", - "open_issues", - "closed_issues", + "user", + "body", "state", - "created_at", - "updated_at", - "due_on", - "closed_at" + "commit_id", + "html_url", + "pull_request_url", + "_links", + "author_association" ] }, - "webhooks_membership": { - "title": "Membership", - "description": "The membership between the user and the organization. Not present when the action is `member_invited`.", + "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": { - "organization_url": { + "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", - "format": "uri" + "example": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw" }, - "role": { + "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" }, - "direct_membership": { - "type": "boolean", - "description": "Whether the user has direct membership in the organization.", - "example": true + "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" }, - "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" - ] + "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" }, - "state": { + "commit_id": { + "description": "The SHA of the commit to which the comment applies.", + "example": "6dcb09b5b57875f334f61aebed695e2e4193db5e", "type": "string" }, - "url": { - "type": "string", - "format": "uri" + "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": { - "title": "User", - "type": "object", - "nullable": true, - "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "deleted": { - "type": "boolean" - }, - "email": { - "type": "string", - "nullable": true - }, - "events_url": { - "type": "string", - "format": "uri-template" - }, - "followers_url": { - "type": "string", - "format": "uri" - }, - "following_url": { - "type": "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." + "$ref": "#/components/schemas/nullable-simple-user" }, - "owner": { - "$ref": "#/components/schemas/simple-user" + "body": { + "description": "The text of the comment.", + "example": "We should probably include a check for null values here.", + "type": "string" }, - "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" - } - } - } + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" }, - "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" - } - } - } + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" }, - "permissions_result": { + "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", - "description": "Permissions requested, categorized by type of permission. This field incorporates `permissions_added` and `permissions_upgraded`.", "properties": { - "organization": { + "self": { "type": "object", - "additionalProperties": { - "type": "string" - } + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1" + } + }, + "required": [ + "href" + ] }, - "repository": { + "html": { "type": "object", - "additionalProperties": { - "type": "string" - } + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1" + } + }, + "required": [ + "href" + ] }, - "other": { + "pull_request": { "type": "object", - "additionalProperties": { - "type": "string" - } + "properties": { + "href": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1" + } + }, + "required": [ + "href" + ] } - } - }, - "repository_selection": { - "type": "string", - "description": "Type of repository selection requested.", - "enum": [ - "none", - "all", - "subset" + }, + "required": [ + "self", + "html", + "pull_request" ] }, - "repository_count": { - "description": "The number of repositories the token is requesting access to. This field is only populated when `repository_selection` is `subset`.", + "start_line": { "type": "integer", + "description": "The first line of the range for a multi-line comment.", + "example": 2, "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" - ] - }, + "original_start_line": { + "type": "integer", + "description": "The first line of the range for a multi-line comment.", + "example": 2, "nullable": true }, - "created_at": { + "start_side": { "type": "string", - "description": "Date and time when the request for access was created." + "description": "The side of the first line of the range for a multi-line comment.", + "enum": [ + "LEFT", + "RIGHT" + ], + "default": "RIGHT", + "nullable": true }, - "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." + "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" }, - "token_name": { + "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", - "description": "The name given to the user's token. This field can also be found in an organization's settings page for Active Tokens." + "enum": [ + "line", + "file" + ] }, - "token_expired": { - "type": "boolean", - "description": "Whether the associated fine-grained personal access token has expired." + "reactions": { + "$ref": "#/components/schemas/reaction-rollup" }, - "token_expires_at": { + "body_html": { "type": "string", - "description": "Date and time when the associated fine-grained personal access token expires.", - "nullable": true + "example": "\"

comment body

\"" }, - "token_last_used_at": { + "body_text": { "type": "string", - "description": "Date and time when the associated fine-grained personal access token was last used for authentication.", - "nullable": true + "example": "\"comment body\"" } }, "required": [ + "url", "id", - "owner", - "permissions_added", - "permissions_upgraded", - "permissions_result", - "repository_selection", - "repository_count", - "repositories", + "node_id", + "pull_request_review_id", + "diff_hunk", + "path", + "commit_id", + "original_commit_id", + "user", + "body", "created_at", - "token_id", - "token_name", - "token_expired", - "token_expires_at", - "token_last_used_at" + "updated_at", + "html_url", + "pull_request_url", + "author_association", + "_links" ] }, - "webhooks_project_card": { - "title": "Project Card", + "timeline-line-commented-event": { + "title": "Timeline Line Commented Event", + "description": "Timeline Line Commented Event", "type": "object", "properties": { - "after_id": { - "type": "integer", - "nullable": true - }, - "archived": { - "description": "Whether or not the card is archived", - "type": "boolean" - }, - "column_id": { - "type": "integer" + "event": { + "type": "string" }, - "column_url": { - "type": "string", - "format": "uri" + "node_id": { + "type": "string" }, - "content_url": { - "type": "string", - "format": "uri" + "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" }, - "created_at": { - "type": "string", - "format": "date-time" + "node_id": { + "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" - ] + "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": { - "description": "The project card's ID", "type": "integer" }, "node_id": { "type": "string" }, - "note": { + "url": { + "type": "string" + }, + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { "type": "string", "nullable": true }, - "project_url": { + "commit_url": { "type": "string", - "format": "uri" + "nullable": true }, - "updated_at": { - "type": "string", - "format": "date-time" + "created_at": { + "type": "string" }, - "url": { - "type": "string", - "format": "uri" + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "assignee": { + "$ref": "#/components/schemas/simple-user" + }, + "intent": { + "$ref": "#/components/schemas/nullable-issue-event-intent" } }, "required": [ - "url", - "project_url", - "column_url", - "column_id", "id", "node_id", - "note", - "archived", - "creator", + "url", + "actor", + "event", + "commit_id", + "commit_url", "created_at", - "updated_at" + "performed_via_github_app", + "assignee" ] }, - "webhooks_project": { - "title": "Project", + "timeline-unassigned-issue-event": { + "title": "Timeline Unassigned Issue Event", + "description": "Timeline Unassigned Issue Event", "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", + "node_id": { "type": "string" }, - "node_id": { + "url": { "type": "string" }, - "number": { - "type": "integer" + "actor": { + "$ref": "#/components/schemas/simple-user" }, - "owner_url": { - "type": "string", - "format": "uri" + "event": { + "type": "string" }, - "state": { - "description": "State of the project; either 'open' or 'closed'", + "commit_id": { "type": "string", - "enum": [ - "open", - "closed" - ] + "nullable": true }, - "updated_at": { + "commit_url": { "type": "string", - "format": "date-time" + "nullable": true }, - "url": { - "type": "string", - "format": "uri" + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "assignee": { + "$ref": "#/components/schemas/simple-user" } }, "required": [ - "owner_url", - "url", - "html_url", - "columns_url", "id", "node_id", - "name", - "body", - "number", - "state", - "creator", + "url", + "actor", + "event", + "commit_id", + "commit_url", "created_at", - "updated_at" + "performed_via_github_app", + "assignee" ] }, - "webhooks_project_column": { - "title": "Project Column", + "state-change-issue-event": { + "title": "State Change Issue Event", + "description": "State Change Issue Event", "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", + "node_id": { "type": "string" }, - "node_id": { + "url": { "type": "string" }, - "project_url": { + "actor": { + "$ref": "#/components/schemas/simple-user" + }, + "event": { + "type": "string" + }, + "commit_id": { "type": "string", - "format": "uri" + "nullable": true }, - "updated_at": { + "commit_url": { "type": "string", - "format": "date-time" + "nullable": true }, - "url": { + "created_at": { + "type": "string" + }, + "performed_via_github_app": { + "$ref": "#/components/schemas/nullable-integration" + }, + "state_reason": { "type": "string", - "format": "uri" + "nullable": true + }, + "intent": { + "$ref": "#/components/schemas/nullable-issue-event-intent" } }, "required": [ - "url", - "project_url", - "cards_url", "id", "node_id", - "name", + "url", + "actor", + "event", + "commit_id", + "commit_url", "created_at", - "updated_at" + "performed_via_github_app" ] }, - "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", + "timeline-issue-events": { + "title": "Timeline Event", + "description": "Timeline Event", "type": "object", - "properties": { - "id": { - "type": "number", - "description": "The unique identifier of the project item." + "anyOf": [ + { + "$ref": "#/components/schemas/labeled-issue-event" }, - "node_id": { - "type": "string", - "description": "The node ID of the project item." + { + "$ref": "#/components/schemas/unlabeled-issue-event" }, - "project_node_id": { - "type": "string", - "description": "The node ID of the project that contains this item." + { + "$ref": "#/components/schemas/milestoned-issue-event" }, - "content_node_id": { - "type": "string", - "description": "The node ID of the content represented by this item." + { + "$ref": "#/components/schemas/demilestoned-issue-event" }, - "content_type": { - "$ref": "#/components/schemas/projects-v2-item-content-type" + { + "$ref": "#/components/schemas/renamed-issue-event" }, - "creator": { - "$ref": "#/components/schemas/simple-user" + { + "$ref": "#/components/schemas/review-requested-issue-event" }, - "created_at": { - "type": "string", - "format": "date-time", - "example": "2022-04-28T12:00:00Z", - "description": "The time when the item was created." + { + "$ref": "#/components/schemas/review-request-removed-issue-event" }, - "updated_at": { - "type": "string", - "format": "date-time", - "example": "2022-04-28T12:00:00Z", - "description": "The time when the item was last updated." + { + "$ref": "#/components/schemas/review-dismissed-issue-event" }, - "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." + { + "$ref": "#/components/schemas/locked-issue-event" }, - "name": { - "type": "string", - "description": "The display name of the option." + { + "$ref": "#/components/schemas/added-to-project-issue-event" }, - "color": { - "type": "string", - "nullable": true, - "description": "The color associated with the option." + { + "$ref": "#/components/schemas/moved-column-in-project-issue-event" }, - "description": { - "type": "string", - "nullable": true, - "description": "A short description of the option." + { + "$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" + }, + { + "$ref": "#/components/schemas/issue-type-added-issue-event" + }, + { + "$ref": "#/components/schemas/issue-type-removed-issue-event" + }, + { + "$ref": "#/components/schemas/issue-type-changed-issue-event" + }, + { + "$ref": "#/components/schemas/sub-issue-added-issue-event" + }, + { + "$ref": "#/components/schemas/sub-issue-removed-issue-event" + }, + { + "$ref": "#/components/schemas/parent-issue-added-issue-event" + }, + { + "$ref": "#/components/schemas/parent-issue-removed-issue-event" + }, + { + "$ref": "#/components/schemas/blocked-by-added-issue-event" + }, + { + "$ref": "#/components/schemas/blocked-by-removed-issue-event" + }, + { + "$ref": "#/components/schemas/blocking-added-issue-event" + }, + { + "$ref": "#/components/schemas/blocking-removed-issue-event" } - }, - "required": [ - "id", - "name" ] }, - "projects-v2-iteration-setting": { - "title": "Projects v2 Iteration Setting", - "description": "An iteration setting for an iteration field", + "deploy-key": { + "title": "Deploy Key", + "description": "An SSH key granting access to a single repository.", "type": "object", "properties": { "id": { - "type": "string", - "description": "The unique identifier of the iteration setting." + "type": "integer" + }, + "key": { + "type": "string" + }, + "url": { + "type": "string" }, "title": { - "type": "string", - "description": "The iteration title." + "type": "string" }, - "title_html": { - "type": "string", - "description": "The iteration title, rendered as HTML." + "verified": { + "type": "boolean" }, - "duration": { - "type": "number", - "nullable": true, - "description": "The duration of the iteration in days." + "created_at": { + "type": "string" }, - "start_date": { + "read_only": { + "type": "boolean" + }, + "added_by": { "type": "string", + "nullable": true + }, + "last_used": { "nullable": true, - "description": "The start date of the iteration." + "type": "string", + "format": "date-time" }, - "completed": { - "type": "boolean", - "description": "Whether the iteration has been completed." + "enabled": { + "type": "boolean" } }, "required": [ "id", - "title" + "key", + "url", + "title", + "verified", + "created_at", + "read_only" ] }, - "projects-v2-status-update": { - "title": "Projects v2 Status Update", - "description": "An status update belonging to a project", + "language": { + "title": "Language", + "description": "Language", "type": "object", - "properties": { - "id": { - "type": "number", - "description": "The unique identifier of the status update." + "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", - "description": "The node ID of the status update." + "example": "MDk6TWlsZXN0b25lMTAwMjYwNA==" }, - "project_node_id": { + "number": { + "description": "The number of the milestone.", + "type": "integer", + "example": 42 + }, + "state": { + "description": "The state of the milestone.", + "example": "open", "type": "string", - "description": "The node ID of the project that this status update belongs to." + "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/simple-user" + "$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": "2022-04-28T12:00:00Z", - "description": "The time when the status update was created." + "example": "2011-04-10T20:09:31Z" }, "updated_at": { "type": "string", "format": "date-time", - "example": "2022-04-28T12:00:00Z", - "description": "The time when the status update was last updated." + "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": [ - "INACTIVE", - "ON_TRACK", - "AT_RISK", - "OFF_TRACK", - "COMPLETE" + "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, - "description": "The current status." + "enum": [ + "pending", + "verified", + "unverified" + ] }, - "start_date": { + "pending_domain_unverified_at": { "type": "string", - "format": "date", - "example": "2022-04-28", - "description": "The start date of the period covered by the update." + "description": "The timestamp when a pending domain becomes unverified.", + "nullable": true, + "format": "date-time" }, - "target_date": { + "custom_404": { + "type": "boolean", + "description": "Whether the Page has a custom 404 page.", + "example": false, + "default": false + }, + "html_url": { "type": "string", - "format": "date", - "example": "2022-04-28", - "description": "The target date associated with the update." + "description": "The web address the Page can be accessed from.", + "format": "uri", + "example": "https://example.com" }, - "body": { - "description": "Body of the status update", - "example": "The project is off to a great start!", + "build_type": { "type": "string", - "nullable": true + "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": [ - "id", - "node_id", + "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" ] }, - "webhooks_number": { - "description": "The pull request number.", - "type": "integer" + "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" + ] }, - "pull-request-webhook": { - "allOf": [ - { - "$ref": "#/components/schemas/pull-request" + "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": { - "allow_auto_merge": { - "description": "Whether to allow auto-merge for pull requests.", + "host": { + "type": "string" + }, + "uri": { + "type": "string" + }, + "nameservers": { + "type": "string" + }, + "dns_resolves": { + "type": "boolean" + }, + "is_proxied": { "type": "boolean", - "default": false + "nullable": true }, - "allow_update_branch": { - "description": "Whether to allow updating the pull request's branch.", + "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" }, - "delete_branch_on_merge": { - "description": "Whether to delete head branches when pull requests are merged.", + "is_apex_domain": { + "type": "boolean" + }, + "should_be_a_record": { "type": "boolean", - "default": false + "nullable": true }, - "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" - ] + "is_cname_to_github_user_domain": { + "type": "boolean", + "nullable": true }, - "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" - ] + "is_cname_to_pages_dot_github_dot_com": { + "type": "boolean", + "nullable": true }, - "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" - ] + "is_cname_to_fastly": { + "type": "boolean", + "nullable": true }, - "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" - ] + "is_pointed_to_github_pages_ip": { + "type": "boolean", + "nullable": true }, - "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.**", + "is_non_github_pages_ip_present": { "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" - ] + "nullable": true }, - "commits": { - "title": "Link", - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template" - } - }, - "required": [ - "href" - ] + "is_pages_domain": { + "type": "boolean" }, - "html": { - "title": "Link", - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template" - } - }, - "required": [ - "href" - ] + "is_served_by_pages": { + "type": "boolean", + "nullable": true }, - "issue": { - "title": "Link", - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template" - } - }, - "required": [ - "href" - ] + "is_valid": { + "type": "boolean" }, - "review_comment": { - "title": "Link", - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template" - } - }, - "required": [ - "href" - ] + "reason": { + "type": "string", + "nullable": true }, - "review_comments": { - "title": "Link", - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template" - } - }, - "required": [ - "href" - ] + "responds_to_https": { + "type": "boolean" }, - "self": { - "title": "Link", - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template" - } - }, - "required": [ - "href" - ] + "enforces_https": { + "type": "boolean" }, - "statuses": { - "title": "Link", - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template" - } - }, - "required": [ - "href" - ] + "https_error": { + "type": "string", + "nullable": true + }, + "is_https_eligible": { + "type": "boolean", + "nullable": true + }, + "caa_error": { + "type": "string", + "nullable": true } - }, - "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", + "alt_domain": { "type": "object", "nullable": true, "properties": { - "avatar_url": { - "type": "string", - "format": "uri" + "host": { + "type": "string" }, - "deleted": { + "uri": { + "type": "string" + }, + "nameservers": { + "type": "string" + }, + "dns_resolves": { "type": "boolean" }, - "email": { - "type": "string", + "is_proxied": { + "type": "boolean", "nullable": true }, - "events_url": { - "type": "string", - "format": "uri-template" + "is_cloudflare_ip": { + "type": "boolean", + "nullable": true }, - "followers_url": { - "type": "string", - "format": "uri" + "is_fastly_ip": { + "type": "boolean", + "nullable": true }, - "following_url": { - "type": "string", - "format": "uri-template" + "is_old_ip_address": { + "type": "boolean", + "nullable": true }, - "gists_url": { - "type": "string", - "format": "uri-template" + "is_a_record": { + "type": "boolean", + "nullable": true }, - "gravatar_id": { - "type": "string" + "has_cname_record": { + "type": "boolean", + "nullable": true }, - "html_url": { - "type": "string", - "format": "uri" + "has_mx_records_present": { + "type": "boolean", + "nullable": true }, - "id": { - "type": "integer" + "is_valid_domain": { + "type": "boolean" }, - "login": { - "type": "string" + "is_apex_domain": { + "type": "boolean" }, - "name": { - "type": "string" + "should_be_a_record": { + "type": "boolean", + "nullable": true }, - "node_id": { - "type": "string" + "is_cname_to_github_user_domain": { + "type": "boolean", + "nullable": true }, - "organizations_url": { - "type": "string", - "format": "uri" + "is_cname_to_pages_dot_github_dot_com": { + "type": "boolean", + "nullable": true }, - "received_events_url": { - "type": "string", - "format": "uri" + "is_cname_to_fastly": { + "type": "boolean", + "nullable": true }, - "repos_url": { - "type": "string", - "format": "uri" + "is_pointed_to_github_pages_ip": { + "type": "boolean", + "nullable": true }, - "site_admin": { + "is_non_github_pages_ip_present": { + "type": "boolean", + "nullable": true + }, + "is_pages_domain": { "type": "boolean" }, - "starred_url": { - "type": "string", - "format": "uri-template" + "is_served_by_pages": { + "type": "boolean", + "nullable": true }, - "subscriptions_url": { - "type": "string", - "format": "uri" + "is_valid": { + "type": "boolean" }, - "type": { + "reason": { "type": "string", - "enum": [ - "Bot", - "User", - "Organization", - "Mannequin" - ] + "nullable": true }, - "url": { + "responds_to_https": { + "type": "boolean" + }, + "enforces_https": { + "type": "boolean" + }, + "https_error": { "type": "string", - "format": "uri" + "nullable": true }, - "user_view_type": { - "type": "string" + "is_https_eligible": { + "type": "boolean", + "nullable": true + }, + "caa_error": { + "type": "string", + "nullable": true } - }, - "required": [ - "login", - "id" - ] + } + } + } + }, + "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" }, - "assignees": { + "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": { - "title": "User", "type": "object", - "nullable": true, "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "deleted": { - "type": "boolean" - }, - "email": { - "type": "string", - "nullable": true - }, - "events_url": { - "type": "string", - "format": "uri-template" - }, - "followers_url": { - "type": "string", - "format": "uri" - }, - "following_url": { - "type": "string", - "format": "uri-template" - }, - "gists_url": { - "type": "string", - "format": "uri-template" - }, - "gravatar_id": { - "type": "string" - }, - "html_url": { - "type": "string", - "format": "uri" - }, "id": { - "type": "integer" + "type": "integer", + "format": "int64" }, - "login": { + "node_id": { "type": "string" }, - "name": { + "url": { "type": "string" }, - "node_id": { + "name": { "type": "string" }, - "organizations_url": { - "type": "string", - "format": "uri" - }, - "received_events_url": { + "description": { "type": "string", - "format": "uri" + "nullable": true }, - "repos_url": { - "type": "string", - "format": "uri" + "color": { + "type": "string" }, - "site_admin": { + "default": { "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" + "id", + "node_id", + "url", + "name", + "description", + "color", + "default" ] } }, - "author_association": { - "title": "AuthorAssociation", - "description": "How the author is associated with the repository.", + "milestone": { + "$ref": "#/components/schemas/nullable-milestone" + }, + "active_lock_reason": { "type": "string", - "enum": [ - "COLLABORATOR", - "CONTRIBUTOR", - "FIRST_TIMER", - "FIRST_TIME_CONTRIBUTOR", - "MANNEQUIN", - "MEMBER", - "NONE", - "OWNER" - ] + "example": "too heated", + "nullable": true }, - "auto_merge": { - "title": "PullRequestAutoMerge", - "description": "The status of auto merging a pull request.", + "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" + } + }, + "requested_reviewers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/simple-user" + } + }, + "requested_teams": { + "type": "array", + "items": { + "$ref": "#/components/schemas/team-simple" + } + }, + "head": { "type": "object", - "nullable": true, "properties": { - "commit_message": { - "description": "Commit message for the merge commit.", - "type": "string", - "nullable": true + "label": { + "type": "string" }, - "commit_title": { - "description": "Title for the merge commit message.", - "type": "string", - "nullable": true + "ref": { + "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" - ] + "repo": { + "$ref": "#/components/schemas/repository" }, - "merge_method": { - "description": "The merge method to use.", - "type": "string", - "enum": [ - "merge", - "squash", - "rebase" - ] + "sha": { + "type": "string" + }, + "user": { + "$ref": "#/components/schemas/simple-user" } }, "required": [ - "enabled_by", - "merge_method", - "commit_title", - "commit_message" + "label", + "ref", + "repo", + "sha", + "user" ] }, "base": { @@ -153218,5535 +154263,19200 @@ "type": "string" }, "repo": { - "title": "Repository", - "description": "A git repository", + "$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" + }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, + "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" + ], + "x-github-breaking-changes": [ + { + "changeset": "remove_pull_request_merge_commit_sha", + "patch": { + "properties": { + "merge_commit_sha": null + }, + "required": [ + "_links", + "assignee", + "labels", + "base", + "body", + "closed_at", + "comments_url", + "commits_url", + "created_at", + "diff_url", + "head", + "html_url", + "id", + "node_id", + "issue_url", + "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" + ] + }, + "version": "2026-03-10" + }, + { + "changeset": "remove_singular_assignee_from_issues_and_pull_requests", + "patch": { + "properties": { + "assignee": null + }, + "required": [ + "_links", + "labels", + "base", + "body", + "closed_at", + "comments_url", + "commits_url", + "created_at", + "diff_url", + "head", + "html_url", + "id", + "node_id", + "issue_url", + "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" + ] + }, + "version": "2026-03-10" + } + ] + }, + "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-merge-async-result": { + "title": "Pull Request Merge Async Result", + "description": "Pull Request Merge Async Result", + "type": "object", + "additionalProperties": false, + "properties": { + "status": { + "type": "string", + "enum": [ + "pending", + "merged", + "enqueued", + "failed" + ] + }, + "details": { + "oneOf": [ + { + "description": "When an asynchronous merge request was created or already existed", "type": "object", + "additionalProperties": false, "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": { + "message": { "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 - }, - "pull_request_creation_policy": { - "description": "The policy controlling who can create pull requests: all or collaborators_only.", - "type": "string", - "enum": [ - "all", - "collaborators_only" - ] - }, - "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": { + "uuid": { "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.", + "merge_method": { "type": "string", "enum": [ - "PR_BODY", - "PR_TITLE", - "BLANK" + "default", + "merge", + "squash", + "rebase" ] }, - "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).", + "merge_action": { "type": "string", "enum": [ - "PR_TITLE", - "MERGE_MESSAGE" + "default", + "merge_queue", + "direct_merge" ] }, - "merges_url": { - "type": "string", - "format": "uri" - }, - "milestones_url": { - "type": "string", - "format": "uri-template" - }, - "mirror_url": { + "expected_head_sha": { "type": "string", - "nullable": true, - "format": "uri" - }, - "name": { - "description": "The name of the repository.", + "description": "SHA that the pull request head must match for the enqueued merge to proceed." + } + }, + "required": [ + "message", + "uuid", + "merge_method", + "merge_action", + "expected_head_sha" + ] + }, + { + "description": "When the pull request cannot be merged", + "type": "object", + "additionalProperties": false, + "properties": { + "message": { "type": "string" - }, - "node_id": { + } + }, + "required": [ + "message" + ] + }, + { + "description": "When the pull request is already merged", + "type": "object", + "additionalProperties": false, + "properties": { + "message": { "type": "string" }, - "notifications_url": { - "type": "string", - "format": "uri-template" - }, - "open_issues": { - "type": "integer" - }, - "open_issues_count": { - "type": "integer" - }, - "organization": { + "sha": { "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": { + } + }, + "required": [ + "message", + "sha" + ] + } + ] + } + }, + "required": [ + "status", + "details" + ] + }, + "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" - }, - "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" + "href" ] }, - "sha": { - "type": "string" - }, - "user": { - "title": "User", + "pull_request": { "type": "object", - "nullable": true, "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "deleted": { - "type": "boolean" - }, - "email": { - "type": "string", - "nullable": true - }, - "events_url": { - "type": "string", - "format": "uri-template" - }, - "followers_url": { - "type": "string", - "format": "uri" - }, - "following_url": { - "type": "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": { + "href": { "type": "string" } }, "required": [ - "login", - "id" + "href" ] } }, "required": [ - "label", - "ref", - "sha", - "user", - "repo" + "html", + "pull_request" ] }, - "body": { + "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 }, - "changed_files": { - "type": "integer" + "body_html": { + "type": "string" }, - "closed_at": { + "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", - "nullable": true, - "format": "date-time" + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/comments/1" }, - "comments": { - "type": "integer" + "pull_request_review_id": { + "type": "integer", + "format": "int64", + "example": 42, + "nullable": true }, - "comments_url": { + "id": { + "type": "integer", + "format": "int64", + "example": 10 + }, + "node_id": { "type": "string", - "format": "uri" + "example": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDEw" }, - "commits": { - "type": "integer" + "diff_hunk": { + "type": "string", + "example": "@@ -16,33 +16,40 @@ public class Connection : IConnection..." }, - "commits_url": { + "path": { "type": "string", - "format": "uri" + "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" + "format": "date-time", + "example": "2011-04-14T16:00:49Z" }, - "deletions": { - "type": "integer" + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-14T16:00:49Z" }, - "diff_url": { + "html_url": { "type": "string", - "format": "uri" + "format": "uri", + "example": "https://github.com/octocat/Hello-World/pull/1#discussion-diff-1" }, - "draft": { - "description": "Indicates whether or not the pull request is a draft.", - "type": "boolean" + "pull_request_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World/pulls/1" }, - "head": { + "author_association": { + "$ref": "#/components/schemas/author-association" + }, + "_links": { "type": "object", "properties": { - "label": { - "type": "string" + "self": { + "$ref": "#/components/schemas/link" }, - "ref": { - "type": "string" + "html": { + "$ref": "#/components/schemas/link" }, - "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 - }, - "pull_request_creation_policy": { - "description": "The policy controlling who can create pull requests: all or collaborators_only.", - "type": "string", - "enum": [ - "all", - "collaborators_only" - ] - }, - "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" - ] + "pull_request": { + "$ref": "#/components/schemas/link" } }, "required": [ - "label", - "ref", - "sha", - "user", - "repo" + "self", + "html", + "pull_request" ] }, - "html_url": { - "type": "string", - "format": "uri" + "body_text": { + "type": "string" }, - "id": { - "type": "integer" + "body_html": { + "type": "string" }, - "issue_url": { - "type": "string", - "format": "uri" + "reactions": { + "$ref": "#/components/schemas/reaction-rollup" }, - "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" - ] - } + "side": { + "description": "The side of the first line of the range for a multi-line comment.", + "enum": [ + "LEFT", + "RIGHT" + ], + "default": "RIGHT", + "type": "string" }, - "locked": { - "type": "boolean" + "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 }, - "maintainer_can_modify": { - "description": "Indicates whether maintainers can modify the pull request.", - "type": "boolean" + "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" }, - "merge_commit_sha": { - "type": "string", + "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 }, - "mergeable": { - "type": "boolean", + "original_start_line": { + "description": "The original first line of the range for a multi-line comment.", + "example": 2, + "type": "integer", "nullable": true }, - "mergeable_state": { - "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" + ] + } + }, + "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!" }, - "merged": { - "type": "boolean", - "nullable": true + "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" + ] }, - "merged_at": { + "ruleset_source": { "type": "string", - "nullable": true, - "format": "date-time" + "description": "The name of the source of the ruleset that includes this rule." }, - "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" + "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" }, - "received_events_url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-update" }, - "repos_url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-deletion" }, - "site_admin": { - "type": "boolean" + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-required-linear-history" }, - "starred_url": { - "type": "string", - "format": "uri-template" + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-merge-queue" }, - "subscriptions_url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-required-deployments" }, - "type": { - "type": "string", - "enum": [ - "Bot", - "User", - "Organization", - "Mannequin" - ] + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-required-signatures" }, - "url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-pull-request" }, - "user_view_type": { - "type": "string" + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" } - }, - "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" + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-required-status-checks" }, - "closed_issues": { - "type": "integer" + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-non-fast-forward" }, - "created_at": { - "type": "string", - "format": "date-time" + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-commit-message-pattern" }, - "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" - ] + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-commit-author-email-pattern" }, - "description": { - "type": "string", - "nullable": true + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-committer-email-pattern" }, - "due_on": { - "type": "string", - "nullable": true, - "format": "date-time" + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-branch-name-pattern" }, - "html_url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-tag-name-pattern" }, - "id": { - "type": "integer" + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-workflows" }, - "labels_url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-code-scanning" }, - "node_id": { - "type": "string" + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-copilot-code-review" }, - "number": { - "description": "The number of the milestone.", - "type": "integer" + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-license-compliance-scanning" }, - "open_issues": { - "type": "integer" + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-file-path-restriction" }, - "state": { - "description": "The state of the milestone.", - "type": "string", - "enum": [ - "open", - "closed" - ] + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-max-file-path-length" }, - "title": { - "description": "The title of the milestone.", - "type": "string" + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-file-extension-restriction" }, - "updated_at": { - "type": "string", - "format": "date-time" + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/repository-rule-max-file-size" }, - "url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/schemas/repository-rule-ruleset-info" } - }, - "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" ] + } + ] + }, + "secret-scanning-alert": { + "type": "object", + "properties": { + "number": { + "$ref": "#/components/schemas/alert-number" }, - "node_id": { - "type": "string" + "created_at": { + "$ref": "#/components/schemas/alert-created-at" }, - "number": { - "description": "Number uniquely identifying the pull request within its repository.", - "type": "integer" + "updated_at": { + "$ref": "#/components/schemas/nullable-alert-updated-at" }, - "patch_url": { + "url": { + "$ref": "#/components/schemas/alert-url" + }, + "html_url": { + "$ref": "#/components/schemas/alert-html-url" + }, + "locations_url": { "type": "string", - "format": "uri" + "format": "uri", + "description": "The REST API URL of the code locations for this alert." }, - "rebaseable": { + "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).\"" + }, + "provider": { + "type": "string", + "description": "The provider of the secret that was detected.", + "nullable": true + }, + "provider_slug": { + "type": "string", + "description": "The slug identifier for the provider of the secret that was detected. Use this value for filtering by provider with the `providers` or `exclude_providers` parameters.", + "nullable": true + }, + "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 }, - "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" - ] - } - ] - } + "push_protection_bypassed_by": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "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" - ] - } + "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 }, - "review_comment_url": { + "push_protection_bypass_request_reviewer": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "push_protection_bypass_request_reviewer_comment": { "type": "string", - "format": "uri-template" + "description": "An optional comment when reviewing a push protection bypass.", + "nullable": true }, - "review_comments": { - "type": "integer" + "push_protection_bypass_request_comment": { + "type": "string", + "description": "An optional comment when requesting a push protection bypass.", + "nullable": true }, - "review_comments_url": { + "push_protection_bypass_request_html_url": { "type": "string", - "format": "uri" + "format": "uri", + "description": "The URL to a push protection bypass request.", + "nullable": true }, - "state": { - "description": "State of this Pull Request. Either `open` or `closed`.", + "validity": { "type": "string", + "description": "The token status as of the latest validity check.", "enum": [ - "open", - "closed" + "active", + "inactive", + "unknown" ] }, - "statuses_url": { - "type": "string", - "format": "uri" + "publicly_leaked": { + "type": "boolean", + "description": "Whether the detected secret was publicly leaked.", + "nullable": true }, - "title": { - "description": "The title of the pull request.", - "type": "string" + "multi_repo": { + "type": "boolean", + "description": "Whether the detected secret was found in multiple repositories under the same organization or enterprise.", + "nullable": true }, - "updated_at": { + "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" + }, + "closure_request_comment": { "type": "string", - "format": "date-time" + "description": "An optional comment from the closure request author.", + "nullable": true }, - "url": { + "closure_request_reviewer_comment": { "type": "string", - "format": "uri" + "description": "An optional comment from the closure request reviewer.", + "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" - ] + "closure_request_reviewer": { + "$ref": "#/components/schemas/nullable-simple-user" } - }, - "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" - ], - "x-github-breaking-changes": [ - { - "changeset": "remove_pull_request_merge_commit_sha", - "patch": { - "properties": { - "merge_commit_sha": null - }, - "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", - "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" - ] + } + }, + "secret-scanning-alert-metadata": { + "type": "array", + "description": "A list of metadata key/value pairs associated with the secret scanning alert.", + "readOnly": true, + "items": { + "type": "object", + "properties": { + "key": { + "type": "string", + "description": "The metadata key." }, - "version": "2026-03-10" - } - ] + "value": { + "type": "string", + "description": "The metadata value." + } + }, + "required": [ + "key", + "value" + ] + } }, - "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.", + "secret-scanning-alert-with-metadata": { "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" - ] + "number": { + "$ref": "#/components/schemas/alert-number" }, - "author_association": { - "title": "AuthorAssociation", - "description": "How the author is associated with the repository.", + "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", - "enum": [ - "COLLABORATOR", - "CONTRIBUTOR", - "FIRST_TIMER", - "FIRST_TIME_CONTRIBUTOR", - "MANNEQUIN", - "MEMBER", - "NONE", - "OWNER" - ] + "format": "uri", + "description": "The REST API URL of the code locations for this alert." }, - "body": { - "description": "The text of the comment.", - "type": "string" + "state": { + "$ref": "#/components/schemas/secret-scanning-alert-state" }, - "commit_id": { - "description": "The SHA of the commit to which the comment applies.", - "type": "string" + "resolution": { + "$ref": "#/components/schemas/secret-scanning-alert-resolution" }, - "created_at": { + "resolved_at": { "type": "string", - "format": "date-time" + "format": "date-time", + "description": "The time that the alert was resolved in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "nullable": true }, - "diff_hunk": { - "description": "The diff of the line that the comment refers to.", - "type": "string" + "resolved_by": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "html_url": { - "description": "HTML URL for the pull request review comment.", + "resolution_comment": { "type": "string", - "format": "uri" + "description": "An optional comment to resolve an alert.", + "nullable": true }, - "id": { - "description": "The ID of the pull request review comment.", - "type": "integer" + "secret_type": { + "type": "string", + "description": "The type of secret that secret scanning detected." }, - "in_reply_to_id": { - "description": "The comment ID to reply to.", - "type": "integer" + "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).\"" }, - "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", + "provider": { + "type": "string", + "description": "The provider of the secret that was detected.", "nullable": true }, - "node_id": { - "description": "The node ID of the pull request review comment.", - "type": "string" + "provider_slug": { + "type": "string", + "description": "The slug identifier for the provider of the secret that was detected. Use this value for filtering by provider with the `providers` or `exclude_providers` parameters.", + "nullable": true }, - "original_commit_id": { - "description": "The SHA of the original commit to which the comment applies.", - "type": "string" + "secret": { + "type": "string", + "description": "The secret that was detected." }, - "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" + "push_protection_bypassed": { + "type": "boolean", + "description": "Whether push protection was bypassed for the detected secret.", + "nullable": true }, - "original_position": { - "description": "The index of the original line in the diff to which the comment applies.", - "type": "integer" + "push_protection_bypassed_by": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "original_start_line": { - "description": "The first line of the range for a multi-line comment.", - "type": "integer", + "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 }, - "path": { - "description": "The relative path of the file to which the comment applies.", - "type": "string" + "push_protection_bypass_request_reviewer": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "position": { - "description": "The line index in the diff to which the comment applies.", - "type": "integer", + "push_protection_bypass_request_reviewer_comment": { + "type": "string", + "description": "An optional comment when reviewing a push protection bypass.", "nullable": true }, - "pull_request_review_id": { - "description": "The ID of the pull request review to which the comment belongs.", - "type": "integer", + "push_protection_bypass_request_comment": { + "type": "string", + "description": "An optional comment when requesting a push protection bypass.", "nullable": true }, - "pull_request_url": { - "description": "URL for the pull request that the review comment belongs to.", + "push_protection_bypass_request_html_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" - ] + "format": "uri", + "description": "The URL to a push protection bypass request.", + "nullable": true }, - "side": { - "description": "The side of the first line of the range for a multi-line comment.", + "validity": { "type": "string", + "description": "The token status as of the latest validity check.", "enum": [ - "LEFT", - "RIGHT" + "active", + "inactive", + "unknown" ] }, - "start_line": { - "description": "The first line of the range for a multi-line comment.", - "type": "integer", + "publicly_leaked": { + "type": "boolean", + "description": "Whether the detected secret was publicly leaked.", "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" + "multi_repo": { + "type": "boolean", + "description": "Whether the detected secret was found in multiple repositories under the same organization or enterprise.", + "nullable": true }, - "subject_type": { - "description": "The level at which the comment is targeted, can be a diff line or a file.", + "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" + }, + "closure_request_comment": { "type": "string", - "enum": [ - "line", - "file" - ] + "description": "An optional comment from the closure request author.", + "nullable": true }, - "updated_at": { + "closure_request_reviewer_comment": { "type": "string", - "format": "date-time" + "description": "An optional comment from the closure request reviewer.", + "nullable": true }, - "url": { - "description": "URL for the pull request review comment", + "closure_request_reviewer": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "metadata": { + "$ref": "#/components/schemas/secret-scanning-alert-metadata" + } + } + }, + "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", - "format": "uri" + "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" }, - "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" + "details": { + "oneOf": [ + { + "$ref": "#/components/schemas/secret-scanning-location-commit" }, - "login": { - "type": "string" + { + "$ref": "#/components/schemas/secret-scanning-location-wiki-commit" }, - "name": { - "type": "string" + { + "$ref": "#/components/schemas/secret-scanning-location-issue-title" }, - "node_id": { - "type": "string" + { + "$ref": "#/components/schemas/secret-scanning-location-issue-body" }, - "organizations_url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/schemas/secret-scanning-location-issue-comment" }, - "received_events_url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/schemas/secret-scanning-location-discussion-title" }, - "repos_url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/schemas/secret-scanning-location-discussion-body" }, - "site_admin": { - "type": "boolean" + { + "$ref": "#/components/schemas/secret-scanning-location-discussion-comment" }, - "starred_url": { - "type": "string", - "format": "uri-template" + { + "$ref": "#/components/schemas/secret-scanning-location-pull-request-title" }, - "subscriptions_url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/schemas/secret-scanning-location-pull-request-body" }, - "type": { - "type": "string", - "enum": [ - "Bot", - "User", - "Organization" - ] + { + "$ref": "#/components/schemas/secret-scanning-location-pull-request-comment" }, - "url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/schemas/secret-scanning-location-pull-request-review" }, - "user_view_type": { - "type": "string" - } - }, - "required": [ - "login", - "id" + { + "$ref": "#/components/schemas/secret-scanning-location-pull-request-review-comment" + } ] } - }, - "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" + } + }, + "secret-scanning-push-protection-bypass-reason": { + "description": "The reason for bypassing push protection.", + "type": "string", + "enum": [ + "false_positive", + "used_in_tests", + "will_fix_later" ] }, - "webhooks_review": { - "description": "The review that was affected.", + "secret-scanning-push-protection-bypass": { "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" - ] + "reason": { + "$ref": "#/components/schemas/secret-scanning-push-protection-bypass-reason" }, - "author_association": { - "title": "AuthorAssociation", - "description": "How the author is associated with the repository.", + "expire_at": { "type": "string", - "enum": [ - "COLLABORATOR", - "CONTRIBUTOR", - "FIRST_TIMER", - "FIRST_TIME_CONTRIBUTOR", - "MANNEQUIN", - "MEMBER", - "NONE", - "OWNER" - ] + "format": "date-time", + "description": "The time that the bypass will expire in ISO 8601 format: `YYYY-MM-DDTHH:MM:SSZ`.", + "nullable": true }, - "body": { - "description": "The text of the review.", + "token_type": { "type": "string", - "nullable": true + "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" }, - "commit_id": { - "description": "A commit SHA for the review.", - "type": "string" + "status": { + "type": "string", + "description": "The state of the scan. Either \"completed\", \"running\", \"pending\", \"failed\", or \"unknown\".\n\n\"failed\": this scan type has hit its retry limit and has been marked permanently failed.\nThis usually resolves on its own at the next scheduled scan attempt. If \"failed\" persists, contact Support.\n\n\"unknown\": the scan is in an unrecognized or currently unhandled state." }, - "html_url": { + "completed_at": { "type": "string", - "format": "uri" + "format": "date-time", + "description": "The time that the scan was completed. Empty if the scan is running", + "nullable": true }, - "id": { - "description": "Unique identifier of the review", - "type": "integer" + "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" + } }, - "node_id": { - "type": "string" + "pattern_update_scans": { + "type": "array", + "items": { + "$ref": "#/components/schemas/secret-scanning-scan" + } }, - "pull_request_url": { - "type": "string", - "format": "uri" + "backfill_scans": { + "type": "array", + "items": { + "$ref": "#/components/schemas/secret-scanning-scan" + } }, - "state": { - "type": "string" + "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\"" + } + } + } + ] + } }, - "submitted_at": { + "generic_secrets_backfill_scans": { + "type": "array", + "items": { + "$ref": "#/components/schemas/secret-scanning-scan" + } + } + } + }, + "repository-advisory-create": { + "type": "object", + "properties": { + "summary": { "type": "string", - "nullable": true, - "format": "date-time" + "description": "A short summary of the advisory.", + "maxLength": 1024 }, - "updated_at": { + "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, - "format": "date-time" + "items": { + "type": "string" + } }, - "user": { - "title": "User", - "type": "object", + "credits": { + "type": "array", + "description": "A list of users receiving credit for their participation in the security advisory.", "nullable": true, - "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "deleted": { - "type": "boolean" - }, - "email": { - "type": "string", - "nullable": true - }, - "events_url": { - "type": "string", - "format": "uri-template" - }, - "followers_url": { - "type": "string", - "format": "uri" - }, - "following_url": { - "type": "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" + "items": { + "type": "object", + "properties": { + "login": { + "type": "string", + "description": "The username of the user credited." + }, + "type": { + "$ref": "#/components/schemas/security-advisory-credit-types" + } }, - "user_view_type": { - "type": "string" - } - }, - "required": [ - "login", - "id" + "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": [ - "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 + "summary", + "description", + "vulnerabilities" + ], + "additionalProperties": false }, - "webhooks_release": { - "title": "Release", - "description": "The [release](https://docs.github.com/rest/releases/releases/#get-a-release) object.", + "private-vulnerability-report-create": { "type": "object", "properties": { - "assets": { + "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": { - "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" + "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" + ] }, - "label": { + "vulnerable_version_range": { "type": "string", + "description": "The range of the package versions affected by the vulnerability.", "nullable": true }, - "name": { - "description": "The file name of the asset.", - "type": "string" - }, - "node_id": { - "type": "string" - }, - "size": { - "type": "integer" - }, - "digest": { + "patched_versions": { "type": "string", + "description": "The package version(s) that resolve the vulnerability.", "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", + "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": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "deleted": { - "type": "boolean" - }, - "email": { - "type": "string", - "nullable": true - }, - "events_url": { - "type": "string", - "format": "uri-template" - }, - "followers_url": { - "type": "string", - "format": "uri" - }, - "following_url": { - "type": "string", - "format": "uri-template" - }, - "gists_url": { - "type": "string", - "format": "uri-template" - }, - "gravatar_id": { - "type": "string" - }, - "html_url": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "integer" - }, - "login": { - "type": "string" + "ecosystem": { + "$ref": "#/components/schemas/security-advisory-ecosystems" }, "name": { - "type": "string" - }, - "node_id": { - "type": "string" - }, - "organizations_url": { - "type": "string", - "format": "uri" - }, - "received_events_url": { - "type": "string", - "format": "uri" - }, - "repos_url": { - "type": "string", - "format": "uri" - }, - "site_admin": { - "type": "boolean" - }, - "starred_url": { - "type": "string", - "format": "uri-template" - }, - "subscriptions_url": { - "type": "string", - "format": "uri" - }, - "type": { - "type": "string", - "enum": [ - "Bot", - "User", - "Organization" - ] - }, - "url": { "type": "string", - "format": "uri" + "description": "The unique package name within its ecosystem.", + "nullable": true } }, "required": [ - "login", - "id" + "ecosystem" ] }, - "url": { + "vulnerable_version_range": { "type": "string", - "format": "uri" + "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": [ - "url", - "browser_download_url", - "id", - "node_id", - "name", - "label", - "state", - "digest", - "content_type", - "size", - "download_count", - "created_at", - "updated_at" - ] + "package" + ], + "additionalProperties": false } }, - "assets_url": { - "type": "string", - "format": "uri" + "cwe_ids": { + "type": "array", + "description": "A list of Common Weakness Enumeration (CWE) IDs.", + "nullable": true, + "items": { + "type": "string" + } }, - "author": { - "title": "User", - "type": "object", + "credits": { + "type": "array", + "description": "A list of users receiving credit for their participation in the security advisory.", "nullable": true, - "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "deleted": { - "type": "boolean" - }, - "email": { - "type": "string", - "nullable": true - }, - "events_url": { - "type": "string", - "format": "uri-template" - }, - "followers_url": { - "type": "string", - "format": "uri" - }, - "following_url": { - "type": "string", - "format": "uri-template" - }, - "gists_url": { - "type": "string", - "format": "uri-template" - }, - "gravatar_id": { - "type": "string" - }, - "html_url": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "integer" - }, - "login": { - "type": "string" - }, - "name": { - "type": "string" - }, - "node_id": { - "type": "string" - }, - "organizations_url": { - "type": "string", - "format": "uri" - }, - "received_events_url": { - "type": "string", - "format": "uri" - }, - "repos_url": { - "type": "string", - "format": "uri" - }, - "site_admin": { - "type": "boolean" - }, - "starred_url": { - "type": "string", - "format": "uri-template" - }, - "subscriptions_url": { - "type": "string", - "format": "uri" - }, - "type": { - "type": "string", - "enum": [ - "Bot", - "User", - "Organization" - ] - }, - "url": { - "type": "string", - "format": "uri" + "items": { + "type": "object", + "properties": { + "login": { + "type": "string", + "description": "The username of the user credited." + }, + "type": { + "$ref": "#/components/schemas/security-advisory-credit-types" + } }, - "user_view_type": { - "type": "string" - } - }, - "required": [ - "login", - "id" - ] - }, - "body": { - "type": "string", - "nullable": true + "required": [ + "login", + "type" + ], + "additionalProperties": false + } }, - "created_at": { + "severity": { "type": "string", + "description": "The severity of the advisory. You must choose between setting this field or `cvss_vector_string`.", "nullable": true, - "format": "date-time" + "enum": [ + "critical", + "high", + "medium", + "low" + ] }, - "updated_at": { + "cvss_vector_string": { "type": "string", - "nullable": true, - "format": "date-time" + "description": "The CVSS vector that calculates the severity of the advisory. You must choose between setting this field or `severity`.", + "nullable": true }, - "discussion_url": { + "state": { "type": "string", - "format": "uri" - }, - "draft": { - "description": "Whether the release is a draft or published", - "type": "boolean" + "description": "The state of the advisory.", + "enum": [ + "published", + "closed", + "draft" + ] }, - "html_url": { - "type": "string", - "format": "uri" + "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 + }, + "pull-request-stack-minimal": { + "title": "Pull Request Stack Minimal", + "type": "object", + "required": [ + "id", + "number", + "node_id", + "url", + "base", + "open", + "created_at", + "pull_requests" + ], + "properties": { "id": { "type": "integer" }, - "immutable": { - "description": "Whether or not the release is immutable.", - "type": "boolean" - }, - "name": { - "type": "string", - "nullable": true + "number": { + "type": "integer" }, "node_id": { "type": "string" }, - "prerelease": { - "description": "Whether the release is identified as a prerelease or a full release.", - "type": "boolean" + "url": { + "type": "string", + "format": "uri" }, - "published_at": { + "base": { + "type": "object", + "required": [ + "ref" + ], + "properties": { + "ref": { + "type": "string" + } + } + }, + "open": { + "type": "boolean", + "description": "Whether the stack has any open pull request. False when all pull requests are merged or closed." + }, + "created_at": { "type": "string", - "nullable": true, "format": "date-time" }, - "reactions": { - "title": "Reactions", + "pull_requests": { + "type": "array", + "items": { + "type": "object", + "required": [ + "number", + "state", + "draft", + "merged_at", + "head" + ], + "properties": { + "number": { + "type": "integer" + }, + "state": { + "type": "string", + "enum": [ + "open", + "closed" + ] + }, + "draft": { + "type": "boolean" + }, + "merged_at": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "head": { + "type": "object", + "required": [ + "ref", + "sha" + ], + "properties": { + "ref": { + "type": "string" + }, + "sha": { + "type": "string" + } + } + } + } + } + } + } + }, + "pull-request-stack-pull-request": { + "title": "Pull Request Stack Pull Request", + "type": "object", + "allOf": [ + { + "$ref": "#/components/schemas/pull-request-minimal" + }, + { "type": "object", + "required": [ + "node_id", + "title", + "state", + "merged_at", + "draft", + "html_url", + "user" + ], "properties": { - "+1": { - "type": "integer" - }, - "-1": { - "type": "integer" - }, - "confused": { - "type": "integer" - }, - "eyes": { - "type": "integer" - }, - "heart": { - "type": "integer" + "node_id": { + "type": "string" }, - "hooray": { - "type": "integer" + "title": { + "type": "string" }, - "laugh": { - "type": "integer" + "state": { + "type": "string", + "enum": [ + "open", + "closed" + ] }, - "rocket": { - "type": "integer" + "merged_at": { + "type": "string", + "format": "date-time", + "nullable": true }, - "total_count": { - "type": "integer" + "draft": { + "type": "boolean" }, - "url": { + "html_url": { "type": "string", "format": "uri" + }, + "user": { + "$ref": "#/components/schemas/nullable-simple-user" } - }, - "required": [ - "url", - "total_count", - "+1", - "-1", - "laugh", - "confused", - "heart", - "hooray", - "eyes", - "rocket" - ] - }, - "tag_name": { - "description": "The name of the tag.", - "type": "string" - }, - "tarball_url": { + } + } + ] + }, + "stargazer": { + "title": "Stargazer", + "description": "Stargazer", + "type": "object", + "properties": { + "starred_at": { "type": "string", - "nullable": true, - "format": "uri" - }, - "target_commitish": { - "description": "Specifies the commitish value that determines where the Git tag is created from.", - "type": "string" + "format": "date-time" }, - "upload_url": { - "type": "string", - "format": "uri-template" + "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" + } }, - "url": { - "type": "string", - "format": "uri" + "total": { + "type": "integer", + "example": 89 }, - "zipball_url": { - "type": "string", - "nullable": true, - "format": "uri" + "week": { + "type": "integer", + "example": 1336280400 } }, "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" + "days", + "total", + "week" ] }, - "webhooks_release_1": { - "title": "Release", - "description": "The [release](https://docs.github.com/rest/releases/releases/#get-a-release) object.", + "contributor-activity": { + "title": "Contributor Activity", + "description": "Contributor Activity", "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": { + "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": { - "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": { + "w": { "type": "integer" }, - "id": { + "a": { "type": "integer" }, - "label": { - "type": "string", - "nullable": true - }, - "name": { - "description": "The file name of the asset.", - "type": "string" - }, - "node_id": { - "type": "string" - }, - "size": { + "d": { "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" + "c": { + "type": "integer" } } } + } + }, + "required": [ + "author", + "total", + "weeks" + ] + }, + "participation-stats": { + "title": "Participation Stats", + "type": "object", + "properties": { + "all": { + "type": "array", + "items": { + "type": "integer" + } }, - "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" - } + "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 }, - "body": { + "ignored": { + "description": "Determines if all notifications should be blocked from this repository.", + "type": "boolean" + }, + "reason": { "type": "string", "nullable": true }, "created_at": { "type": "string", - "nullable": true, - "format": "date-time" + "format": "date-time", + "example": "2012-10-06T21:34:12Z" }, - "discussion_url": { + "url": { "type": "string", - "format": "uri" - }, - "draft": { - "description": "Whether the release is a draft or published", - "type": "boolean" + "format": "uri", + "example": "https://api.github.com/repos/octocat/example/subscription" }, - "html_url": { + "repository_url": { "type": "string", - "format": "uri" - }, - "id": { - "type": "integer" - }, - "immutable": { - "description": "Whether or not the release is immutable.", - "type": "boolean" - }, + "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", - "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" + "example": "v0.1" }, - "reactions": { - "title": "Reactions", + "commit": { "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" + "sha": { + "type": "string" }, "url": { "type": "string", "format": "uri" } - } + }, + "required": [ + "sha", + "url" + ] }, - "tag_name": { - "description": "The name of the tag.", - "type": "string" + "zipball_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World/zipball/v0.1" }, "tarball_url": { "type": "string", - "nullable": true, - "format": "uri" + "format": "uri", + "example": "https://github.com/octocat/Hello-World/tarball/v0.1" }, - "target_commitish": { - "description": "Specifies the commitish value that determines where the Git tag is created from.", + "node_id": { "type": "string" - }, - "updated_at": { + } + }, + "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", - "nullable": true, "format": "date-time" }, - "upload_url": { - "type": "string", - "format": "uri-template" - }, - "url": { - "type": "string", - "format": "uri" + "uniques": { + "type": "integer" }, - "zipball_url": { - "type": "string", - "nullable": true, - "format": "uri" + "count": { + "type": "integer" } - } + }, + "required": [ + "timestamp", + "uniques", + "count" + ] }, - "webhooks_alert": { - "title": "Repository Vulnerability Alert Alert", - "description": "The security alert of the vulnerable dependency.", + "clone-traffic": { + "title": "Clone Traffic", + "description": "Clone Traffic", "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" + "count": { + "type": "integer", + "example": 173 }, - "dismissed_at": { - "type": "string" + "uniques": { + "type": "integer", + "example": 128 }, - "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" - } + "clones": { + "type": "array", + "items": { + "$ref": "#/components/schemas/traffic" } - }, - "external_identifier": { - "type": "string" - }, - "external_reference": { + } + }, + "required": [ + "uniques", + "count", + "clones" + ] + }, + "content-traffic": { + "title": "Content Traffic", + "description": "Content Traffic", + "type": "object", + "properties": { + "path": { "type": "string", - "nullable": true, - "format": "uri" - }, - "fix_reason": { - "type": "string" + "example": "/github/hubot" }, - "fixed_at": { + "title": { "type": "string", - "format": "date-time" - }, - "fixed_in": { - "type": "string" + "example": "github/hubot: A customizable life embetterment robot." }, - "ghsa_id": { - "type": "string" + "count": { + "type": "integer", + "example": 3542 }, - "id": { - "type": "integer" + "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" }, - "node_id": { - "type": "string" + "count": { + "type": "integer", + "example": 4 }, - "number": { - "type": "integer" + "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 }, - "severity": { - "type": "string" + "uniques": { + "type": "integer", + "example": 3782 }, - "state": { - "type": "string", - "enum": [ - "auto_dismissed", - "open" - ] + "views": { + "type": "array", + "items": { + "$ref": "#/components/schemas/traffic" + } } - } - }, - "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" + }, + "required": [ + "uniques", + "count", + "views" ] }, - "secret-scanning-alert-webhook": { + "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": { - "number": { - "$ref": "#/components/schemas/alert-number" + "name": { + "type": "string" }, - "created_at": { - "$ref": "#/components/schemas/alert-created-at" + "path": { + "type": "string" }, - "updated_at": { - "$ref": "#/components/schemas/nullable-alert-updated-at" + "sha": { + "type": "string" }, "url": { - "$ref": "#/components/schemas/alert-url" + "type": "string", + "format": "uri" }, - "html_url": { - "$ref": "#/components/schemas/alert-html-url" + "git_url": { + "type": "string", + "format": "uri" }, - "locations_url": { + "html_url": { "type": "string", - "format": "uri", - "description": "The REST API URL of the code locations for this alert." + "format": "uri" }, - "resolution": { - "$ref": "#/components/schemas/secret-scanning-alert-resolution-webhook" + "repository": { + "$ref": "#/components/schemas/minimal-repository" }, - "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 + "score": { + "type": "number" }, - "resolved_by": { - "$ref": "#/components/schemas/nullable-simple-user" + "file_size": { + "type": "integer" }, - "resolution_comment": { + "language": { "type": "string", - "description": "An optional comment to resolve an alert.", "nullable": true }, - "secret_type": { + "last_modified_at": { "type": "string", - "description": "The type of secret that secret scanning detected." + "format": "date-time" }, - "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).\"" + "line_numbers": { + "type": "array", + "items": { + "type": "string" + }, + "example": [ + "73..77", + "77..78" + ] }, - "provider": { + "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", - "description": "The provider of the secret that was detected.", - "nullable": true + "format": "uri" }, - "provider_slug": { - "type": "string", - "description": "The slug identifier for the provider of the secret that was detected.", - "nullable": true + "sha": { + "type": "string" }, - "validity": { + "html_url": { "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" + "format": "uri" }, - "push_protection_bypassed_at": { + "comments_url": { "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" - }, - "closure_request_comment": { - "type": "string", - "description": "An optional comment from the closure request author.", - "nullable": true - }, - "closure_request_reviewer_comment": { - "type": "string", - "description": "An optional comment from the closure request reviewer.", - "nullable": true + "format": "uri" }, - "closure_request_reviewer": { - "$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": { + "commit": { "type": "object", "properties": { - "score": { - "type": "number" + "author": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "email": { + "type": "string" + }, + "date": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "name", + "email", + "date" + ] }, - "vector_string": { + "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", - "nullable": true + "format": "uri" + }, + "verification": { + "$ref": "#/components/schemas/verification" } }, "required": [ - "vector_string", - "score" + "author", + "committer", + "comment_count", + "message", + "tree", + "url" ] }, - "cvss_severities": { - "$ref": "#/components/schemas/cvss-severities" + "author": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "cwes": { + "committer": { + "$ref": "#/components/schemas/nullable-git-user" + }, + "parents": { "type": "array", "items": { "type": "object", "properties": { - "cwe_id": { + "url": { "type": "string" }, - "name": { + "html_url": { + "type": "string" + }, + "sha": { "type": "string" } - }, - "required": [ - "cwe_id", - "name" - ] + } } }, - "description": { - "type": "string" + "repository": { + "$ref": "#/components/schemas/minimal-repository" }, - "ghsa_id": { + "score": { + "type": "number" + }, + "node_id": { "type": "string" }, - "identifiers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "value", - "type" - ] - } + "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" }, - "published_at": { + "repository_url": { + "type": "string", + "format": "uri" + }, + "labels_url": { "type": "string" }, - "references": { - "type": "array", - "items": { - "type": "object", - "properties": { - "url": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "url" - ] - } + "comments_url": { + "type": "string", + "format": "uri" }, - "severity": { - "type": "string" + "events_url": { + "type": "string", + "format": "uri" }, - "summary": { + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer", + "format": "int64" + }, + "node_id": { "type": "string" }, - "updated_at": { + "number": { + "type": "integer" + }, + "title": { "type": "string" }, - "vulnerabilities": { + "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": { - "first_patched_version": { - "type": "object", - "nullable": true, - "properties": { - "identifier": { - "type": "string" - } - }, - "required": [ - "identifier" - ] + "id": { + "type": "integer", + "format": "int64" }, - "package": { - "type": "object", - "properties": { - "ecosystem": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "ecosystem", - "name" - ] + "node_id": { + "type": "string" }, - "severity": { + "url": { "type": "string" }, - "vulnerable_version_range": { + "name": { "type": "string" + }, + "color": { + "type": "string" + }, + "default": { + "type": "boolean" + }, + "description": { + "type": "string", + "nullable": true } - }, - "required": [ - "package", - "severity", - "vulnerable_version_range", - "first_patched_version" - ] + } } }, - "withdrawn_at": { + "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 - } - }, - "required": [ - "cvss", - "cwes", - "ghsa_id", - "summary", - "description", - "severity", - "identifiers", - "references", - "published_at", - "updated_at", - "withdrawn_at", - "vulnerabilities" - ], - "x-github-breaking-changes": [ - { - "changeset": "deprecate_cvss", - "patch": { - "properties": { - "cvss": null - }, - "required": [ - "cwes", - "ghsa_id", - "summary", - "description", - "severity", - "identifiers", - "references", - "published_at", - "updated_at", - "withdrawn_at", - "vulnerabilities" - ] - }, - "version": "2026-03-10" - } - ] - }, - "webhooks_sponsorship": { - "type": "object", - "properties": { + }, + "assignee": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "milestone": { + "$ref": "#/components/schemas/nullable-milestone" + }, + "comments": { + "type": "integer" + }, "created_at": { - "type": "string" + "type": "string", + "format": "date-time" }, - "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" - } - } + "updated_at": { + "type": "string", + "format": "date-time" }, - "node_id": { - "type": "string" + "closed_at": { + "type": "string", + "format": "date-time", + "nullable": true }, - "privacy_level": { - "type": "string" + "text_matches": { + "$ref": "#/components/schemas/search-result-text-matches" }, - "sponsor": { - "title": "User", + "pull_request": { "type": "object", - "nullable": true, "properties": { - "avatar_url": { - "type": "string", - "format": "uri" - }, - "deleted": { - "type": "boolean" - }, - "email": { + "merged_at": { "type": "string", + "format": "date-time", "nullable": true }, - "events_url": { - "type": "string", - "format": "uri-template" - }, - "followers_url": { - "type": "string", - "format": "uri" - }, - "following_url": { - "type": "string", - "format": "uri-template" - }, - "gists_url": { - "type": "string", - "format": "uri-template" - }, - "gravatar_id": { - "type": "string" - }, - "html_url": { - "type": "string", - "format": "uri" - }, - "id": { - "type": "integer" - }, - "login": { - "type": "string" - }, - "name": { - "type": "string" - }, - "node_id": { - "type": "string" - }, - "organizations_url": { - "type": "string", - "format": "uri" - }, - "received_events_url": { - "type": "string", - "format": "uri" - }, - "repos_url": { - "type": "string", - "format": "uri" - }, - "site_admin": { - "type": "boolean" - }, - "starred_url": { - "type": "string", - "format": "uri-template" - }, - "subscriptions_url": { - "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": { + "diff_url": { "type": "string", + "format": "uri", "nullable": true }, - "events_url": { - "type": "string", - "format": "uri-template" - }, - "followers_url": { - "type": "string", - "format": "uri" - }, - "following_url": { - "type": "string", - "format": "uri-template" - }, - "gists_url": { - "type": "string", - "format": "uri-template" - }, - "gravatar_id": { - "type": "string" - }, "html_url": { "type": "string", - "format": "uri" - }, - "id": { - "type": "integer" - }, - "login": { - "type": "string" - }, - "name": { - "type": "string" - }, - "node_id": { - "type": "string" - }, - "organizations_url": { - "type": "string", - "format": "uri" - }, - "received_events_url": { - "type": "string", - "format": "uri" - }, - "repos_url": { - "type": "string", - "format": "uri" - }, - "site_admin": { - "type": "boolean" - }, - "starred_url": { - "type": "string", - "format": "uri-template" - }, - "subscriptions_url": { - "type": "string", - "format": "uri" + "format": "uri", + "nullable": true }, - "type": { + "patch_url": { "type": "string", - "enum": [ - "Bot", - "User", - "Organization" - ] + "format": "uri", + "nullable": true }, "url": { "type": "string", - "format": "uri" - }, - "user_view_type": { - "type": "string" + "format": "uri", + "nullable": true } }, "required": [ - "login", - "id" + "diff_url", + "html_url", + "patch_url", + "url" ] }, - "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" - ] + "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" + }, + "pinned_comment": { + "$ref": "#/components/schemas/nullable-issue-comment" + }, + "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", - "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" - ] - } + "updated_at", + "score" + ], + "x-github-breaking-changes": [ + { + "changeset": "remove_singular_assignee_from_issues_and_pull_requests", + "patch": { + "properties": { + "assignee": null + }, + "required": [ + "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" + ] }, - "required": [ - "from" - ] + "version": "2026-03-10" } - }, - "required": [ - "tier" ] }, - "webhooks_team_1": { - "title": "Team", - "description": "Groups of organization members that gives permissions on specified repositories.", + "label-search-result-item": { + "title": "Label Search Result Item", + "description": "Label Search Result Item", "type": "object", "properties": { - "deleted": { + "id": { + "type": "integer" + }, + "node_id": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "name": { + "type": "string" + }, + "color": { + "type": "string" + }, + "default": { "type": "boolean" }, "description": { - "description": "Description of the team", "type": "string", "nullable": true }, - "html_url": { - "type": "string", - "format": "uri" + "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": { - "description": "Unique identifier of the team", "type": "integer" }, - "members_url": { - "type": "string", - "format": "uri-template" + "node_id": { + "type": "string" }, "name": { - "description": "Name of the team", "type": "string" }, - "node_id": { + "full_name": { "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" + "owner": { + "$ref": "#/components/schemas/nullable-simple-user" }, - "privacy": { - "type": "string", - "enum": [ - "open", - "closed", - "secret" - ] + "private": { + "type": "boolean" }, - "notification_setting": { - "description": "Whether team members will receive notifications when their team is @mentioned", + "html_url": { "type": "string", - "enum": [ - "notifications_enabled", - "notifications_disabled" - ] + "format": "uri" }, - "repositories_url": { + "description": { "type": "string", - "format": "uri" + "nullable": true }, - "slug": { - "type": "string" + "fork": { + "type": "boolean" }, "url": { - "description": "URL for the team", "type": "string", "format": "uri" }, - "type": { - "description": "The ownership type of the team", + "created_at": { "type": "string", - "enum": [ - "enterprise", - "organization" - ] + "format": "date-time" }, - "organization_id": { - "type": "integer", - "description": "Unique identifier of the organization to which this team belongs", - "example": 37 + "updated_at": { + "type": "string", + "format": "date-time" }, - "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": { + "pushed_at": { "type": "string", - "enum": [ - "disabled" - ] + "format": "date-time" }, - "enterprise": { - "$ref": "#/components/schemas/enterprise-webhooks" + "homepage": { + "type": "string", + "format": "uri", + "nullable": true }, - "installation": { - "$ref": "#/components/schemas/simple-installation" + "size": { + "type": "integer" }, - "organization": { - "$ref": "#/components/schemas/organization-simple-webhooks" + "stargazers_count": { + "type": "integer" }, - "repository": { - "$ref": "#/components/schemas/repository-webhooks" + "watchers_count": { + "type": "integer" }, - "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": { + "language": { "type": "string", - "enum": [ - "enabled" - ] + "nullable": true }, - "enterprise": { - "$ref": "#/components/schemas/enterprise-webhooks" + "forks_count": { + "type": "integer" }, - "installation": { - "$ref": "#/components/schemas/simple-installation" + "open_issues_count": { + "type": "integer" }, - "organization": { - "$ref": "#/components/schemas/organization-simple-webhooks" + "master_branch": { + "type": "string" }, - "repository": { - "$ref": "#/components/schemas/repository-webhooks" + "default_branch": { + "type": "string" }, - "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": { + "score": { + "type": "number" + }, + "forks_url": { "type": "string", - "enum": [ - "created" - ] + "format": "uri" }, - "enterprise": { - "$ref": "#/components/schemas/enterprise-webhooks" + "keys_url": { + "type": "string" }, - "installation": { - "$ref": "#/components/schemas/simple-installation" + "collaborators_url": { + "type": "string" }, - "organization": { - "$ref": "#/components/schemas/organization-simple-webhooks" + "teams_url": { + "type": "string", + "format": "uri" }, - "repository": { - "$ref": "#/components/schemas/repository-webhooks" + "hooks_url": { + "type": "string", + "format": "uri" }, - "rule": { - "$ref": "#/components/schemas/webhooks_rule" + "issue_events_url": { + "type": "string" }, - "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": { + "events_url": { "type": "string", - "enum": [ - "deleted" - ] + "format": "uri" }, - "enterprise": { - "$ref": "#/components/schemas/enterprise-webhooks" + "assignees_url": { + "type": "string" }, - "installation": { - "$ref": "#/components/schemas/simple-installation" + "branches_url": { + "type": "string" }, - "organization": { - "$ref": "#/components/schemas/organization-simple-webhooks" + "tags_url": { + "type": "string", + "format": "uri" }, - "repository": { - "$ref": "#/components/schemas/repository-webhooks" + "blobs_url": { + "type": "string" }, - "rule": { - "$ref": "#/components/schemas/webhooks_rule" + "git_tags_url": { + "type": "string" }, - "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": { + "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" + }, + "pull_request_creation_policy": { + "description": "The policy controlling who can create pull requests: all or collaborators_only.", "type": "string", "enum": [ - "edited" + "all", + "collaborators_only" ] }, - "changes": { - "description": "If the action was `edited`, the changes to the rule.", + "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_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" - ] + "admin": { + "type": "boolean" }, - "pull_request_reviews_enforcement_level": { - "type": "object", - "properties": { - "from": { - "type": "string", - "enum": [ - "off", - "non_admins", - "everyone" - ] - } - }, - "required": [ - "from" - ] + "maintain": { + "type": "boolean" }, - "require_last_push_approval": { - "type": "object", - "properties": { - "from": { - "type": "boolean", - "nullable": true - } - }, - "required": [ - "from" - ] + "push": { + "type": "boolean" }, - "required_status_checks": { - "type": "object", - "properties": { - "from": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "from" - ] + "triage": { + "type": "boolean" }, - "required_status_checks_enforcement_level": { - "type": "object", - "properties": { - "from": { - "type": "string", - "enum": [ - "off", - "non_admins", - "everyone" - ] - } - }, - "required": [ - "from" - ] + "pull": { + "type": "boolean" } - } + }, + "required": [ + "admin", + "pull", + "push" + ] }, - "enterprise": { - "$ref": "#/components/schemas/enterprise-webhooks" + "text_matches": { + "$ref": "#/components/schemas/search-result-text-matches" }, - "installation": { - "$ref": "#/components/schemas/simple-installation" + "temp_clone_token": { + "type": "string" }, - "organization": { - "$ref": "#/components/schemas/organization-simple-webhooks" + "allow_merge_commit": { + "type": "boolean" }, - "repository": { - "$ref": "#/components/schemas/repository-webhooks" + "allow_squash_merge": { + "type": "boolean" }, - "rule": { - "$ref": "#/components/schemas/webhooks_rule" + "allow_rebase_merge": { + "type": "boolean" }, - "sender": { - "$ref": "#/components/schemas/simple-user" + "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": [ - "action", - "rule", - "repository", - "sender" + "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" ] }, - "webhook-check-run-completed": { - "title": "Check Run Completed Event", + "topic-search-result-item": { + "title": "Topic Search Result Item", + "description": "Topic Search Result Item", "type": "object", "properties": { - "action": { + "name": { + "type": "string" + }, + "display_name": { "type": "string", - "enum": [ - "completed" - ] + "nullable": true }, - "check_run": { - "$ref": "#/components/schemas/check-run-with-simple-check-suite" + "short_description": { + "type": "string", + "nullable": true }, - "installation": { - "$ref": "#/components/schemas/simple-installation" + "description": { + "type": "string", + "nullable": true }, - "enterprise": { - "$ref": "#/components/schemas/enterprise-webhooks" + "created_by": { + "type": "string", + "nullable": true }, - "organization": { - "$ref": "#/components/schemas/organization-simple-webhooks" + "released": { + "type": "string", + "nullable": true }, - "repository": { - "$ref": "#/components/schemas/repository-webhooks" + "created_at": { + "type": "string", + "format": "date-time" }, - "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": { + "updated_at": { "type": "string", - "enum": [ - "created" - ] + "format": "date-time" }, - "check_run": { - "$ref": "#/components/schemas/check-run-with-simple-check-suite" + "featured": { + "type": "boolean" }, - "installation": { - "$ref": "#/components/schemas/simple-installation" + "curated": { + "type": "boolean" }, - "enterprise": { - "$ref": "#/components/schemas/enterprise-webhooks" + "score": { + "type": "number" }, - "organization": { - "$ref": "#/components/schemas/organization-simple-webhooks" + "repository_count": { + "type": "integer", + "nullable": true }, - "repository": { - "$ref": "#/components/schemas/repository-webhooks" + "logo_url": { + "type": "string", + "format": "uri", + "nullable": true }, - "sender": { - "$ref": "#/components/schemas/simple-user" + "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": [ - "check_run", - "repository", - "sender" + "name", + "display_name", + "short_description", + "description", + "created_by", + "released", + "created_at", + "updated_at", + "featured", + "curated", + "score" ] }, - "webhook-check-run-created-form-encoded": { - "title": "Check Run Created Event", - "description": "The check_run.created webhook encoded with URL encoding", + "user-search-result-item": { + "title": "User Search Result Item", + "description": "User Search Result Item", "type": "object", "properties": { - "payload": { - "description": "A URL-encoded string of the check_run.created JSON payload. The decoded payload is a JSON object.", + "login": { "type": "string" - } - }, - "required": [ - "payload" - ] - }, - "webhook-check-run-requested-action": { - "title": "Check Run Requested Action Event", - "type": "object", - "properties": { - "action": { + }, + "id": { + "type": "integer", + "format": "int64" + }, + "node_id": { + "type": "string" + }, + "avatar_url": { "type": "string", - "enum": [ - "requested_action" - ] + "format": "uri" }, - "check_run": { - "$ref": "#/components/schemas/check-run-with-simple-check-suite" + "gravatar_id": { + "type": "string", + "nullable": true }, - "installation": { - "$ref": "#/components/schemas/simple-installation" + "url": { + "type": "string", + "format": "uri" }, - "enterprise": { - "$ref": "#/components/schemas/enterprise-webhooks" + "html_url": { + "type": "string", + "format": "uri" }, - "organization": { - "$ref": "#/components/schemas/organization-simple-webhooks" + "followers_url": { + "type": "string", + "format": "uri" }, - "repository": { - "$ref": "#/components/schemas/repository-webhooks" + "subscriptions_url": { + "type": "string", + "format": "uri" }, - "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" - } - } + "organizations_url": { + "type": "string", + "format": "uri" }, - "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.", + "repos_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "type": { "type": "string" - } - }, - "required": [ - "payload" - ] - }, - "webhook-check-run-rerequested": { - "title": "Check Run Re-Requested Event", - "type": "object", - "properties": { - "action": { + }, + "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", - "enum": [ - "rerequested" - ] + "format": "date-time" }, - "check_run": { - "$ref": "#/components/schemas/check-run-with-simple-check-suite" + "updated_at": { + "type": "string", + "format": "date-time" }, - "installation": { - "$ref": "#/components/schemas/simple-installation" + "name": { + "type": "string", + "nullable": true }, - "enterprise": { - "$ref": "#/components/schemas/enterprise-webhooks" + "bio": { + "type": "string", + "nullable": true }, - "organization": { - "$ref": "#/components/schemas/organization-simple-webhooks" + "email": { + "type": "string", + "format": "email", + "nullable": true }, - "repository": { - "$ref": "#/components/schemas/repository-webhooks" + "location": { + "type": "string", + "nullable": true }, - "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.", + "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": [ - "payload" + "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" ] }, - "webhook-check-suite-completed": { - "title": "check_suite completed event", + "private-user": { + "title": "Private User", + "description": "Private User", "type": "object", "properties": { - "action": { + "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-ai-credit-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-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 + }, + "pull_request_creation_policy": { + "description": "The policy controlling who can create pull requests: all or collaborators_only.", + "type": "string", + "enum": [ + "all", + "collaborators_only" + ] + }, + "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" + ], + "x-github-breaking-changes": [ + { + "changeset": "remove_use_squash_pr_title_as_default", + "patch": { + "properties": { + "use_squash_pr_title_as_default": null, + "template_repository": { + "properties": { + "use_squash_pr_title_as_default": null + } + } + } + }, + "version": "2026-03-10" + }, + { + "changeset": "deprecate_beta_media_type", + "patch": { + "properties": { + "master_branch": null + } + }, + "version": "2026-03-10" + } + ] + }, + "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" + ] + }, + "nullable-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" + ], + "nullable": true + }, + "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" + }, + "minimized": { + "$ref": "#/components/schemas/nullable-issue-comment-minimized" + } + }, + "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" + }, + "pinned_comment": { + "$ref": "#/components/schemas/nullable-issue-comment" + }, + "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" + }, + "pinned_comment": { + "$ref": "#/components/schemas/nullable-issue-comment" + }, + "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 + }, + "pull_request_creation_policy": { + "description": "The policy controlling who can create pull requests: all or collaborators_only.", + "type": "string", + "enum": [ + "all", + "collaborators_only" + ] + }, + "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" + ], + "x-github-breaking-changes": [ + { + "changeset": "remove_use_squash_pr_title_as_default", + "patch": { + "properties": { + "use_squash_pr_title_as_default": null, + "template_repository": { + "properties": { + "use_squash_pr_title_as_default": null + } + } + } + }, + "version": "2026-03-10" + }, + { + "changeset": "deprecate_beta_media_type", + "patch": { + "properties": { + "master_branch": null + } + }, + "version": "2026-03-10" + } + ], + "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 + }, + "pull_request_creation_policy": { + "description": "The policy controlling who can create pull requests: all or collaborators_only.", + "type": "string", + "enum": [ + "all", + "collaborators_only" + ] + }, + "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 + }, + "pull_request_creation_policy": { + "description": "The policy controlling who can create pull requests: all or collaborators_only.", + "type": "string", + "enum": [ + "all", + "collaborators_only" + ] + }, + "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" + }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, + "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" + ], + "x-github-breaking-changes": [ + { + "changeset": "remove_pull_request_merge_commit_sha", + "patch": { + "properties": { + "merge_commit_sha": null + }, + "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", + "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" + ] + }, + "version": "2026-03-10" + } + ] + }, + "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).\"" + }, + "provider": { + "type": "string", + "description": "The provider of the secret that was detected.", + "nullable": true + }, + "provider_slug": { + "type": "string", + "description": "The slug identifier for the provider of the secret that was detected.", + "nullable": true + }, + "secret_category": { + "type": "string", + "description": "The category of the detected secret. `default` covers specific provider patterns and custom patterns; `generic` covers non-specific patterns and AI-detected secrets.", + "enum": [ + "default", + "generic" + ] + }, + "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" + }, + "closure_request_comment": { + "type": "string", + "description": "An optional comment from the closure request author.", + "nullable": true + }, + "closure_request_reviewer_comment": { + "type": "string", + "description": "An optional comment from the closure request reviewer.", + "nullable": true + }, + "closure_request_reviewer": { + "$ref": "#/components/schemas/nullable-simple-user" + }, + "metadata": { + "$ref": "#/components/schemas/secret-scanning-alert-metadata" + } + } + }, + "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" + ], + "x-github-breaking-changes": [ + { + "changeset": "deprecate_cvss", + "patch": { + "properties": { + "cvss": null + }, + "required": [ + "cwes", + "ghsa_id", + "summary", + "description", + "severity", + "identifiers", + "references", + "published_at", + "updated_at", + "withdrawn_at", + "vulnerabilities" + ] + }, + "version": "2026-03-10" + } + ] + }, + "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" @@ -158974,837 +173684,851 @@ "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": { + "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" ] - } - } - }, - "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": { + "attestations": { "type": "string", "enum": [ "read", "write" ] }, - "administration": { + "checks": { "type": "string", "enum": [ "read", "write" ] }, - "artifact_metadata": { + "code_quality": { "type": "string", "enum": [ "read", "write" ] }, - "attestations": { + "content_references": { "type": "string", "enum": [ "read", "write" ] }, - "checks": { + "contents": { "type": "string", "enum": [ "read", "write" ] }, - "content_references": { + "copilot_requests": { "type": "string", "enum": [ - "read", "write" ] }, - "contents": { + "deployments": { "type": "string", "enum": [ "read", "write" ] }, - "copilot_requests": { - "type": "string", - "enum": [ - "write" - ] - }, - "deployments": { + "discussions": { "type": "string", "enum": [ "read", "write" ] }, - "discussions": { + "drives": { "type": "string", "enum": [ "read", @@ -160586,6 +175310,13 @@ "write" ] }, + "code_quality": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, "content_references": { "type": "string", "enum": [ @@ -160620,6 +175351,13 @@ "write" ] }, + "drives": { + "type": "string", + "enum": [ + "read", + "write" + ] + }, "emails": { "type": "string", "enum": [ @@ -161282,6 +176020,7 @@ "false positive", "won't fix", "used in tests", + "mitigated", null ] }, @@ -161616,6 +176355,7 @@ "false positive", "won't fix", "used in tests", + "mitigated", null ] }, @@ -161964,7 +176704,7 @@ "$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`.", + "description": "The reason for dismissing or closing the alert. Can be one of: `false positive`, `won't fix`, `used in tests`, and `mitigated`.", "nullable": true }, "fixed_at": { @@ -162341,6 +177081,7 @@ "false positive", "won't fix", "used in tests", + "mitigated", null ] }, @@ -162605,7 +177346,7 @@ "$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`.", + "description": "The reason for dismissing or closing the alert. Can be one of: `false positive`, `won't fix`, `used in tests`, and `mitigated`.", "type": "string", "nullable": true }, @@ -162880,7 +177621,7 @@ "$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`.", + "description": "The reason for dismissing or closing the alert. Can be one of: `false positive`, `won't fix`, `used in tests`, and `mitigated`.", "nullable": true }, "fixed_at": { @@ -163214,6 +177955,7 @@ "false positive", "won't fix", "used in tests", + "mitigated", null ] }, @@ -173013,7 +187755,7 @@ "$ref": "#/components/schemas/webhooks_repositories_added" }, "repositories_removed": { - "description": "An array of repository objects, which were removed from the installation.", + "description": "An array of repository objects, which were removed from the installation. When `repository_selection` changes from `all` to `selected`, this array is empty.", "type": "array", "items": { "type": "object", @@ -173085,7 +187827,7 @@ "$ref": "#/components/schemas/webhooks_repositories_added" }, "repositories_removed": { - "description": "An array of repository objects, which were removed from the installation.", + "description": "An array of repository objects, which were removed from the installation. When `repository_selection` changes from `all` to `selected`, this array is empty.", "type": "array", "items": { "type": "object", @@ -173521,6 +188263,9 @@ "pin": { "$ref": "#/components/schemas/nullable-pinned-issue-comment" }, + "minimized": { + "$ref": "#/components/schemas/nullable-issue-comment-minimized" + }, "user": { "title": "User", "type": "object", @@ -186883,6 +201628,395 @@ "sender" ] }, + "webhook-issues-field-added": { + "title": "issues field_added event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "field_added" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "$ref": "#/components/schemas/webhooks_issue" + }, + "issue_field": { + "type": "object", + "description": "The issue field whose value was set or updated on the issue.", + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the issue field." + }, + "name": { + "type": "string", + "description": "The name of the issue field." + }, + "field_type": { + "type": "string", + "description": "The data type of the issue field.", + "enum": [ + "text", + "date", + "single_select", + "multi_select", + "number" + ] + } + }, + "required": [ + "id", + "name", + "field_type" + ] + }, + "issue_field_value": { + "type": "object", + "description": "The value that was set or updated for the issue field. When updating an existing value, the previous value is available in `changes`.", + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the issue field value." + }, + "value": { + "description": "The value of the field. Present for text, date, and number field types.", + "nullable": true, + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "integer" + } + ] + }, + "value_id": { + "type": "integer", + "description": "The identifier of the selected option. Present for single_select field types." + }, + "option": { + "type": "object", + "description": "The selected option details. Present for single_select field types.", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "color": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + } + } + }, + "value_ids": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "The identifiers of the selected options. Present for multi_select field types." + }, + "options": { + "type": "array", + "description": "The selected option details. Present for multi_select field types.", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "color": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + } + } + } + } + }, + "required": [ + "id" + ] + }, + "changes": { + "type": "object", + "description": "The previous field value, present when an existing value was updated.", + "properties": { + "issue_field_value": { + "type": "object", + "description": "The previous issue field value data.", + "properties": { + "from": { + "type": "object", + "description": "The previous value of the issue field before the update.", + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the issue field value." + }, + "value": { + "description": "The previous value. Present for text, date, and number field types.", + "nullable": true, + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "integer" + } + ] + }, + "value_id": { + "type": "integer", + "description": "The identifier of the previously selected option. Present for single_select field types." + }, + "option": { + "type": "object", + "description": "The previously selected option details. Present for single_select field types.", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "color": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + } + } + }, + "value_ids": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "The identifiers of the previously selected options. Present for multi_select field types." + }, + "options": { + "type": "array", + "description": "The previously selected option details. Present for multi_select field types.", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "color": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + } + } + } + } + }, + "required": [ + "id" + ] + } + }, + "required": [ + "from" + ] + } + } + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "issue_field", + "repository", + "sender" + ] + }, + "webhook-issues-field-removed": { + "title": "issues field_removed event", + "type": "object", + "properties": { + "action": { + "type": "string", + "enum": [ + "field_removed" + ] + }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, + "installation": { + "$ref": "#/components/schemas/simple-installation" + }, + "issue": { + "$ref": "#/components/schemas/webhooks_issue" + }, + "issue_field": { + "type": "object", + "description": "The issue field whose value was cleared from the issue.", + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the issue field." + }, + "name": { + "type": "string", + "description": "The name of the issue field." + }, + "field_type": { + "type": "string", + "description": "The data type of the issue field.", + "enum": [ + "text", + "date", + "single_select", + "multi_select", + "number" + ] + } + }, + "required": [ + "id", + "name", + "field_type" + ] + }, + "issue_field_value": { + "type": "object", + "description": "The value that was cleared from the issue field.", + "properties": { + "id": { + "type": "integer", + "description": "The unique identifier of the issue field value." + }, + "value": { + "description": "The value of the field. Present for text, date, and number field types.", + "nullable": true, + "anyOf": [ + { + "type": "string" + }, + { + "type": "number" + }, + { + "type": "integer" + } + ] + }, + "value_id": { + "type": "integer", + "description": "The identifier of the selected option. Present for single_select field types." + }, + "option": { + "type": "object", + "description": "The selected option details. Present for single_select field types.", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "color": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + } + } + }, + "value_ids": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "The identifiers of the selected options. Present for multi_select field types." + }, + "options": { + "type": "array", + "description": "The selected option details. Present for multi_select field types.", + "items": { + "type": "object", + "properties": { + "id": { + "type": "integer" + }, + "name": { + "type": "string" + }, + "color": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + } + } + } + } + }, + "required": [ + "id" + ] + }, + "organization": { + "$ref": "#/components/schemas/organization-simple-webhooks" + }, + "repository": { + "$ref": "#/components/schemas/repository-webhooks" + }, + "sender": { + "$ref": "#/components/schemas/simple-user" + } + }, + "required": [ + "action", + "issue", + "issue_field", + "repository", + "sender" + ] + }, "webhook-issues-labeled": { "title": "issues labeled event", "type": "object", @@ -206732,6 +221866,9 @@ "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { "description": "State of this Pull Request. Either `open` or `closed`.", "type": "string", @@ -209773,6 +224910,9 @@ "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { "description": "State of this Pull Request. Either `open` or `closed`.", "type": "string", @@ -212817,6 +227957,9 @@ "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { "description": "State of this Pull Request. Either `open` or `closed`.", "type": "string", @@ -215970,6 +231113,9 @@ "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { "description": "State of this Pull Request. Either `open` or `closed`.", "type": "string", @@ -219106,6 +234252,9 @@ "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { "description": "State of this Pull Request. Either `open` or `closed`.", "type": "string", @@ -222141,6 +237290,9 @@ "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { "description": "State of this Pull Request. Either `open` or `closed`.", "type": "string", @@ -225185,6 +240337,9 @@ "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { "description": "State of this Pull Request. Either `open` or `closed`.", "type": "string", @@ -228605,6 +243760,9 @@ "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { "type": "string", "enum": [ @@ -231493,6 +246651,9 @@ "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { "type": "string", "enum": [ @@ -234388,6 +249549,9 @@ "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { "type": "string", "enum": [ @@ -237287,6 +252451,9 @@ "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { "type": "string", "enum": [ @@ -243329,6 +258496,9 @@ "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { "description": "State of this Pull Request. Either `open` or `closed`.", "type": "string", @@ -246445,6 +261615,9 @@ "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { "description": "State of this Pull Request. Either `open` or `closed`.", "type": "string", @@ -249649,6 +264822,9 @@ "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { "description": "State of this Pull Request. Either `open` or `closed`.", "type": "string", @@ -250302,12 +265478,790 @@ "type": "string", "nullable": true }, - "commit_title": { - "description": "Title for the merge commit message.", - "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 + }, + "pull_request_creation_policy": { + "description": "The policy controlling who can create pull requests: all or collaborators_only.", + "type": "string", + "enum": [ + "all", + "collaborators_only" + ] + }, + "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" }, - "enabled_by": { + "user": { "title": "User", "type": "object", "nullable": true, @@ -250347,7 +266301,8 @@ "format": "uri" }, "id": { - "type": "integer" + "type": "integer", + "format": "int64" }, "login": { "type": "string" @@ -250401,25 +266356,58 @@ "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" + "label", + "ref", + "sha", + "user", + "repo" ] }, - "base": { + "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": { @@ -251082,822 +267070,2045 @@ "visibility" ] }, - "sha": { + "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" + }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, + "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" }, - "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" + "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": [ - "label", - "ref", - "sha", - "user", - "repo" + "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" }, - "body": { + "description": { + "description": "Description of the team", "type": "string", "nullable": true }, - "changed_files": { + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "description": "Unique identifier of the team", "type": "integer" }, - "closed_at": { + "members_url": { "type": "string", + "format": "uri-template" + }, + "name": { + "description": "Name of the team", + "type": "string" + }, + "node_id": { + "type": "string" + }, + "parent": { + "type": "object", "nullable": true, - "format": "date-time" + "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" + ] }, - "comments": { - "type": "integer" + "permission": { + "description": "Permission that the team will have for its repositories", + "type": "string" }, - "comments_url": { + "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" + ] + } + ], + "x-github-breaking-changes": [ + { + "changeset": "remove_use_squash_pr_title_as_default", + "patch": [ + { + "op": "remove", + "path": "/oneOf/0/properties/pull_request/properties/base/properties/repo/properties/use_squash_pr_title_as_default" + }, + { + "op": "remove", + "path": "/oneOf/0/properties/pull_request/properties/head/properties/repo/properties/use_squash_pr_title_as_default" + }, + { + "op": "remove", + "path": "/oneOf/1/properties/pull_request/properties/base/properties/repo/properties/use_squash_pr_title_as_default" + }, + { + "op": "remove", + "path": "/oneOf/1/properties/pull_request/properties/head/properties/repo/properties/use_squash_pr_title_as_default" + } + ], + "version": "2026-03-10" + }, + { + "changeset": "remove_pull_request_merge_commit_sha", + "patch": [ + { + "op": "remove", + "path": "/oneOf/0/properties/pull_request/properties/merge_commit_sha" + }, + { + "op": "remove", + "path": "/oneOf/0/properties/pull_request/required/17" + }, + { + "op": "remove", + "path": "/oneOf/1/properties/pull_request/properties/merge_commit_sha" + }, + { + "op": "remove", + "path": "/oneOf/1/properties/pull_request/required/17" + } + ], + "version": "2026-03-10" + } + ] + }, + "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": { - "type": "integer" + "title": "Link", + "type": "object", + "properties": { + "href": { + "type": "string", + "format": "uri-template" + } + }, + "required": [ + "href" + ] }, - "commits_url": { + "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" }, - "created_at": { + "deleted": { + "type": "boolean" + }, + "email": { "type": "string", - "format": "date-time" + "nullable": true }, - "deletions": { + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { "type": "integer" }, - "diff_url": { + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { "type": "string", "format": "uri" }, - "draft": { - "description": "Indicates whether or not the pull request is a draft.", + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { "type": "boolean" }, - "head": { + "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": { - "label": { + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { + "type": "string", + "nullable": true + }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, + "html_url": { + "type": "string", + "format": "uri" + }, + "id": { + "type": "integer" + }, + "login": { + "type": "string" + }, + "name": { + "type": "string" + }, + "node_id": { + "type": "string" + }, + "organizations_url": { + "type": "string", + "format": "uri" + }, + "received_events_url": { + "type": "string", + "format": "uri" + }, + "repos_url": { + "type": "string", + "format": "uri" + }, + "site_admin": { + "type": "boolean" + }, + "starred_url": { + "type": "string", + "format": "uri-template" + }, + "subscriptions_url": { + "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" }, - "ref": { + "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" }, - "repo": { - "title": "Repository", - "description": "A git repository", + "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 + }, + "pull_request_creation_policy": { + "description": "The policy controlling who can create pull requests: all or collaborators_only.", + "type": "string", + "enum": [ + "all", + "collaborators_only" + ] + }, + "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": { - "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 - }, - "pull_request_creation_policy": { - "description": "The policy controlling who can create pull requests: all or collaborators_only.", - "type": "string", - "enum": [ - "all", - "collaborators_only" - ] - }, - "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": { + "key": { "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": { + "spdx_id": { "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", + "nullable": true, "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", + "key", "name", - "full_name", - "private", - "owner", - "html_url", - "description", - "fork", + "spdx_id", "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" + "node_id" ] }, - "sha": { + "master_branch": { "type": "string" }, - "user": { + "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, @@ -251937,8 +269148,7 @@ "format": "uri" }, "id": { - "type": "integer", - "format": "int64" + "type": "integer" }, "login": { "type": "string" @@ -251992,99 +269202,244 @@ "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": [ - "label", - "ref", - "sha", - "user", - "repo" + "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" ] }, - "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": { + "sha": { "type": "string" }, - "merged": { - "type": "boolean", - "nullable": true - }, - "merged_at": { - "type": "string", - "nullable": true, - "format": "date-time" - }, - "merged_by": { + "user": { "title": "User", "type": "object", "nullable": true, @@ -252124,7 +269479,8 @@ "format": "uri" }, "id": { - "type": "integer" + "type": "integer", + "format": "int64" }, "login": { "type": "string" @@ -252178,26 +269534,380 @@ "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 }, - "milestone": { - "title": "Milestone", - "description": "A collection of related issues and pull requests.", + "ref": { + "type": "string" + }, + "repo": { + "title": "Repository", + "description": "A git repository", "type": "object", "nullable": true, "properties": { - "closed_at": { + "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", - "nullable": true, - "format": "date-time" + "format": "uri-template" }, - "closed_issues": { - "type": "integer" + "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": "date-time" + "format": "uri" }, - "creator": { + "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 + }, + "pull_request_creation_policy": { + "description": "The policy controlling who can create pull requests: all or collaborators_only.", + "type": "string", + "enum": [ + "all", + "collaborators_only" + ] + }, + "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, @@ -252276,8 +269986,7 @@ "enum": [ "Bot", "User", - "Organization", - "Mannequin" + "Organization" ] }, "url": { @@ -252293,47 +270002,128 @@ "id" ] }, - "description": { - "type": "string", - "nullable": true + "permissions": { + "type": "object", + "properties": { + "admin": { + "type": "boolean" + }, + "maintain": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + }, + "push": { + "type": "boolean" + }, + "triage": { + "type": "boolean" + } + }, + "required": [ + "pull", + "push", + "admin" + ] }, - "due_on": { + "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, - "format": "date-time" + "oneOf": [ + { + "type": "integer" + }, + { + "type": "string", + "format": "date-time" + } + ] }, - "html_url": { + "releases_url": { "type": "string", - "format": "uri" + "format": "uri-template" }, - "id": { + "role_name": { + "type": "string", + "nullable": true + }, + "size": { "type": "integer" }, - "labels_url": { + "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", - "format": "uri" + "enum": [ + "PR_BODY", + "COMMIT_MESSAGES", + "BLANK" + ] }, - "node_id": { + "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" }, - "number": { - "description": "The number of the milestone.", + "stargazers": { "type": "integer" }, - "open_issues": { + "stargazers_count": { "type": "integer" }, - "state": { - "description": "The state of the milestone.", + "stargazers_url": { "type": "string", - "enum": [ - "open", - "closed" - ] + "format": "uri" }, - "title": { - "description": "The title of the milestone.", - "type": "string" + "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", @@ -252342,440 +270132,112 @@ "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" + "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" ] }, - "statuses_url": { - "type": "string", - "format": "uri" - }, - "title": { - "description": "The title of the pull request.", + "sha": { "type": "string" }, - "updated_at": { - "type": "string", - "format": "date-time" - }, - "url": { - "type": "string", - "format": "uri" - }, "user": { "title": "User", "type": "object", @@ -252856,8 +270318,7 @@ "enum": [ "Bot", "User", - "Organization", - "Mannequin" + "Organization" ] }, "url": { @@ -252875,391 +270336,679 @@ } }, "required": [ - "url", - "id", - "node_id", - "html_url", - "diff_url", - "patch_url", - "issue_url", - "number", - "state", - "locked", - "title", + "label", + "ref", + "sha", "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" + "repo" ] }, - "repository": { - "$ref": "#/components/schemas/repository-webhooks" + "html_url": { + "type": "string", + "format": "uri" }, - "requested_team": { - "title": "Team", - "description": "Groups of organization members that gives permissions on specified repositories.", + "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": { - "deleted": { - "type": "boolean" - }, - "description": { - "description": "Description of the team", - "type": "string", - "nullable": true - }, - "html_url": { + "closed_at": { "type": "string", - "format": "uri" + "nullable": true, + "format": "date-time" }, - "id": { - "description": "Unique identifier of the team", + "closed_issues": { "type": "integer" }, - "members_url": { + "created_at": { "type": "string", - "format": "uri-template" - }, - "name": { - "description": "Name of the team", - "type": "string" - }, - "node_id": { - "type": "string" + "format": "date-time" }, - "parent": { + "creator": { + "title": "User", "type": "object", "nullable": true, "properties": { - "description": { - "description": "Description of the team", + "avatar_url": { + "type": "string", + "format": "uri" + }, + "deleted": { + "type": "boolean" + }, + "email": { "type": "string", "nullable": true }, + "events_url": { + "type": "string", + "format": "uri-template" + }, + "followers_url": { + "type": "string", + "format": "uri" + }, + "following_url": { + "type": "string", + "format": "uri-template" + }, + "gists_url": { + "type": "string", + "format": "uri-template" + }, + "gravatar_id": { + "type": "string" + }, "html_url": { "type": "string", "format": "uri" }, "id": { - "description": "Unique identifier of the team", "type": "integer" }, - "members_url": { - "type": "string", - "format": "uri-template" + "login": { + "type": "string" }, "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" + "organizations_url": { + "type": "string", + "format": "uri" }, - "privacy": { + "received_events_url": { "type": "string", - "enum": [ - "open", - "closed", - "secret" - ] + "format": "uri" }, - "repositories_url": { + "repos_url": { "type": "string", "format": "uri" }, - "slug": { - "type": "string" + "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": { - "description": "URL for the team", "type": "string", "format": "uri" + }, + "user_view_type": { + "type": "string" } }, "required": [ - "name", - "id", - "node_id", - "slug", - "description", - "privacy", - "url", - "html_url", - "members_url", - "repositories_url", - "permission" + "login", + "id" ] }, - "permission": { - "description": "Permission that the team will have for its repositories", + "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" }, - "privacy": { + "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", - "secret" + "closed" ] }, - "repositories_url": { - "type": "string", - "format": "uri" - }, - "slug": { + "title": { + "description": "The title of the milestone.", "type": "string" }, + "updated_at": { + "type": "string", + "format": "date-time" + }, "url": { - "description": "URL for the team", "type": "string", "format": "uri" } }, "required": [ - "name", - "id" + "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" ] }, - "sender": { - "$ref": "#/components/schemas/simple-user" - } - }, - "required": [ - "requested_team", - "action", - "number", - "pull_request", - "repository", - "sender" - ] - } - ], - "x-github-breaking-changes": [ - { - "changeset": "remove_use_squash_pr_title_as_default", - "patch": [ - { - "op": "remove", - "path": "/oneOf/0/properties/pull_request/properties/base/properties/repo/properties/use_squash_pr_title_as_default" - }, - { - "op": "remove", - "path": "/oneOf/0/properties/pull_request/properties/head/properties/repo/properties/use_squash_pr_title_as_default" - }, - { - "op": "remove", - "path": "/oneOf/1/properties/pull_request/properties/base/properties/repo/properties/use_squash_pr_title_as_default" + "node_id": { + "type": "string" }, - { - "op": "remove", - "path": "/oneOf/1/properties/pull_request/properties/head/properties/repo/properties/use_squash_pr_title_as_default" - } - ], - "version": "2026-03-10" - }, - { - "changeset": "remove_pull_request_merge_commit_sha", - "patch": [ - { - "op": "remove", - "path": "/oneOf/0/properties/pull_request/properties/merge_commit_sha" + "number": { + "type": "integer" }, - { - "op": "remove", - "path": "/oneOf/0/properties/pull_request/required/17" + "patch_url": { + "type": "string", + "format": "uri" }, - { - "op": "remove", - "path": "/oneOf/1/properties/pull_request/properties/merge_commit_sha" + "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" + ] + } + ] + } }, - { - "op": "remove", - "path": "/oneOf/1/properties/pull_request/required/17" - } - ], - "version": "2026-03-10" - } - ] - }, - "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" - } + "requested_teams": { + "type": "array", + "items": { + "title": "Team", + "description": "Groups of organization members that gives permissions on specified repositories.", + "type": "object", + "properties": { + "deleted": { + "type": "boolean" }, - "required": [ - "href" - ] - }, - "commits": { - "title": "Link", - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template" - } + "description": { + "description": "Description of the team", + "type": "string", + "nullable": true }, - "required": [ - "href" - ] - }, - "html": { - "title": "Link", - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template" - } + "html_url": { + "type": "string", + "format": "uri" }, - "required": [ - "href" - ] - }, - "issue": { - "title": "Link", - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template" - } + "id": { + "description": "Unique identifier of the team", + "type": "integer" }, - "required": [ - "href" - ] - }, - "review_comment": { - "title": "Link", - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template" - } + "members_url": { + "type": "string", + "format": "uri-template" }, - "required": [ - "href" - ] - }, - "review_comments": { - "title": "Link", - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template" - } + "name": { + "description": "Name of the team", + "type": "string" }, - "required": [ - "href" - ] - }, - "self": { - "title": "Link", - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template" - } + "node_id": { + "type": "string" }, - "required": [ - "href" - ] - }, - "statuses": { - "title": "Link", - "type": "object", - "properties": { - "href": { - "type": "string", - "format": "uri-template" - } + "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" + ] }, - "required": [ - "href" - ] - } - }, - "required": [ - "self", - "html", - "issue", - "comments", - "review_comments", - "review_comment", - "commits", - "statuses" - ] + "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" + ] + } }, - "active_lock_reason": { + "review_comment_url": { + "type": "string", + "format": "uri-template" + }, + "review_comments_url": { + "type": "string", + "format": "uri" + }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, + "state": { "type": "string", - "nullable": true, "enum": [ - "resolved", - "off-topic", - "too heated", - "spam", - null + "open", + "closed" ] }, - "assignee": { + "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, @@ -253299,7 +271048,8 @@ "format": "uri" }, "id": { - "type": "integer" + "type": "integer", + "format": "int64" }, "login": { "type": "string" @@ -253354,6 +271104,342 @@ "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" + ], + "x-github-breaking-changes": [ + { + "changeset": "remove_use_squash_pr_title_as_default", + "patch": [ + { + "op": "remove", + "path": "/properties/pull_request/properties/base/properties/repo/properties/use_squash_pr_title_as_default" + }, + { + "op": "remove", + "path": "/properties/pull_request/properties/head/properties/repo/properties/use_squash_pr_title_as_default" + } + ], + "version": "2026-03-10" + }, + { + "changeset": "remove_pull_request_merge_commit_sha", + "patch": [ + { + "op": "remove", + "path": "/properties/pull_request/properties/merge_commit_sha" + }, + { + "op": "remove", + "path": "/properties/pull_request/required/17" + } + ], + "version": "2026-03-10" + } + ] + }, + "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", @@ -253436,8 +271522,7 @@ "enum": [ "Bot", "User", - "Organization", - "Mannequin" + "Organization" ] }, "url": { @@ -253879,23 +271964,6 @@ "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" @@ -254083,23 +272151,6 @@ "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" }, @@ -254155,11 +272206,6 @@ "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": [ @@ -254678,23 +272724,6 @@ "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" @@ -254882,23 +272911,6 @@ "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" }, @@ -254954,11 +272966,6 @@ "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": [ @@ -255327,8 +273334,7 @@ "enum": [ "Bot", "User", - "Organization", - "Mannequin" + "Organization" ] }, "url": { @@ -255805,6 +273811,9 @@ "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { "type": "string", "enum": [ @@ -255966,35 +273975,397 @@ "repository": { "$ref": "#/components/schemas/repository-webhooks" }, - "review": { - "$ref": "#/components/schemas/webhooks_review" - }, "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", - "review", + "thread", "pull_request", - "repository", - "sender" + "repository" ], "x-github-breaking-changes": [ - { - "changeset": "remove_use_squash_pr_title_as_default", - "patch": [ - { - "op": "remove", - "path": "/properties/pull_request/properties/base/properties/repo/properties/use_squash_pr_title_as_default" - }, - { - "op": "remove", - "path": "/properties/pull_request/properties/head/properties/repo/properties/use_squash_pr_title_as_default" - } - ], - "version": "2026-03-10" - }, { "changeset": "remove_pull_request_merge_commit_sha", "patch": [ @@ -256011,14 +274382,14 @@ } ] }, - "webhook-pull-request-review-thread-resolved": { - "title": "pull_request_review_thread resolved event", + "webhook-pull-request-review-thread-unresolved": { + "title": "pull_request_review_thread unresolved event", "type": "object", "properties": { "action": { "type": "string", "enum": [ - "resolved" + "unresolved" ] }, "enterprise": { @@ -256382,8 +274753,7 @@ }, "commit_title": { "description": "Title for the merge commit message.", - "type": "string", - "nullable": true + "type": "string" }, "enabled_by": { "title": "User", @@ -257259,8 +275629,7 @@ "type": "object", "properties": { "label": { - "type": "string", - "nullable": true + "type": "string" }, "ref": { "type": "string" @@ -257269,7 +275638,6 @@ "title": "Repository", "description": "A git repository", "type": "object", - "nullable": true, "properties": { "allow_auto_merge": { "description": "Whether to allow auto-merge for pull requests.", @@ -258331,8 +276699,7 @@ "enum": [ "Bot", "User", - "Organization", - "Mannequin" + "Organization" ] }, "url": { @@ -258474,16 +276841,7 @@ }, "required": [ "name", - "id", - "node_id", - "slug", - "description", - "privacy", - "url", - "html_url", - "members_url", - "repositories_url", - "permission" + "id" ] } ] @@ -258629,6 +276987,9 @@ "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { "type": "string", "enum": [ @@ -258730,8 +277091,7 @@ "enum": [ "Bot", "User", - "Organization", - "Mannequin" + "Organization" ] }, "url": { @@ -258911,8 +277271,7 @@ }, "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 + "type": "integer" }, "original_position": { "description": "The index of the original line in the diff to which the comment applies.", @@ -259112,8 +277471,7 @@ "enum": [ "Bot", "User", - "Organization", - "Mannequin" + "Organization" ] }, "url": { @@ -259197,14 +277555,14 @@ } ] }, - "webhook-pull-request-review-thread-unresolved": { - "title": "pull_request_review_thread unresolved event", + "webhook-pull-request-stacked": { + "title": "pull_request stacked event", "type": "object", "properties": { "action": { "type": "string", "enum": [ - "unresolved" + "stacked" ] }, "enterprise": { @@ -259213,11 +277571,17 @@ "installation": { "$ref": "#/components/schemas/simple-installation" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, + "number": { + "$ref": "#/components/schemas/webhooks_number" + }, "organization": { "$ref": "#/components/schemas/organization-simple-webhooks" }, "pull_request": { - "title": "Simple Pull Request", + "title": "Pull Request", "type": "object", "properties": { "_links": { @@ -259350,6 +277714,9 @@ null ] }, + "additions": { + "type": "integer" + }, "assignee": { "title": "User", "type": "object", @@ -259429,7 +277796,8 @@ "enum": [ "Bot", "User", - "Organization" + "Organization", + "Mannequin" ] }, "url": { @@ -259526,7 +277894,8 @@ "enum": [ "Bot", "User", - "Organization" + "Organization", + "Mannequin" ] }, "url": { @@ -259568,7 +277937,8 @@ }, "commit_title": { "description": "Title for the merge commit message.", - "type": "string" + "type": "string", + "nullable": true }, "enabled_by": { "title": "User", @@ -259967,6 +278337,23 @@ "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" @@ -260154,6 +278541,23 @@ "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" }, @@ -260209,6 +278613,11 @@ "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": [ @@ -260418,33 +278827,49 @@ "type": "string", "nullable": true }, + "changed_files": { + "type": "integer" + }, "closed_at": { "type": "string", - "nullable": true + "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" + "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" + "type": "string", + "nullable": true }, "ref": { "type": "string" @@ -260453,6 +278878,7 @@ "title": "Repository", "description": "A git repository", "type": "object", + "nullable": true, "properties": { "allow_auto_merge": { "description": "Whether to allow auto-merge for pull requests.", @@ -260725,6 +279151,23 @@ "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" @@ -260912,6 +279355,23 @@ "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" }, @@ -260967,6 +279427,11 @@ "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": [ @@ -261230,13 +279695,125 @@ "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 + "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", @@ -261335,7 +279912,8 @@ "enum": [ "Bot", "User", - "Organization" + "Organization", + "Mannequin" ] }, "url": { @@ -261425,12 +280003,17 @@ "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": { @@ -261514,7 +280097,8 @@ "enum": [ "Bot", "User", - "Organization" + "Organization", + "Mannequin" ] }, "url": { @@ -261656,7 +280240,16 @@ }, "required": [ "name", - "id" + "id", + "node_id", + "slug", + "description", + "privacy", + "url", + "html_url", + "members_url", + "repositories_url", + "permission" ] } ] @@ -261798,11 +280391,18 @@ "type": "string", "format": "uri-template" }, + "review_comments": { + "type": "integer" + }, "review_comments_url": { "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { + "description": "State of this Pull Request. Either `open` or `closed`.", "type": "string", "enum": [ "open", @@ -261814,10 +280414,12 @@ "format": "uri" }, "title": { + "description": "The title of the pull request.", "type": "string" }, "updated_at": { - "type": "string" + "type": "string", + "format": "date-time" }, "url": { "type": "string", @@ -261903,7 +280505,8 @@ "enum": [ "Bot", "User", - "Organization" + "Organization", + "Mannequin" ] }, "url": { @@ -261945,7 +280548,6 @@ "requested_teams", "labels", "milestone", - "draft", "commits_url", "review_comments_url", "review_comment_url", @@ -261956,7 +280558,8 @@ "_links", "author_association", "auto_merge", - "active_lock_reason" + "active_lock_reason", + "draft" ] }, "repository": { @@ -261964,393 +280567,30 @@ }, "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", + "number", "pull_request", - "repository" + "repository", + "sender" ], "x-github-breaking-changes": [ + { + "changeset": "remove_use_squash_pr_title_as_default", + "patch": [ + { + "op": "remove", + "path": "/properties/pull_request/properties/base/properties/repo/properties/use_squash_pr_title_as_default" + }, + { + "op": "remove", + "path": "/properties/pull_request/properties/head/properties/repo/properties/use_squash_pr_title_as_default" + } + ], + "version": "2026-03-10" + }, { "changeset": "remove_pull_request_merge_commit_sha", "patch": [ @@ -265210,6 +283450,9 @@ "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { "description": "State of this Pull Request. Either `open` or `closed`.", "type": "string", @@ -268262,6 +286505,9 @@ "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { "description": "State of this Pull Request. Either `open` or `closed`.", "type": "string", @@ -271309,6 +289555,9 @@ "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { "description": "State of this Pull Request. Either `open` or `closed`.", "type": "string", @@ -274339,6 +292588,9 @@ "type": "string", "format": "uri" }, + "stack": { + "$ref": "#/components/schemas/pull-request-stack" + }, "state": { "description": "State of this Pull Request. Either `open` or `closed`.", "type": "string", @@ -278716,18 +296968,257 @@ "sender" ] }, - "webhook-repository-vulnerability-alert-reopen": { - "title": "repository_vulnerability_alert reopen event", + "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": [ - "reopen" + "assigned" ] }, "alert": { - "$ref": "#/components/schemas/webhooks_alert" + "$ref": "#/components/schemas/secret-scanning-alert-webhook" + }, + "assignee": { + "$ref": "#/components/schemas/simple-user" }, "enterprise": { "$ref": "#/components/schemas/enterprise-webhooks" @@ -278748,186 +297239,21 @@ "required": [ "action", "alert", - "repository", - "sender" + "repository" ] }, - "webhook-repository-vulnerability-alert-resolve": { - "title": "repository_vulnerability_alert resolve event", + "webhook-secret-scanning-alert-created": { + "title": "secret_scanning_alert created event", "type": "object", "properties": { "action": { "type": "string", "enum": [ - "resolve" + "created" ] }, "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" - ] - } - } + "$ref": "#/components/schemas/secret-scanning-alert-webhook" }, "enterprise": { "$ref": "#/components/schemas/enterprise-webhooks" @@ -278948,32 +297274,28 @@ "required": [ "action", "alert", - "repository", - "sender" + "repository" ] }, - "webhook-secret-scanning-alert-assigned": { - "title": "secret_scanning_alert assigned event", + "webhook-secret-scanning-alert-location-created": { + "title": "Secret Scanning Alert Location Created Event", "type": "object", "properties": { "action": { "type": "string", "enum": [ - "assigned" + "created" ] }, "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" }, + "location": { + "$ref": "#/components/schemas/secret-scanning-location" + }, "organization": { "$ref": "#/components/schemas/organization-simple-webhooks" }, @@ -278985,19 +297307,33 @@ } }, "required": [ - "action", + "location", "alert", - "repository" + "repository", + "sender" ] }, - "webhook-secret-scanning-alert-created": { - "title": "secret_scanning_alert created event", + "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-metadata-created": { + "title": "secret_scanning_alert metadata created event", "type": "object", "properties": { "action": { "type": "string", "enum": [ - "created" + "metadata_created" ] }, "alert": { @@ -279025,25 +297361,25 @@ "repository" ] }, - "webhook-secret-scanning-alert-location-created": { - "title": "Secret Scanning Alert Location Created Event", + "webhook-secret-scanning-alert-metadata-removed": { + "title": "secret_scanning_alert metadata removed event", "type": "object", "properties": { "action": { "type": "string", "enum": [ - "created" + "metadata_removed" ] }, "alert": { "$ref": "#/components/schemas/secret-scanning-alert-webhook" }, + "enterprise": { + "$ref": "#/components/schemas/enterprise-webhooks" + }, "installation": { "$ref": "#/components/schemas/simple-installation" }, - "location": { - "$ref": "#/components/schemas/secret-scanning-location" - }, "organization": { "$ref": "#/components/schemas/organization-simple-webhooks" }, @@ -279055,23 +297391,9 @@ } }, "required": [ - "location", + "action", "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" + "repository" ] }, "webhook-secret-scanning-alert-publicly-leaked": { @@ -280545,11 +298867,10 @@ }, "required": [ "action", - "parent_issue_id", - "parent_issue", - "parent_issue_repo", "sub_issue_id", - "sub_issue" + "sub_issue", + "repository", + "sender" ] }, "webhook-sub-issues-parent-issue-removed": { @@ -280594,11 +298915,10 @@ }, "required": [ "action", - "parent_issue_id", - "parent_issue", - "parent_issue_repo", "sub_issue_id", - "sub_issue" + "sub_issue", + "repository", + "sender" ] }, "webhook-sub-issues-sub-issue-added": { @@ -280643,11 +298963,10 @@ }, "required": [ "action", - "sub_issue_id", - "sub_issue", - "sub_issue_repo", "parent_issue_id", - "parent_issue" + "parent_issue", + "repository", + "sender" ] }, "webhook-sub-issues-sub-issue-removed": { @@ -280692,11 +299011,10 @@ }, "required": [ "action", - "sub_issue_id", - "sub_issue", - "sub_issue_repo", "parent_issue_id", - "parent_issue" + "parent_issue", + "repository", + "sender" ] }, "webhook-team-add": { @@ -290108,7 +308426,19 @@ "type": "analyst" } ] - } + }, + "x-github-breaking-changes": [ + { + "changeset": "deprecate_cvss", + "patch": [ + { + "op": "remove", + "path": "/value/cvss" + } + ], + "version": "2026-03-10" + } + ] }, "integration": { "value": { @@ -290589,7 +308919,7 @@ "token_last_eight": "Ae178B4a", "hashed_token": "25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8", "app": { - "url": "http://my-github-app.com", + "url": "https://example.com", "name": "my github app", "client_id": "Iv1.8a61f9b3a7aba766" }, @@ -290630,7 +308960,7 @@ "token_last_eight": "Ae178B4a", "hashed_token": "25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8", "app": { - "url": "http://my-github-app.com", + "url": "https://example.com", "name": "my github app", "client_id": "Iv1.8a61f9b3a7aba766" }, @@ -293068,8 +311398,8 @@ "copilot-usage-metrics-1-day-report": { "value": { "download_links": [ - "https://example.com/copilot-usage-report-1.json", - "https://example.com/copilot-usage-report-2.json" + "https://example.com/copilot-usage-report-1.ndjson", + "https://example.com/copilot-usage-report-2.ndjson" ], "report_day": "2025-07-01" } @@ -293077,8 +311407,8 @@ "copilot-usage-metrics-28-day-report": { "value": { "download_links": [ - "https://example.com/copilot-usage-report-1.json", - "https://example.com/copilot-usage-report-2.json" + "https://example.com/copilot-usage-report-1.ndjson", + "https://example.com/copilot-usage-report-2.ndjson" ], "report_start_day": "2025-07-01", "report_end_day": "2025-07-28" @@ -293095,7 +311425,8 @@ "name": "django" }, "manifest_path": "path/to/requirements.txt", - "scope": "runtime" + "scope": "runtime", + "relationship": "direct" }, "security_advisory": { "ghsa_id": "GHSA-rf4j-j272-fj86", @@ -293320,7 +311651,8 @@ "name": "ansible" }, "manifest_path": "path/to/requirements.txt", - "scope": "runtime" + "scope": "runtime", + "relationship": "direct" }, "security_advisory": { "ghsa_id": "GHSA-8f4m-hccc-8qph", @@ -293499,6 +311831,84 @@ } ] }, + "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" + } + ] + } + }, "enterprise-teams-items": { "value": [ { @@ -294201,7 +312611,18 @@ "site_admin": false }, "truncated": false - } + }, + "x-github-breaking-changes": [ + { + "changeset": "deprecate_beta_media_type", + "patch": { + "value": { + "user": null + } + }, + "version": "2026-03-10" + } + ] }, "gitignore-template": { "value": { @@ -294329,7 +312750,11 @@ }, "forks": 1, "open_issues": 1, - "watchers": 1 + "watchers": 1, + "custom_properties": { + "environment": "production", + "service": "web" + } } ] } @@ -294869,6 +313294,9 @@ "copilot": [ "192.0.2.1" ], + "commit_signing_keys": [ + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + ], "domains": { "website": [ "*.example.com" @@ -295129,80 +313557,25 @@ "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": { + "billing-ai-credit-usage-report-org": { "value": { - "default_level": "public", - "accessible_repositories": [ + "timePeriod": { + "year": 2025 + }, + "organization": "GitHub", + "usageItems": [ { - "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" + "product": "Copilot", + "sku": "Copilot AI Credits", + "model": "GPT-5", + "unitType": "credits", + "pricePerUnit": 0.01, + "grossQuantity": 100, + "grossAmount": 1.0, + "discountQuantity": 0, + "discountAmount": 0.0, + "netQuantity": 100, + "netAmount": 1.0 } ] } @@ -295262,6 +313635,71 @@ "total_count": 3 } }, + "get_all_budgets_with_user_filter": { + "value": { + "budgets": [ + { + "id": "2066deda-923f-43f9-88d2-62395a28c0cdd", + "budget_type": "ProductPricing", + "budget_product_skus": [ + "actions" + ], + "budget_scope": "multi_user_customer", + "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": "BundlePricing", + "budget_product_skus": [ + "ai_credits" + ], + "budget_scope": "user", + "budget_amount": 500.0, + "prevent_further_usage": true, + "budget_alerting": { + "will_alert": true, + "alert_recipients": [ + "org-owner" + ] + } + } + ], + "user": "octocat", + "effective_budget": { + "id": "9a7d04e8-6600-44f5-94ef-65ca92b95f0b", + "budget_amount": 1000, + "consumed_amount": 42.0 + }, + "has_next_page": false, + "total_count": 2 + } + }, + "create-budget": { + "value": { + "message": "Budget successfully created.", + "budget": { + "id": "f5236c62-157f-4d8f-a79e-ffb91058ee97", + "budget_type": "ProductPricing", + "budget_product_sku": "actions", + "budget_scope": "organization", + "budget_entity_name": "example-organization", + "budget_amount": 100, + "prevent_further_usage": true, + "budget_alerting": { + "will_alert": false, + "alert_recipients": [] + } + } + } + }, "get-budget": { "value": { "id": "2066deda-923f-43f9-88d2-62395a28c0cdd", @@ -295289,7 +313727,7 @@ "budget_product_sku": "actions_linux", "budget_scope": "repository", "budget_entity_name": "org-name/example-repo-name", - "budget_amount": 0.0, + "budget_amount": 10, "prevent_further_usage": true, "budget_alerting": { "will_alert": true, @@ -296151,6 +314589,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -296176,6 +314615,7 @@ "status": "offline", "busy": false, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -296290,6 +314730,7 @@ "status": "online", "busy": true, "ephemeral": false, + "version": "2.323.0", "labels": [ { "id": 5, @@ -296705,126 +315146,14 @@ "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 + "repository_id": 1, + "bundle_url": "https://tmastaging.blob.core.windows.net/attestations/1/2024/11/08/4.json.sn?se=2024-11-09T17%3A13%3A43Z&sig=jPSbbJnIEshUyCjBLU5Ykq0uuGc5UYxTZE1%2FhdBNMXk%3D&sp=r&spr=https%2Chttp&sr=b&st=2024-11-08T17%3A13%3A43Z&sv=2024-08-04", + "initiator": "user" }, { - "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 + "repository_id": 1, + "bundle_url": "https://tmastaging.blob.core.windows.net/attestations/1/2024/11/08/5.json.sn?se=2024-11-09T17%3A13%3A43Z&sig=jPSbbJnIEshUyCjBLU5Ykq0uuGc5UYxTZE1%2FhdBNMXk%3D&sp=r&spr=https%2Chttp&sr=b&st=2024-11-08T17%3A13%3A43Z&sv=2024-08-04", + "initiator": "user" } ] } @@ -297755,6 +316084,201 @@ "visibility": "all" } }, + "copilot-spaces-organization-list": { + "summary": "Example response for listing organization copilot spaces", + "value": { + "spaces": [ + { + "id": 84, + "number": 3, + "name": "Team Planning Space", + "description": "Organization space for team planning and coordination", + "owner": { + "login": "octo-org", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "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", + "gravatar_id": "", + "name": "octo-org", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "twitter_username": "octo-org", + "html_url": "https://github.com/octo-org", + "created_at": "2008-01-14T04:33:35Z", + "updated_at": "2017-08-17T12:37:15Z", + "type": "Organization" + }, + "creator": { + "login": "defunkt", + "id": 2, + "node_id": "MDQ6VXNlcjI=", + "avatar_url": "https://github.com/images/error/defunkt_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/defunkt", + "html_url": "https://github.com/defunkt", + "followers_url": "https://api.github.com/users/defunkt/followers", + "following_url": "https://api.github.com/users/defunkt/following{/other_user}", + "gists_url": "https://api.github.com/users/defunkt/gists{/gist_id}", + "starred_url": "https://api.github.com/users/defunkt/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/defunkt/subscriptions", + "organizations_url": "https://api.github.com/users/defunkt/orgs", + "repos_url": "https://api.github.com/users/defunkt/repos", + "events_url": "https://api.github.com/users/defunkt/events{/privacy}", + "received_events_url": "https://api.github.com/users/defunkt/received_events", + "type": "User", + "site_admin": true + }, + "created_at": "2023-02-15T08:30:00Z", + "updated_at": "2023-02-15T14:45:00Z", + "html_url": "https://github.com/copilot/spaces/octo-org/3", + "api_url": "https://api.github.com/organizations/1/copilot-spaces/3" + }, + { + "id": 85, + "number": 4, + "name": "Development Resources", + "description": "Shared development documentation and resources", + "owner": { + "login": "octo-org", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "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", + "gravatar_id": "", + "name": "octo-org", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "twitter_username": "octo-org", + "html_url": "https://github.com/octo-org", + "created_at": "2008-01-14T04:33:35Z", + "updated_at": "2017-08-17T12:37:15Z", + "type": "Organization" + }, + "creator": { + "login": "octocat", + "id": 3, + "node_id": "MDQ6VXNlcjM=", + "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": "2023-02-16T10:15:00Z", + "updated_at": "2023-02-16T16:30:00Z", + "html_url": "https://github.com/copilot/spaces/octo-org/4", + "api_url": "https://api.github.com/organizations/1/copilot-spaces/4" + } + ] + } + }, + "copilot-space-organization": { + "summary": "Example response for an organization copilot space", + "value": { + "id": 84, + "number": 3, + "name": "Team Planning Space", + "description": "Organization space for team planning and coordination", + "general_instructions": "Help the team with agile planning, sprint coordination, and project management best practices", + "owner": { + "login": "octo-org", + "id": 1, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjE=", + "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", + "gravatar_id": "", + "name": "octo-org", + "company": "GitHub", + "blog": "https://github.com/blog", + "location": "San Francisco", + "email": "octocat@github.com", + "twitter_username": "octo-org", + "html_url": "https://github.com/octo-org", + "created_at": "2008-01-14T04:33:35Z", + "updated_at": "2017-08-17T12:37:15Z", + "type": "Organization" + }, + "creator": { + "login": "defunkt", + "id": 2, + "node_id": "MDQ6VXNlcjI=", + "avatar_url": "https://github.com/images/error/defunkt_happy.gif", + "gravatar_id": "", + "url": "https://api.github.com/users/defunkt", + "html_url": "https://github.com/defunkt", + "followers_url": "https://api.github.com/users/defunkt/followers", + "following_url": "https://api.github.com/users/defunkt/following{/other_user}", + "gists_url": "https://api.github.com/users/defunkt/gists{/gist_id}", + "starred_url": "https://api.github.com/users/defunkt/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/defunkt/subscriptions", + "organizations_url": "https://api.github.com/users/defunkt/orgs", + "repos_url": "https://api.github.com/users/defunkt/repos", + "events_url": "https://api.github.com/users/defunkt/events{/privacy}", + "received_events_url": "https://api.github.com/users/defunkt/received_events", + "type": "User", + "site_admin": true + }, + "created_at": "2023-02-15T08:30:00Z", + "updated_at": "2023-02-15T14:45:00Z", + "html_url": "https://github.com/copilot/spaces/octo-org/3", + "api_url": "https://api.github.com/organizations/1/copilot-spaces/3", + "base_role": "no_access", + "resources_attributes": [ + { + "id": 123, + "resource_type": "github_file", + "metadata": { + "repository_id": 456, + "file_path": "docs/planning.md" + } + }, + { + "id": 124, + "resource_type": "free_text", + "metadata": { + "name": "Team Guidelines", + "text": "Our team follows agile methodology" + } + } + ] + } + }, "copilot-organization-details": { "value": { "seat_breakdown": { @@ -297859,161 +316383,6 @@ ] } }, - "copilot-usage-metrics-for-day": { - "value": [ - { - "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, @@ -298573,6 +316942,32 @@ ], "created_at": "2024-12-11T14:39:09Z", "updated_at": "2024-12-11T14:39:09Z" + }, + { + "id": 3, + "node_id": "IFMS_kwDNAd3NAZt", + "name": "Categories", + "description": "Issue categories", + "data_type": "multi_select", + "options": [ + { + "id": 4, + "name": "Frontend", + "color": "blue" + }, + { + "id": 5, + "name": "Backend", + "color": "green" + }, + { + "id": 6, + "name": "Infrastructure", + "color": "purple" + } + ], + "created_at": "2024-12-11T14:39:09Z", + "updated_at": "2024-12-11T14:39:09Z" } ] }, @@ -300161,22 +318556,16 @@ "name": "Sprint", "data_type": "iteration", "iteration_configuration": { - "start_day": 1, + "start_date": "2022-07-01", "duration": 14, "iterations": [ { - "title": { - "raw": "Sprint 1", - "html": "Sprint 1" - }, + "title": "Sprint 1", "start_date": "2022-07-01", "duration": 14 }, { - "title": { - "raw": "Sprint 2", - "html": "Sprint 2" - }, + "title": "Sprint 2", "start_date": "2022-07-15", "duration": 14 } @@ -301637,130 +320026,142 @@ "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" + }, + "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 + } + }, + "x-github-breaking-changes": [ + { + "changeset": "remove_has_downloads", + "patch": [ + { + "op": "remove", + "path": "/value/has_downloads" + } ], - "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 + "version": "2026-03-10" } - } + ] }, "org-ruleset-items": { "value": [ @@ -302204,6 +320605,147 @@ } ] }, + "secret-scanning-custom-pattern-list": { + "value": [ + { + "id": 1, + "name": "Example Custom Pattern", + "pattern": "[a-z]+_token_[0-9]+", + "slug": "example-custom-pattern", + "state": "published", + "push_protection_enabled": true, + "start_delimiter": null, + "end_delimiter": null, + "must_match": null, + "must_not_match": null, + "created_at": "2024-01-15T10:30:00Z", + "updated_at": "2024-01-15T10:30:00Z" + }, + { + "id": 2, + "name": "Another Custom Pattern", + "pattern": "prefix_[a-zA-Z0-9]{32}", + "slug": "another-custom-pattern", + "state": "published", + "push_protection_enabled": false, + "start_delimiter": "\\b", + "end_delimiter": "\\b", + "must_match": [ + "^prefix_prod" + ], + "must_not_match": [ + "test" + ], + "created_at": "2024-01-16T14:20:00Z", + "updated_at": "2024-01-17T09:15:00Z" + } + ] + }, + "secret-scanning-custom-pattern-bulk-create-request": { + "value": { + "patterns": [ + { + "name": "Example Custom Pattern", + "pattern": "[a-z]+_token_[0-9]+" + }, + { + "name": "Another Custom Pattern", + "pattern": "prefix_[a-zA-Z0-9]{32}", + "start_delimiter": "\\b", + "end_delimiter": "\\b", + "must_match": [ + "^prefix_prod" + ], + "must_not_match": [ + "test" + ] + } + ] + } + }, + "secret-scanning-custom-pattern-bulk-create-response": { + "value": { + "created_patterns": [ + { + "id": 1, + "name": "Example Custom Pattern", + "pattern": "[a-z]+_token_[0-9]+", + "slug": "example-custom-pattern", + "state": "unpublished", + "push_protection_enabled": false, + "start_delimiter": null, + "end_delimiter": null, + "must_match": null, + "must_not_match": null, + "created_at": "2024-01-15T10:30:00Z", + "updated_at": "2024-01-15T10:30:00Z" + }, + { + "id": 2, + "name": "Another Custom Pattern", + "pattern": "prefix_[a-zA-Z0-9]{32}", + "slug": "another-custom-pattern", + "state": "unpublished", + "push_protection_enabled": false, + "start_delimiter": "\\b", + "end_delimiter": "\\b", + "must_match": [ + "^prefix_prod" + ], + "must_not_match": [ + "test" + ], + "created_at": "2024-01-15T10:30:00Z", + "updated_at": "2024-01-15T10:30:00Z" + } + ] + } + }, + "secret-scanning-custom-pattern-bulk-delete-request": { + "value": { + "patterns": [ + { + "pattern_id": 2, + "custom_pattern_version": "0ujsswThIGTUYm2K8FjOOfXtY1K" + } + ] + } + }, + "secret-scanning-custom-pattern-update-request": { + "value": { + "pattern": "updated_secret_[0-9A-Z]{16}", + "start_delimiter": "[^0-9A-Za-z]", + "end_delimiter": "[^0-9A-Za-z]", + "must_match": [ + "updated_secret_[0-9]{2}*" + ], + "must_not_match": [ + "updated_secret_1234567890ABCDEF" + ], + "custom_pattern_version": "0ujsswThIGTUYm2K8FjOOfXtY1K" + } + }, + "secret-scanning-custom-pattern": { + "value": { + "id": 1, + "name": "Example Custom Pattern", + "pattern": "updated_secret_[0-9A-Z]{16}", + "slug": "example_custom_pattern", + "state": "published", + "push_protection_enabled": true, + "start_delimiter": "[^0-9A-Za-z]", + "end_delimiter": "[^0-9A-Za-z]", + "must_match": [ + "updated_secret_[0-9]{2}*" + ], + "must_not_match": [ + "updated_secret_1234567890ABCDEF" + ], + "custom_pattern_version": "0ujsswThIGTUYm2K8FjOOfXtY1K", + "created_at": "2024-01-15T10:30:00Z", + "updated_at": "2024-06-01T12:00:00Z" + } + }, "secret-scanning-pattern-configuration": { "value": { "pattern_config_version": "0ujsswThIGTUYm2K8FjOOfXtY1K", @@ -302800,6 +321342,32 @@ } } }, + "team-member-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, + "role": "member", + "inherited": false + } + ] + }, "team-membership-response-if-user-is-a-team-maintainer": { "summary": "Response if user is a team maintainer", "value": { @@ -302941,7 +321509,19 @@ "forks": 1, "open_issues": 1, "watchers": 1 - } + }, + "x-github-breaking-changes": [ + { + "changeset": "remove_has_downloads", + "patch": [ + { + "op": "remove", + "path": "/value/has_downloads" + } + ], + "version": "2026-03-10" + } + ] }, "team-items-response-if-child-teams-exist": { "value": [ @@ -303008,12 +321588,6 @@ "remaining": 99, "reset": 1691591091 }, - "code_scanning_upload": { - "limit": 500, - "used": 1, - "remaining": 499, - "reset": 1691594631 - }, "actions_runner_registration": { "limit": 10000, "used": 0, @@ -303051,7 +321625,19 @@ "remaining": 4999, "reset": 1372700873 } - } + }, + "x-github-breaking-changes": [ + { + "changeset": "remove_rate_limit_rate", + "patch": [ + { + "op": "remove", + "path": "/value/rate" + } + ], + "version": "2026-03-10" + } + ] }, "full-repository-default-response": { "summary": "Default response", @@ -303581,7 +322167,19 @@ } } } - } + }, + "x-github-breaking-changes": [ + { + "changeset": "remove_has_downloads", + "patch": [ + { + "op": "remove", + "path": "/value/has_downloads" + } + ], + "version": "2026-03-10" + } + ] }, "artifact-paginated": { "value": { @@ -303675,6 +322273,57 @@ ] } }, + "concurrency-group-list": { + "value": { + "total_count": 2, + "concurrency_groups": [ + { + "group_name": "deploy-prod", + "group_url": "https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/deploy-prod", + "last_acquired_at": "2026-01-15T16:14:23Z" + }, + { + "group_name": "ci-build", + "group_url": "https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/ci-build", + "last_acquired_at": "2026-01-15T16:13:55Z" + } + ] + } + }, + "concurrency-group": { + "value": { + "group_name": "deploy-prod", + "group_url": "https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/deploy-prod", + "total_count": 3, + "group_members": [ + { + "run_id": 30433642, + "run_name": "Deploy to production", + "run_url": "https://api.github.com/repos/octocat/Hello-World/actions/runs/30433642", + "run_html_url": "https://github.com/octocat/Hello-World/actions/runs/30433642", + "status": "in_progress" + }, + { + "run_id": 30433643, + "run_name": "Deploy to production", + "run_url": "https://api.github.com/repos/octocat/Hello-World/actions/runs/30433643", + "run_html_url": "https://github.com/octocat/Hello-World/actions/runs/30433643", + "status": "pending" + }, + { + "run_id": 30433644, + "run_name": "Deploy hotfix", + "run_url": "https://api.github.com/repos/octocat/Hello-World/actions/runs/30433644", + "run_html_url": "https://github.com/octocat/Hello-World/actions/runs/30433644", + "job_id": 798245260, + "job_name": "deploy", + "job_url": "https://api.github.com/repos/octocat/Hello-World/actions/jobs/798245260", + "job_html_url": "https://github.com/octocat/Hello-World/actions/runs/30433644/job/798245260", + "status": "pending" + } + ] + } + }, "job": { "value": { "id": 399444496, @@ -304463,6 +323112,47 @@ ] } }, + "concurrency-group-run-list": { + "value": { + "total_count": 2, + "concurrency_groups": [ + { + "group_name": "deploy-prod", + "group_url": "https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/deploy-prod", + "group_members": [ + { + "run_id": 30433642, + "run_name": "Deploy to production", + "run_url": "https://api.github.com/repos/octocat/Hello-World/actions/runs/30433642", + "run_html_url": "https://github.com/octocat/Hello-World/actions/runs/30433642", + "status": "in_progress", + "position": 0, + "position_url": "https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/deploy-prod?ahead_of_run=30433642" + } + ] + }, + { + "group_name": "ci-build", + "group_url": "https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/ci-build", + "group_members": [ + { + "run_id": 30433642, + "run_name": "Deploy to production", + "run_url": "https://api.github.com/repos/octocat/Hello-World/actions/runs/30433642", + "run_html_url": "https://github.com/octocat/Hello-World/actions/runs/30433642", + "status": "pending", + "position": 2, + "position_url": "https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/ci-build?ahead_of_job=798245260", + "job_id": 798245260, + "job_name": "build", + "job_url": "https://api.github.com/repos/octocat/Hello-World/actions/jobs/798245260", + "job_html_url": "https://github.com/octocat/Hello-World/actions/runs/30433642/job/798245260" + } + ] + } + ] + } + }, "pending-deployment-items": { "value": [ { @@ -306493,6 +325183,91 @@ ] } }, + "code-quality-finding-items": { + "value": [ + { + "number": 42, + "state": "open", + "url": "https://api.github.com/repos/octocat/hello-world/code-quality/findings/42", + "rule": { + "id": "java/useless-null-check", + "title": "Useless null check", + "description": "Checking whether an expression is null when that expression cannot possibly be null is useless.", + "severity": "warning", + "category": "maintainability" + }, + "location": { + "path": "java/UselessNullCheck.java", + "start_line": 9, + "start_column": 4, + "end_line": 9, + "end_column": 18 + }, + "message": { + "text": "This check is useless. o cannot be null at this check, since it is guarded by instanceof.", + "markdown": "This check is useless. [o](java/UselessNullCheck.java#L9C4-L9C18) cannot be null at this check, since it is guarded by [...instanceof...](java/UselessNullCheck.java#L7C13-L7C25)." + }, + "created_at": "2026-01-23T12:34:56Z" + } + ] + }, + "code-quality-finding": { + "value": { + "number": 42, + "state": "open", + "url": "https://api.github.com/repos/octocat/hello-world/code-quality/findings/42", + "rule": { + "id": "java/useless-null-check", + "title": "Useless null check", + "description": "Checking whether an expression is null when that expression cannot possibly be null is useless.", + "help": "# Useless null check\nSometimes you can guarantee that a particular variable will never be null. For example when that variable has just been assigned a newly created object or is the exception caught by a `catch` clause. A null check on such a variable is ...", + "severity": "warning", + "category": "maintainability" + }, + "location": { + "path": "java/UselessNullCheck.java", + "start_line": 9, + "start_column": 4, + "end_line": 9, + "end_column": 18 + }, + "message": { + "text": "This check is useless. o cannot be null at this check, since it is guarded by instanceof.", + "markdown": "This check is useless. [o](java/UselessNullCheck.java#L9C4-L9C18) cannot be null at this check, since it is guarded by [...instanceof...](java/UselessNullCheck.java#L7C13-L7C25)." + }, + "created_at": "2026-01-23T12:34:56Z" + } + }, + "code-quality-setup": { + "value": { + "state": "configured", + "languages": [ + "javascript-typescript", + "python" + ], + "runner_type": "standard", + "runner_label": null, + "updated_at": "2023-01-01T00:00:00Z", + "schedule": "weekly", + "ai_findings_option": "on_push" + } + }, + "code-quality-setup-update": { + "value": { + "state": "configured", + "languages": [ + "javascript-typescript", + "python", + "ruby" + ] + } + }, + "code-quality-setup-update-response": { + "value": { + "run_id": 42, + "run_url": "https://api.github.com/repos/octocat/hello-world/actions/runs/42" + } + }, "code-scanning-alert-items": { "value": [ { @@ -309825,7 +328600,8 @@ "name": "django" }, "manifest_path": "path/to/requirements.txt", - "scope": "runtime" + "scope": "runtime", + "relationship": "direct" }, "security_advisory": { "ghsa_id": "GHSA-rf4j-j272-fj86", @@ -309983,7 +328759,8 @@ "name": "ansible" }, "manifest_path": "path/to/requirements.txt", - "scope": "runtime" + "scope": "runtime", + "relationship": "direct" }, "security_advisory": { "ghsa_id": "GHSA-8f4m-hccc-8qph", @@ -310105,7 +328882,8 @@ "name": "ansible" }, "manifest_path": "path/to/requirements.txt", - "scope": "runtime" + "scope": "runtime", + "relationship": "direct" }, "security_advisory": { "ghsa_id": "GHSA-8f4m-hccc-8qph", @@ -310251,7 +329029,8 @@ "name": "django" }, "manifest_path": "path/to/requirements.txt", - "scope": "runtime" + "scope": "runtime", + "relationship": "direct" }, "security_advisory": { "ghsa_id": "GHSA-rf4j-j272-fj86", @@ -310506,6 +329285,11 @@ } } }, + "dependency-graph-generate-sbom-report-response": { + "value": { + "sbom_url": "https://api.github.com/repos/github/example/dependency-graph/sbom/fetch-report/4bab1a7e-da63-4828-9488-44e0e01a7c1b" + } + }, "dependency-graph-create-snapshot-request": { "value": { "version": 0, @@ -311432,7 +330216,7 @@ "value": { "vcs": "subversion", "use_lfs": true, - "vcs_url": "http://svn.mycompany.com/svn/myproject", + "vcs_url": "http://svn.example.com/svn/myproject", "status": "complete", "status_text": "Done", "has_large_files": true, @@ -311449,7 +330233,7 @@ "value": { "vcs": "subversion", "use_lfs": true, - "vcs_url": "http://svn.mycompany.com/svn/myproject", + "vcs_url": "http://svn.example.com/svn/myproject", "status": "importing", "status_text": "Importing...", "has_large_files": false, @@ -311468,7 +330252,7 @@ "value": { "vcs": "subversion", "use_lfs": true, - "vcs_url": "http://svn.mycompany.com/svn/myproject", + "vcs_url": "http://svn.example.com/svn/myproject", "status": "detecting", "url": "https://api.github.com/repos/octocat/socm/import", "html_url": "https://import.github.com/octocat/socm/import", @@ -311481,7 +330265,7 @@ "value": { "vcs": "tfvc", "use_lfs": true, - "vcs_url": "http://tfs.mycompany.com/tfs/myproject", + "vcs_url": "http://tfs.example.com/tfs/myproject", "tfvc_project": "project1", "status": "importing", "status_text": "Importing...", @@ -311501,7 +330285,7 @@ "value": { "vcs": "subversion", "use_lfs": true, - "vcs_url": "http://svn.mycompany.com/svn/myproject", + "vcs_url": "http://svn.example.com/svn/myproject", "status": "importing", "status_text": "Importing...", "has_large_files": false, @@ -311586,6 +330370,30 @@ "expires_at": "2018-08-17T04:18:39Z" } }, + "pull-request-bypass-list-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 + } + ] + }, "repository-invitation-items": { "value": [ { @@ -312149,7 +330957,19 @@ }, "author_association": "COLLABORATOR", "state_reason": "completed" - } + }, + "x-github-breaking-changes": [ + { + "changeset": "remove_singular_assignee_from_issues_and_pull_requests", + "patch": [ + { + "op": "remove", + "path": "/value/assignee" + } + ], + "version": "2026-03-10" + } + ] }, "issue-comment-items": { "value": [ @@ -312182,7 +331002,8 @@ "created_at": "2011-04-14T16:00:49Z", "updated_at": "2011-04-14T16:00:49Z", "issue_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347", - "author_association": "COLLABORATOR" + "author_association": "COLLABORATOR", + "minimized": null } ] }, @@ -312217,7 +331038,8 @@ "updated_at": "2011-04-14T16:00:49Z", "issue_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347", "author_association": "COLLABORATOR", - "pin": null + "pin": null, + "minimized": null } }, "issue-comment-pinned": { @@ -312869,7 +331691,19 @@ }, "author_association": "COLLABORATOR", "state_reason": "completed" - } + }, + "x-github-breaking-changes": [ + { + "changeset": "remove_singular_assignee_from_issues_and_pull_requests", + "patch": [ + { + "op": "remove", + "path": "/value/assignee" + } + ], + "version": "2026-03-10" + } + ] }, "issue-event-for-issue-items": { "value": [ @@ -312913,12 +331747,14 @@ "value": [ { "issue_field_id": 1, + "issue_field_name": "DRI", "node_id": "IFT_GDKND", "data_type": "text", "value": "DRI" }, { "issue_field_id": 2, + "issue_field_name": "Priority", "node_id": "IFSS_SADMS", "data_type": "single_select", "value": 1, @@ -312930,15 +331766,36 @@ }, { "issue_field_id": 3, + "issue_field_name": "Points", "node_id": "IFN_POINTS", "data_type": "number", "value": 42 }, { "issue_field_id": 4, + "issue_field_name": "Due Date", "node_id": "IFD_DUEDATE", "data_type": "date", "value": "2025-12-25" + }, + { + "issue_field_id": 5, + "issue_field_name": "Labels", + "node_id": "IFMS_LABELS", + "data_type": "multi_select", + "value": "Frontend,Backend", + "multi_select_options": [ + { + "id": 1, + "name": "Frontend", + "color": "blue" + }, + { + "id": 2, + "name": "Backend", + "color": "green" + } + ] } ] }, @@ -312977,6 +331834,57 @@ } ] }, + "issue-suggestions": { + "value": [ + { + "id": 12, + "issue_id": 4567, + "action": "add_label", + "state": "pending", + "target_id": 208045946, + "target_value": null, + "rationale": "This looks like a bug report based on the stack trace in the description.", + "confidence": "HIGH", + "actor_id": 41898282, + "issue_event_id": null, + "resolved_by": null, + "created_at": "2026-06-01T14:20:00Z", + "updated_at": "2026-06-01T14:20:00Z" + }, + { + "id": 13, + "issue_id": 4567, + "action": "set_type", + "state": "pending", + "target_id": 3, + "target_value": "Bug", + "rationale": "The report describes unexpected behaviour with reproduction steps.", + "confidence": "MEDIUM", + "actor_id": 41898282, + "issue_event_id": null, + "resolved_by": null, + "created_at": "2026-06-01T14:21:00Z", + "updated_at": "2026-06-01T14:21:00Z" + } + ] + }, + "issue-suggestion": { + "value": { + "id": 12, + "issue_id": 4567, + "action": "add_label", + "state": "approved", + "target_id": 208045946, + "target_value": null, + "rationale": "This looks like a bug report based on the stack trace in the description.", + "confidence": "HIGH", + "actor_id": 41898282, + "issue_event_id": 6430295168, + "resolved_by": 583231, + "created_at": "2026-06-01T14:20:00Z", + "updated_at": "2026-06-01T15:05:00Z" + } + }, "timeline-issue-events": { "value": [ { @@ -314062,7 +332970,29 @@ "additions": 100, "deletions": 3, "changed_files": 5 - } + }, + "x-github-breaking-changes": [ + { + "changeset": "remove_pull_request_merge_commit_sha", + "patch": [ + { + "op": "remove", + "path": "/value/merge_commit_sha" + } + ], + "version": "2026-03-10" + }, + { + "changeset": "remove_singular_assignee_from_issues_and_pull_requests", + "patch": [ + { + "op": "remove", + "path": "/value/assignee" + } + ], + "version": "2026-03-10" + } + ] }, "pull-request-review-comment-items": { "value": [ @@ -315444,7 +334374,29 @@ "author_association": "OWNER", "auto_merge": null, "draft": false - } + }, + "x-github-breaking-changes": [ + { + "changeset": "remove_pull_request_merge_commit_sha", + "patch": [ + { + "op": "remove", + "path": "/value/merge_commit_sha" + } + ], + "version": "2026-03-10" + }, + { + "changeset": "remove_singular_assignee_from_issues_and_pull_requests", + "patch": [ + { + "op": "remove", + "path": "/value/assignee" + } + ], + "version": "2026-03-10" + } + ] }, "pull-request-review-items": { "value": [ @@ -316305,7 +335257,13 @@ "resolution_comment": null, "validity": "unknown", "publicly_leaked": false, - "multi_repo": false + "multi_repo": false, + "metadata": [ + { + "key": "owner_email", + "value": "owner@example.com" + } + ] } }, "secret-scanning-alert-resolved": { @@ -316352,6 +335310,12 @@ "validity": "unknown", "publicly_leaked": false, "multi_repo": false, + "metadata": [ + { + "key": "owner_email", + "value": "owner@example.com" + } + ], "assigned_to": { "login": "octocat", "id": 1, @@ -316533,6 +335497,14 @@ "pattern_slug": "my-custom-pattern", "pattern_scope": "organization" } + ], + "generic_secrets_backfill_scans": [ + { + "type": "git", + "status": "completed", + "started_at": "2024-10-07T02:47:00Z", + "completed_at": "2024-10-07T02:55:00Z" + } ] } }, @@ -316787,7 +335759,19 @@ "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}" } - } + }, + "x-github-breaking-changes": [ + { + "changeset": "deprecate_cvss", + "patch": [ + { + "op": "remove", + "path": "/value/cvss" + } + ], + "version": "2026-03-10" + } + ] }, "repository-advisory-pvr": { "value": { @@ -316937,7 +335921,19 @@ } ], "private_fork": null - } + }, + "x-github-breaking-changes": [ + { + "changeset": "deprecate_cvss", + "patch": [ + { + "op": "remove", + "path": "/value/cvss" + } + ], + "version": "2026-03-10" + } + ] }, "simple-user-items-default-response": { "summary": "Default response", @@ -317742,7 +336738,19 @@ "subscribers_count": 42, "network_count": 0 } - } + }, + "x-github-breaking-changes": [ + { + "changeset": "remove_has_downloads", + "patch": [ + { + "op": "remove", + "path": "/value/has_downloads" + } + ], + "version": "2026-03-10" + } + ] }, "public-repository-items": { "value": [ @@ -318049,6 +337057,16 @@ "node_id": "MDU6SXNzdWUzNTgwMg==", "number": 132, "title": "Line Number Indexes Beyond 20 Not Displayed", + "type": { + "id": 1, + "node_id": "IT_kwDNJr9H", + "name": "Bug", + "description": "An unexpected problem or behavior", + "color": "red", + "created_at": "2023-10-09T13:30:49Z", + "updated_at": "2024-05-30T18:20:53Z", + "is_enabled": true + }, "user": { "login": "Nick3C", "id": 90254, @@ -318134,7 +337152,19 @@ "state_reason": "completed" } ] - } + }, + "x-github-breaking-changes": [ + { + "changeset": "remove_singular_assignee_from_issues_and_pull_requests", + "patch": [ + { + "op": "remove", + "path": "/value/items/0/assignee" + } + ], + "version": "2026-03-10" + } + ] }, "issue-search-result-item-paginated-lexical-fallback": { "summary": "Hybrid search with lexical fallback", @@ -318531,7 +337561,19 @@ "forks": 1, "open_issues": 1, "watchers": 1 - } + }, + "x-github-breaking-changes": [ + { + "changeset": "remove_has_downloads", + "patch": [ + { + "op": "remove", + "path": "/value/has_downloads" + } + ], + "version": "2026-03-10" + } + ] }, "private-user-response-with-public-and-private-profile-information": { "summary": "Response with public and private profile information", @@ -320902,6 +339944,186 @@ } } }, + "copilot-spaces-user-list": { + "summary": "Example response for listing user copilot spaces", + "value": { + "spaces": [ + { + "id": 42, + "number": 1, + "name": "Personal Research Space", + "description": "My personal space for research and development", + "owner": { + "login": "octocat", + "id": 3, + "node_id": "MDQ6VXNlcjM=", + "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 + }, + "creator": { + "login": "octocat", + "id": 3, + "node_id": "MDQ6VXNlcjM=", + "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": "2023-02-16T10:15:00Z", + "updated_at": "2023-02-16T16:30:00Z", + "html_url": "https://github.com/copilot/spaces/octocat/1", + "api_url": "https://api.github.com/user/1/copilot-spaces/1" + }, + { + "id": 43, + "number": 2, + "name": "Learning Space", + "description": "Space for learning new technologies", + "owner": { + "login": "octocat", + "id": 3, + "node_id": "MDQ6VXNlcjM=", + "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 + }, + "creator": { + "login": "octocat", + "id": 3, + "node_id": "MDQ6VXNlcjM=", + "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": "2023-02-17T08:20:00Z", + "updated_at": "2023-02-17T14:45:00Z", + "html_url": "https://github.com/copilot/spaces/octocat/2", + "api_url": "https://api.github.com/user/1/copilot-spaces/2" + } + ] + } + }, + "copilot-space-user": { + "summary": "Example response for a user copilot space", + "value": { + "id": 42, + "number": 5, + "name": "My Development Space", + "description": "Personal space for React development patterns", + "general_instructions": "Focus on React functional components, hooks, and modern development patterns", + "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 + }, + "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": "2023-02-15T08:30:00Z", + "updated_at": "2023-02-15T14:45:00Z", + "html_url": "https://github.com/copilot/spaces/octocat/5", + "api_url": "https://api.github.com/user/1/copilot-spaces/5", + "base_role": "no_access", + "resources_attributes": [ + { + "id": 789, + "resource_type": "github_file", + "metadata": { + "repository_id": 1234, + "file_path": "src/components/App.tsx" + } + }, + { + "id": 790, + "resource_type": "free_text", + "metadata": { + "name": "React Best Practices", + "text": "Use functional components with hooks" + } + } + ] + } + }, "user-events-items": { "value": [ { @@ -321270,6 +340492,29 @@ } ] }, + "billing-ai-credit-usage-report-user": { + "value": { + "timePeriod": { + "year": 2025 + }, + "user": "monalisa", + "usageItems": [ + { + "product": "Copilot AI Credits", + "sku": "AI Credit", + "model": "GPT-5", + "unitType": "ai-credits", + "pricePerUnit": 0.01, + "grossQuantity": 100, + "grossAmount": 1.0, + "discountQuantity": 0, + "discountAmount": 0.0, + "netQuantity": 100, + "netAmount": 1.0 + } + ] + } + }, "billing-premium-request-usage-report-user": { "value": { "timePeriod": { @@ -323208,6 +342453,14 @@ ] } }, + "dependabot-alert-relationship": { + "name": "relationship", + "in": "query", + "description": "A comma-separated list of relationships of the vulnerable dependency to your project. If specified, only alerts with these relationships will be returned.\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.", + "schema": { + "type": "string" + } + }, "dependabot-alert-sort": { "name": "sort", "in": "query", @@ -323393,15 +342646,6 @@ "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.", @@ -323456,6 +342700,15 @@ "type": "string" } }, + "budget": { + "name": "budget_id", + "description": "The ID corresponding to the budget.", + "in": "path", + "required": true, + "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.", @@ -324110,6 +343363,21 @@ "default": "all" } }, + "evaluate-status": { + "name": "evaluate_status", + "description": "The evaluate status to filter on. When specified, only rule suites resulting from rulesets with the specified evaluate status will be returned.\n - `all` - all rule suites will be returned.\n - `active` - only rule suites resulting from rulesets in active (non-evaluate) mode will be returned.\n - `evaluate` - only rule suites resulting from rulesets in evaluate mode will be returned.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "all", + "active", + "evaluate" + ], + "default": "all" + } + }, "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.", @@ -324271,6 +343539,74 @@ "default": false } }, + "secret-scanning-alert-bypassed": { + "name": "is_bypassed", + "in": "query", + "description": "A boolean value (`true` or `false`) indicating whether to filter alerts by their push protection bypass status. When set to `true`, only alerts that were created because a push protection rule was bypassed will be returned. When set to `false`, only alerts that were not caused by a push protection bypass will be returned.", + "required": false, + "schema": { + "type": "boolean" + } + }, + "secret-scanning-alert-included-metadata": { + "name": "included_metadata", + "in": "query", + "description": "A comma-separated list of metadata fields to filter alerts by. Only alerts that have all of the\nspecified metadata fields attached will be returned. Possible values are: `owner-email`, `owner-id`,\n`owner-name`, `secret-id`, `secret-name`, `secret-issued-date`, `secret-expiration-date`, `organization-name`,\n`organization-id`, `last-used-date`, and `has-organization-access`.", + "required": false, + "schema": { + "type": "string" + } + }, + "secret-scanning-alert-owner-email-hash": { + "name": "owner_email_hash", + "in": "query", + "description": "Filters alerts to only those whose attached `owner_email` metadata field matches the\nprovided value. The value must be the lowercase hex-encoded SHA-256 hash of the email\naddress to match (for example, the SHA-256 of `user@example.com`). Only alerts that\nhave an `owner_email` metadata value whose SHA-256 hash equals this parameter are\nreturned.", + "required": false, + "schema": { + "type": "string" + } + }, + "secret-scanning-custom-pattern-state": { + "name": "state", + "description": "Filter custom patterns by state. When absent, returns patterns in all states.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "published", + "unpublished" + ] + } + }, + "secret-scanning-custom-pattern-push-protection": { + "name": "push_protection", + "description": "Filter custom patterns by whether push protection is enabled. When absent, returns patterns regardless of push protection status.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "enabled", + "disabled" + ] + } + }, + "secret-scanning-custom-pattern-sort": { + "name": "sort", + "description": "The property to sort the results by.", + "in": "query", + "required": false, + "schema": { + "type": "string", + "enum": [ + "created", + "updated", + "name" + ], + "default": "created" + } + }, "network-configuration-id": { "name": "network_configuration_id", "description": "Unique identifier of the hosted compute network configuration.", @@ -324404,13 +343740,23 @@ "type": "integer" } }, + "concurrency-group-name": { + "name": "concurrency_group_name", + "description": "The name of the concurrency group.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, "job-id": { "name": "job_id", "description": "The unique identifier of the job.", "in": "path", "required": true, "schema": { - "type": "integer" + "type": "integer", + "format": "int64" } }, "actor": { @@ -324490,7 +343836,8 @@ "description": "Returns workflow runs with the `check_suite_id` that you specify.", "in": "query", "schema": { - "type": "integer" + "type": "integer", + "format": "int64" } }, "workflow-run-head-sha": { @@ -324561,7 +343908,8 @@ "in": "path", "required": true, "schema": { - "type": "integer" + "type": "integer", + "format": "int64" } }, "check-suite-id": { @@ -324596,6 +343944,15 @@ ] } }, + "code-quality-finding-number": { + "name": "finding_number", + "in": "path", + "description": "The number that identifies a finding.", + "required": true, + "schema": { + "type": "integer" + } + }, "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`.", @@ -324743,6 +344100,14 @@ "type": "integer" } }, + "issue-timeline-exclude": { + "name": "exclude", + "in": "query", + "description": "A comma-separated list of timeline event names to exclude from the response.", + "schema": { + "type": "string" + } + }, "key-id": { "name": "key_id", "description": "The unique identifier of the key.", @@ -325044,6 +344409,16 @@ } } }, + "gone": { + "description": "Gone", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, "internal_error": { "description": "Internal Error", "content": { @@ -325131,6 +344506,21 @@ } } }, + "billing_ai_credit_usage_report_org": { + "description": "Response when getting a billing AI credit usage report", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/billing-ai-credit-usage-report-org" + }, + "examples": { + "default": { + "$ref": "#/components/examples/billing-ai-credit-usage-report-org" + } + } + } + } + }, "get_all_budgets": { "description": "Response when getting all budgets", "content": { @@ -325141,6 +344531,9 @@ "examples": { "default": { "$ref": "#/components/examples/get_all_budgets" + }, + "with_user_filter": { + "$ref": "#/components/examples/get_all_budgets_with_user_filter" } } } @@ -325319,8 +344712,11 @@ } } }, - "usage_metrics_api_disabled": { - "description": "Copilot Usage Metrics API setting is disabled at the organization or enterprise level.", + "package_es_list_error": { + "description": "The value of `per_page` multiplied by `page` cannot be greater than 10000." + }, + "precondition_failed": { + "description": "Precondition Failed", "content": { "application/json": { "schema": { @@ -325329,9 +344725,6 @@ } } }, - "package_es_list_error": { - "description": "The value of `per_page` multiplied by `page` cannot be greater than 10000." - }, "enterprise_team_unsupported": { "description": "Unprocessable entity if you attempt to modify an enterprise team at the organization level." }, @@ -325345,8 +344738,38 @@ } } }, - "gone": { - "description": "Gone", + "code_quality_forbidden_read": { + "description": "Response if the user is not authorized to access Code quality for this repository.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "code_quality_forbidden_write": { + "description": "Response if the repository is archived or if Code quality is not enabled for this repository", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "code_quality_conflict": { + "description": "Response if there is already a code quality setup configuration update in progress", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/basic-error" + } + } + } + }, + "code_quality_invalid_state": { + "description": "Response if the configuration change cannot be made", "content": { "application/json": { "schema": { @@ -325463,6 +344886,21 @@ } } }, + "billing_ai_credit_usage_report_user": { + "description": "Response when getting a billing AI credit usage report", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/billing-ai-credit-usage-report-user" + }, + "examples": { + "default": { + "$ref": "#/components/examples/billing-ai-credit-usage-report-user" + } + } + } + } + }, "billing_premium_request_usage_report_user": { "description": "Response when getting a billing premium request usage report", "content": { diff --git a/provider-dev/openapi/src/github/v00.00.00000/provider.yaml b/provider-dev/openapi/src/github/v00.00.00000/provider.yaml index aeb9844..5a1746e 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/provider.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/provider.yaml @@ -19,9 +19,7 @@ providerServices: $ref: github/v00.00.00000/services/activity.yaml title: activity API version: v00.00.00000 - description: >- - Activity APIs provide access to notifications, subscriptions, and - timelines. + description: Activity APIs provide access to notifications, subscriptions, and timelines. agent_tasks: id: agent_tasks:v00.00.00000 name: agent_tasks @@ -31,6 +29,15 @@ providerServices: title: agent_tasks API version: v00.00.00000 description: github API + agents: + id: agents:v00.00.00000 + name: agents + preferred: true + service: + $ref: github/v00.00.00000/services/agents.yaml + title: agents API + version: v00.00.00000 + description: Endpoints for Agents secrets and variables. apps: id: apps:v00.00.00000 name: apps @@ -76,6 +83,15 @@ providerServices: title: classroom API version: v00.00.00000 description: Interact with GitHub Classroom. + code_quality: + id: code_quality:v00.00.00000 + name: code_quality + preferred: true + service: + $ref: github/v00.00.00000/services/code_quality.yaml + title: code_quality API + version: v00.00.00000 + description: github API code_scanning: id: code_scanning:v00.00.00000 name: code_scanning @@ -121,6 +137,15 @@ providerServices: title: copilot API version: v00.00.00000 description: Endpoints to manage Copilot using the REST API. + copilot_spaces: + id: copilot_spaces:v00.00.00000 + name: copilot_spaces + preferred: true + service: + $ref: github/v00.00.00000/services/copilot_spaces.yaml + title: copilot_spaces API + version: v00.00.00000 + description: github API credentials: id: credentials:v00.00.00000 name: credentials @@ -148,6 +173,15 @@ providerServices: title: dependency_graph API version: v00.00.00000 description: github API + discussions: + id: discussions:v00.00.00000 + name: discussions + preferred: true + service: + $ref: github/v00.00.00000/services/discussions.yaml + title: discussions API + version: v00.00.00000 + description: GitHub Discussions for a repository - discussions, categories and comments. GitHub exposes Discussions through the GraphQL API only; these resources are backed by GraphQL queries. emojis: id: emojis:v00.00.00000 name: emojis diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/actions.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/actions.yaml index 41891d5..f7f173f 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/actions.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/actions.yaml @@ -1111,6 +1111,16 @@ paths: The machine size of the runner. To list available sizes, use `GET actions/hosted-runners/machine-sizes` type: string + image_source: + description: >- + The source type of the runner image to use. Must match the + source of the image specified by `image_id`. Can be one of + `github`, `partner`, or `custom`. + type: string + enum: + - github + - partner + - custom image_id: description: >- The unique identifier of the runner image. To list available @@ -1125,6 +1135,12 @@ paths: only for runners using custom images. type: string nullable: true + image_gen: + description: >- + Whether to enable image generation for this runner pool. + When enabled, the runner pool is used to build and publish + custom runner images. + type: boolean examples: default: value: @@ -4876,6 +4892,144 @@ paths: category: actions subcategory: cache x-stackQL-resource: cache + /repos/{owner}/{repo}/actions/concurrency_groups: + get: + summary: List concurrency groups for a repository + description: >- + Lists the active concurrency groups for a repository. + + + OAuth app tokens and personal access tokens (classic) need the `repo` + scope to use this endpoint with a private repository. + tags: + - actions + operationId: actions/list-concurrency-groups-for-repository + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/actions/concurrency-groups#list-concurrency-groups-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/per-page' + - $ref: '#/components/parameters/pagination-after' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/concurrency-group-list' + examples: + default: + $ref: '#/components/examples/concurrency-group-list' + headers: + Link: + $ref: '#/components/headers/link' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: concurrency-groups + x-stackQL-resource: concurrency_groups + /repos/{owner}/{repo}/actions/concurrency_groups/{concurrency_group_name}: + get: + summary: Get a concurrency group for a repository + description: >- + Gets a specific concurrency group for a repository, including all + instances in the group's queue. + + Returns 404 if the group is inactive or does not exist. + + + Optionally, pass `ahead_of_run` or `ahead_of_job` to filter the results + to only the items + + ahead of the specified workflow run or job in the queue, plus the + specified item itself + + (returned as the last element). This is useful for determining what is + blocking a particular + + run or job. Returns 422 if the specified run or job is not in this + concurrency group. + + + When using `ahead_of_run`, this matches workflow-level concurrency and + any reusable-workflow + + leases held on behalf of that run. Job-level leases within the run are + not considered to + + block the run as a whole. Use `ahead_of_job` to match job-level + concurrency and reusable-workflow + + leases on the job's ancestor paths. + + + OAuth app tokens and personal access tokens (classic) need the `repo` + scope to use this endpoint with a private repository. + tags: + - actions + operationId: actions/get-concurrency-group-for-repository + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/actions/concurrency-groups#get-a-concurrency-group-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/concurrency-group-name' + - name: ahead_of_run + description: >- + Filter to items ahead of this workflow run ID in the queue, plus the + run itself. + + Matches workflow-level concurrency and reusable-workflow leases held + on behalf of + + the run. Mutually exclusive with `ahead_of_job`. + in: query + required: false + schema: + type: integer + minimum: 1 + - name: ahead_of_job + description: >- + Filter to items ahead of this job ID in the queue, plus the job + itself. + + Matches job-level concurrency and reusable-workflow leases on the + job's + + ancestor paths. Mutually exclusive with `ahead_of_run`. + in: query + required: false + schema: + type: integer + minimum: 1 + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/concurrency-group' + examples: + default: + $ref: '#/components/examples/concurrency-group' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: concurrency-groups + x-stackQL-resource: concurrency_groups /repos/{owner}/{repo}/actions/jobs/{job_id}: get: summary: Get a job for a workflow run @@ -4988,6 +5142,10 @@ paths: type: boolean default: false description: Whether to enable debug logging for the re-run. + enable_debugger: + type: boolean + default: false + description: Whether to enable the debugger for the re-run of this job. examples: default: value: null @@ -5095,6 +5253,12 @@ paths: type: array items: type: string + use_immutable_subject: + description: >- + Whether to opt in to the immutable OIDC subject claim format + for this repository. When `true`, OIDC tokens will use a + stable, repository-ID-based `sub` claim. + type: boolean examples: default: value: @@ -6870,6 +7034,83 @@ paths: category: actions subcategory: workflow-runs x-stackQL-resource: workflow_runs + /repos/{owner}/{repo}/actions/runs/{run_id}/concurrency_groups: + get: + summary: List concurrency groups for a workflow run + description: >- + Lists all concurrency groups associated with a workflow run or its jobs. + + + The set of groups is derived from the run's configuration, so a group is + + included even when the run no longer has any items currently holding or + + waiting in it. In that case the `group_members` array will be empty. + + `total_count` reflects the number of groups the run participates in by + + configuration, not the number with active items. + + + This differs from `GET + /repos/{owner}/{repo}/actions/concurrency_groups/{group_name}`, + + which returns 404 when a group has no active items. That endpoint + reports + + the live state of a group repo-wide, while this endpoint reports the + + groups associated with a specific run by configuration. + + + Results are sorted by group name and support cursor-based pagination via + + `before` and `after`. The `after` cursor paginates forward only and does + + not emit a `rel="prev"` Link; use `before` to page backward from a + + forward page's `next` cursor. + + + OAuth app tokens and personal access tokens (classic) need the `repo` + scope to use this endpoint with a private repository. + tags: + - actions + operationId: actions/list-concurrency-groups-for-workflow-run + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/actions/concurrency-groups#list-concurrency-groups-for-a-workflow-run + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/run-id' + - $ref: '#/components/parameters/per-page' + - $ref: '#/components/parameters/pagination-before' + - $ref: '#/components/parameters/pagination-after' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/concurrency-group-run-list' + examples: + default: + $ref: '#/components/examples/concurrency-group-run-list' + headers: + Link: + $ref: '#/components/headers/link' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: concurrency-groups + x-stackQL-resource: concurrency_groups /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule: post: summary: Review custom deployment protection rules for a workflow run @@ -8110,6 +8351,9 @@ paths: - op: remove path: >- /requestBody/content/application~1json/schema/properties/return_run_details + - op: replace + path: /responses/200/description + value: Response including the workflow run ID and URLs. version: '2026-03-10' x-stackQL-resource: workflows /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable: @@ -10351,6 +10595,13 @@ components: $ref: '#/components/schemas/runner-label' ephemeral: type: boolean + version: + description: >- + The version of the GitHub Actions Runner software. This is only set + if the runner has connected to the service at least once. + nullable: true + type: string + example: 2.323.0 required: - id - name @@ -10672,6 +10923,111 @@ components: required: - total_count - actions_caches + concurrency-group-list: + title: Concurrency Group List + description: A list of active concurrency groups for a repository. + type: object + required: + - total_count + - concurrency_groups + properties: + total_count: + type: integer + concurrency_groups: + type: array + items: + type: object + required: + - group_name + - group_url + - last_acquired_at + properties: + group_name: + type: string + description: The name of the concurrency group. + group_url: + type: string + format: uri + description: API URL for this concurrency group. + last_acquired_at: + type: string + format: date-time + nullable: true + concurrency-group: + title: Concurrency Group + description: >- + A concurrency group with the workflow runs and jobs that are either + currently holding + + or waiting for the concurrency group lease. + type: object + required: + - group_name + - group_url + - total_count + - group_members + properties: + group_name: + type: string + description: The name of the concurrency group. + group_url: + type: string + format: uri + description: API URL for this concurrency group. + total_count: + type: integer + group_members: + type: array + items: + type: object + required: + - run_id + - run_name + - run_url + - run_html_url + - status + properties: + run_id: + type: integer + description: The ID of the workflow run. + run_name: + type: string + description: The name of the workflow run. + run_url: + type: string + format: uri + description: API URL for the workflow run. + nullable: true + run_html_url: + type: string + format: uri + description: Web URL for the workflow run. + nullable: true + job_id: + type: integer + description: >- + The ID of the job, when the item represents a job-level or + reusable-workflow-level lease. + job_name: + type: string + description: >- + The display name of the job, when the item represents a + job-level or reusable-workflow-level lease. + job_url: + type: string + format: uri + description: API URL for the job. + nullable: true + job_html_url: + type: string + format: uri + description: Web URL for the job. + nullable: true + status: + type: string + enum: + - in_progress + - pending job: title: Job description: Information of a job execution in a workflow run @@ -10681,10 +11037,12 @@ components: description: The id of the job. example: 21 type: integer + format: int64 run_id: description: The id of the associated workflow run. example: 5 type: integer + format: int64 run_url: type: string example: https://api.github.com/repos/github/hello-world/actions/runs/5 @@ -10886,6 +11244,16 @@ components: type: array items: type: string + use_immutable_subject: + description: >- + Whether the repository has opted in to the immutable OIDC subject + claim format. When `true`, OIDC tokens will use a stable, + repository-ID-based `sub` claim. If not set at the repository level, + falls back to the organization-level setting. + type: boolean + sub_claim_prefix: + description: The current `sub` claim prefix for this repository. + type: string required: - use_default actions-secret: @@ -10983,6 +11351,7 @@ components: properties: id: type: integer + format: int64 description: The ID of the workflow run. example: 5 name: @@ -10995,6 +11364,7 @@ components: example: MDEwOkNoZWNrU3VpdGU1 check_suite_id: type: integer + format: int64 description: The ID of the associated check suite. example: 42 check_suite_node_id: @@ -11219,6 +11589,131 @@ components: - state - user - comment + concurrency-group-run-list: + title: Concurrency Group Run List + description: A list of concurrency groups associated with a workflow run. + type: object + required: + - total_count + - concurrency_groups + properties: + total_count: + type: integer + description: >- + The total number of concurrency groups this workflow run + participates in, + + derived from the run's configuration. This count is not filtered by + + whether the run currently holds or is waiting in each group, so it + can + + include groups whose `group_members` array is empty (for example, + when + + the run has already released its lease in that group). + concurrency_groups: + type: array + items: + type: object + required: + - group_name + - group_url + - group_members + properties: + group_name: + type: string + description: The name of the concurrency group. + group_url: + type: string + format: uri + description: >- + API URL for this concurrency group. May return 404 if the + group + + has no active items at the time it is requested, since the + + get-by-name endpoint reports the live repo-wide state of a + group + + while this endpoint lists groups associated with a run by + + configuration. + group_members: + type: array + description: >- + Items belonging to this workflow run that are either currently + holding or + + waiting for the concurrency group lease. May be empty if the + run no + + longer has any active or queued items in this group. + items: + type: object + required: + - run_id + - run_name + - run_url + - run_html_url + - status + - position + - position_url + properties: + run_id: + type: integer + description: The ID of the workflow run. + run_name: + type: string + description: The name of the workflow run. + run_url: + type: string + format: uri + description: API URL for the workflow run. + nullable: true + run_html_url: + type: string + format: uri + description: Web URL for the workflow run. + nullable: true + position: + type: integer + description: >- + Queue position. 0 means the item holds the concurrency + lease (in_progress), 1 or higher means queued (pending). + position_url: + type: string + format: uri + description: >- + API URL to get items ahead of this item in the + concurrency group. + job_id: + type: integer + description: >- + The ID of the job, when the item represents a job-level + or reusable-workflow-level lease. + nullable: true + job_name: + type: string + description: >- + The display name of the job, when the item represents a + job-level or reusable-workflow-level lease. + nullable: true + job_url: + type: string + format: uri + description: API URL for the job. + nullable: true + job_html_url: + type: string + format: uri + description: Web URL for the job. + nullable: true + status: + type: string + enum: + - in_progress + - pending review-custom-gates-comment-required: type: object properties: @@ -12342,6 +12837,20 @@ components: enum: - enterprise - organization + access_source: + description: >- + How the team's access to the repository was granted. This property + is only + + present when the team is returned in a repository context, such as + + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs @@ -13148,6 +13657,25 @@ components: required: true schema: type: integer + 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 + concurrency-group-name: + name: concurrency_group_name + description: The name of the concurrency group. + in: path + required: true + schema: + type: string job-id: name: job_id description: The unique identifier of the job. @@ -13155,6 +13683,7 @@ components: required: true schema: type: integer + format: int64 actor: name: actor description: >- @@ -13235,6 +13764,7 @@ components: in: query schema: type: integer + format: int64 workflow-run-head-sha: name: head_sha description: >- @@ -13258,6 +13788,18 @@ components: required: true schema: type: integer + 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 workflow-id: name: workflow_id in: path @@ -13904,6 +14446,7 @@ components: status: online busy: true ephemeral: false + version: 2.323.0 labels: - id: 5 name: self-hosted @@ -13920,6 +14463,7 @@ components: status: offline busy: false ephemeral: false + version: 2.323.0 labels: - id: 5 name: self-hosted @@ -13976,6 +14520,7 @@ components: status: online busy: true ephemeral: false + version: 2.323.0 labels: - id: 5 name: self-hosted @@ -14207,6 +14752,49 @@ components: last_accessed_at: '2019-01-24T22:45:36.000Z' created_at: '2019-01-24T22:45:36.000Z' size_in_bytes: 1024 + concurrency-group-list: + value: + total_count: 2 + concurrency_groups: + - group_name: deploy-prod + group_url: >- + https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/deploy-prod + last_acquired_at: '2026-01-15T16:14:23Z' + - group_name: ci-build + group_url: >- + https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/ci-build + last_acquired_at: '2026-01-15T16:13:55Z' + concurrency-group: + value: + group_name: deploy-prod + group_url: >- + https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/deploy-prod + total_count: 3 + group_members: + - run_id: 30433642 + run_name: Deploy to production + run_url: >- + https://api.github.com/repos/octocat/Hello-World/actions/runs/30433642 + run_html_url: https://github.com/octocat/Hello-World/actions/runs/30433642 + status: in_progress + - run_id: 30433643 + run_name: Deploy to production + run_url: >- + https://api.github.com/repos/octocat/Hello-World/actions/runs/30433643 + run_html_url: https://github.com/octocat/Hello-World/actions/runs/30433643 + status: pending + - run_id: 30433644 + run_name: Deploy hotfix + run_url: >- + https://api.github.com/repos/octocat/Hello-World/actions/runs/30433644 + run_html_url: https://github.com/octocat/Hello-World/actions/runs/30433644 + job_id: 798245260 + job_name: deploy + job_url: >- + https://api.github.com/repos/octocat/Hello-World/actions/jobs/798245260 + job_html_url: >- + https://github.com/octocat/Hello-World/actions/runs/30433644/job/798245260 + status: pending job: value: id: 399444496 @@ -14939,6 +15527,42 @@ components: runner_group_name: my runner group workflow_name: CI head_branch: main + concurrency-group-run-list: + value: + total_count: 2 + concurrency_groups: + - group_name: deploy-prod + group_url: >- + https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/deploy-prod + group_members: + - run_id: 30433642 + run_name: Deploy to production + run_url: >- + https://api.github.com/repos/octocat/Hello-World/actions/runs/30433642 + run_html_url: https://github.com/octocat/Hello-World/actions/runs/30433642 + status: in_progress + position: 0 + position_url: >- + https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/deploy-prod?ahead_of_run=30433642 + - group_name: ci-build + group_url: >- + https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/ci-build + group_members: + - run_id: 30433642 + run_name: Deploy to production + run_url: >- + https://api.github.com/repos/octocat/Hello-World/actions/runs/30433642 + run_html_url: https://github.com/octocat/Hello-World/actions/runs/30433642 + status: pending + position: 2 + position_url: >- + https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/ci-build?ahead_of_job=798245260 + job_id: 798245260 + job_name: build + job_url: >- + https://api.github.com/repos/octocat/Hello-World/actions/jobs/798245260 + job_html_url: >- + https://github.com/octocat/Hello-World/actions/runs/30433642/job/798245260 pending-deployment-items: value: - environment: @@ -16989,6 +17613,35 @@ components: - $ref: >- #/components/x-stackQL-resources/cache/methods/delete_actions_cache_by_key replace: [] + concurrency_groups: + id: github.actions.concurrency_groups + name: concurrency_groups + title: Concurrency Groups + methods: + list_concurrency_groups_for_repository: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1actions~1concurrency_groups/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.concurrency_groups + get_concurrency_group_for_repository: + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1actions~1concurrency_groups~1{concurrency_group_name}/get + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/concurrency_groups/methods/get_concurrency_group_for_repository + - $ref: >- + #/components/x-stackQL-resources/concurrency_groups/methods/list_concurrency_groups_for_repository + insert: [] + update: [] + delete: [] + replace: [] workflow_jobs: id: github.actions.workflow_jobs name: workflow_jobs @@ -17334,6 +17987,27 @@ components: update: [] delete: [] replace: [] + workflow_run_concurrency_groups: + id: github.actions.workflow_run_concurrency_groups + name: workflow_run_concurrency_groups + title: Workflow Run Concurrency Groups + methods: + list_concurrency_groups_for_workflow_run: + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1actions~1runs~1{run_id}~1concurrency_groups/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.concurrency_groups + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/workflow_run_concurrency_groups/methods/list_concurrency_groups_for_workflow_run + insert: [] + update: [] + delete: [] + replace: [] workflow_run_logs: id: github.actions.workflow_run_logs name: workflow_run_logs @@ -17481,3 +18155,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/activity.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/activity.yaml index 70237e9..d163531 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/activity.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/activity.yaml @@ -7,11 +7,9 @@ paths: /events: get: summary: List public events - description: >- + description: |- > [!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. + > 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 @@ -48,45 +46,21 @@ paths: /feeds: get: summary: Get feeds - 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. - + 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. * **Timeline**: The GitHub global public timeline - - * **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 - + * **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. - * **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. - - - 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)." - + 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)." > [!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. + > 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 @@ -113,18 +87,15 @@ paths: /networks/{owner}/{repo}/events: get: summary: List public events for a network of repositories - description: >- + description: |- > [!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. + > 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/activity/events#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: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -159,16 +130,13 @@ paths: /notifications: get: summary: List notifications for the authenticated user - description: >- - List all notifications for the current user, sorted by most recently - updated. + description: List all notifications for the current user, sorted by most recently updated. tags: - activity operationId: activity/list-notifications-for-authenticated-user externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user + url: https://docs.github.com/rest/activity/notifications#list-notifications-for-the-authenticated-user parameters: - $ref: '#/components/parameters/all' - $ref: '#/components/parameters/participating' @@ -176,10 +144,7 @@ paths: - $ref: '#/components/parameters/before' - $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)." + 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 @@ -215,22 +180,13 @@ paths: x-stackQL-resource: notifications put: summary: Mark notifications as read - 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`. + 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/activity/notifications#mark-notifications-as-read + url: https://docs.github.com/rest/activity/notifications#mark-notifications-as-read parameters: [] requestBody: required: false @@ -240,13 +196,7 @@ paths: type: object properties: last_read_at: - 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. + 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 read: @@ -320,17 +270,13 @@ paths: x-stackQL-resource: notifications patch: summary: Mark a thread as read - 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. + 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/activity/notifications#mark-a-thread-as-read + url: https://docs.github.com/rest/activity/notifications#mark-a-thread-as-read parameters: - $ref: '#/components/parameters/thread-id' responses: @@ -348,17 +294,13 @@ paths: x-stackQL-resource: 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. + 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 + url: https://docs.github.com/rest/activity/notifications#mark-a-thread-as-done parameters: - $ref: '#/components/parameters/thread-id' responses: @@ -373,22 +315,16 @@ paths: /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/activity/watching#get-a-repository-subscription). - + 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). - 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. + 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. tags: - activity operationId: activity/get-thread-subscription-for-authenticated-user externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/activity/notifications#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: - $ref: '#/components/parameters/thread-id' responses: @@ -415,28 +351,18 @@ paths: x-stackQL-resource: 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**. + 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**. + 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. - 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/activity/notifications#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. tags: - activity operationId: activity/set-thread-subscription externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/activity/notifications#set-a-thread-subscription + url: https://docs.github.com/rest/activity/notifications#set-a-thread-subscription parameters: - $ref: '#/components/parameters/thread-id' requestBody: @@ -478,20 +404,13 @@ paths: x-stackQL-resource: 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/activity/notifications#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/activity/notifications#delete-a-thread-subscription + url: https://docs.github.com/rest/activity/notifications#delete-a-thread-subscription parameters: - $ref: '#/components/parameters/thread-id' responses: @@ -512,18 +431,15 @@ paths: /orgs/{org}/events: get: summary: List public organization events - description: >- + description: |- > [!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. + > 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-org-events externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/activity/events#list-public-organization-events + url: https://docs.github.com/rest/activity/events#list-public-organization-events parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/per-page' @@ -549,11 +465,9 @@ paths: /repos/{owner}/{repo}/events: get: summary: List repository events - description: >- + description: |- > [!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. + > 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-repo-events @@ -586,16 +500,13 @@ paths: /repos/{owner}/{repo}/notifications: get: summary: List repository notifications for the authenticated user - description: >- - Lists all notifications for the current user in the specified - repository. + description: Lists all notifications for the current user in the specified repository. tags: - activity operationId: activity/list-repo-notifications-for-authenticated-user externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/activity/notifications#list-repository-notifications-for-the-authenticated-user + url: https://docs.github.com/rest/activity/notifications#list-repository-notifications-for-the-authenticated-user parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -628,22 +539,13 @@ paths: x-stackQL-resource: notifications 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`. + 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: - activity 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 + url: https://docs.github.com/rest/activity/notifications#mark-repository-notifications-as-read parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -657,13 +559,7 @@ paths: 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. + 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: @@ -683,10 +579,7 @@ paths: examples: default: value: - message: >- - Unread notifications couldn't be marked in a single - request. Notifications are being marked as read in the - background. + 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: @@ -698,17 +591,12 @@ paths: /repos/{owner}/{repo}/stargazers: get: summary: List stargazers - description: >- + description: |- Lists the people that have starred the 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)." - 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. + - **`application/vnd.github.star+json`**: Includes a timestamp of when the star was created. tags: - activity operationId: activity/list-stargazers-for-repo @@ -733,8 +621,7 @@ paths: 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 + $ref: '#/components/examples/stargazer-items-alternative-response-with-star-creation-timestamps' headers: Link: $ref: '#/components/headers/link' @@ -785,16 +672,13 @@ paths: /repos/{owner}/{repo}/subscription: get: summary: Get a repository subscription - description: >- - Gets information about whether the authenticated user is subscribed to - the repository. + 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 + url: https://docs.github.com/rest/activity/watching#get-a-repository-subscription parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -807,8 +691,7 @@ paths: $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 + $ref: '#/components/examples/repository-subscription-response-if-you-subscribe-to-the-repository' '403': $ref: '#/components/responses/forbidden' '404': @@ -821,20 +704,13 @@ paths: x-stackQL-resource: watching 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. + 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 + url: https://docs.github.com/rest/activity/watching#set-a-repository-subscription parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -847,14 +723,10 @@ paths: properties: subscribed: type: boolean - description: >- - Determines if notifications should be received from this - repository. + description: Determines if notifications should be received from this repository. ignored: type: boolean - description: >- - Determines if all notifications should be blocked from this - repository. + description: Determines if all notifications should be blocked from this repository. examples: default: value: @@ -878,18 +750,13 @@ paths: x-stackQL-resource: watching 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). + 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 + url: https://docs.github.com/rest/activity/watching#delete-a-repository-subscription parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -905,24 +772,18 @@ paths: /user/starred: get: summary: List repositories starred by the authenticated user - description: >- + description: |- Lists repositories the authenticated user has starred. + 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 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. + - **`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 + url: https://docs.github.com/rest/activity/starring#list-repositories-starred-by-the-authenticated-user parameters: - $ref: '#/components/parameters/sort-starred' - $ref: '#/components/parameters/direction' @@ -947,8 +808,7 @@ paths: $ref: '#/components/schemas/starred-repository' examples: alternative-response-with-star-creation-timestamps: - $ref: >- - #/components/examples/starred-repository-items-alternative-response-with-star-creation-timestamps + $ref: '#/components/examples/starred-repository-items-alternative-response-with-star-creation-timestamps' headers: Link: $ref: '#/components/headers/link' @@ -973,8 +833,7 @@ paths: 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 + url: https://docs.github.com/rest/activity/starring#check-if-a-repository-is-starred-by-the-authenticated-user parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -1001,17 +860,13 @@ paths: x-stackQL-resource: 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)." + 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 + url: https://docs.github.com/rest/activity/starring#star-a-repository-for-the-authenticated-user parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -1040,8 +895,7 @@ paths: 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 + url: https://docs.github.com/rest/activity/starring#unstar-a-repository-for-the-authenticated-user parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -1071,8 +925,7 @@ paths: 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 + url: https://docs.github.com/rest/activity/watching#list-repositories-watched-by-the-authenticated-user parameters: - $ref: '#/components/parameters/per-page' - $ref: '#/components/parameters/page' @@ -1106,24 +959,17 @@ paths: /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). - + 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). > [!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. + > 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 + url: https://docs.github.com/rest/activity/events#list-events-for-the-authenticated-user parameters: - $ref: '#/components/parameters/username' - $ref: '#/components/parameters/per-page' @@ -1149,22 +995,17 @@ paths: /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. - + description: |- + This is the user's organization dashboard. You must be authenticated as the user to view this. > [!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. + > 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 + url: https://docs.github.com/rest/activity/events#list-organization-events-for-the-authenticated-user parameters: - $ref: '#/components/parameters/username' - $ref: '#/components/parameters/org' @@ -1191,18 +1032,15 @@ paths: /users/{username}/events/public: get: summary: List public events for a user - description: >- + description: |- > [!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. + > 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 + url: https://docs.github.com/rest/activity/events#list-public-events-for-a-user parameters: - $ref: '#/components/parameters/username' - $ref: '#/components/parameters/per-page' @@ -1228,25 +1066,18 @@ paths: /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 - - given user, you will see private events. Otherwise, you'll only see - public events. - + description: |- + 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. + > 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 + url: https://docs.github.com/rest/activity/events#list-events-received-by-the-authenticated-user parameters: - $ref: '#/components/parameters/username' - $ref: '#/components/parameters/per-page' @@ -1272,18 +1103,15 @@ paths: /users/{username}/received_events/public: get: summary: List public events received by a user - description: >- + description: |- > [!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. + > 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 + url: https://docs.github.com/rest/activity/events#list-public-events-received-by-a-user parameters: - $ref: '#/components/parameters/username' - $ref: '#/components/parameters/per-page' @@ -1309,24 +1137,18 @@ paths: /users/{username}/starred: get: summary: List repositories starred by a user - description: >- + description: |- Lists repositories a user has starred. + 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 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. + - **`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 + url: https://docs.github.com/rest/activity/starring#list-repositories-starred-by-a-user parameters: - $ref: '#/components/parameters/username' - $ref: '#/components/parameters/sort-starred' @@ -1363,8 +1185,7 @@ paths: 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 + url: https://docs.github.com/rest/activity/watching#list-repositories-watched-by-a-user parameters: - $ref: '#/components/parameters/username' - $ref: '#/components/parameters/per-page' @@ -1390,6 +1211,111 @@ paths: category: activity subcategory: watching x-stackQL-resource: watching + /graphql?resource=star_history: + post: + operationId: graphql/activity/star_history/list + summary: Star History + description: Every star on a repository with the time it was given, oldest first - suitable for star growth over time. Backed by the GitHub GraphQL API (`repository.stargazers` ordered by `STARRED_AT`). Since July 2026 GitHub limits stargazer listings to repository admins and collaborators; other tokens get "Resource not accessible by personal access token". + x-stackQL-graphQL: + url: https://api.github.com/graphql + httpVerb: POST + responseSelection: + jsonPath: $.data.repository.stargazers.edges[*] + cursor: + strategy: page_info + jsonPath: $.data.repository.stargazers.pageInfo.endCursor + terminateOnJsonPath: $.data.repository.stargazers.pageInfo.hasNextPage + query: | + query { + repository(owner: "{{ .owner }}", name: "{{ .repo }}") { + stargazers(first: 100, orderBy: {field: STARRED_AT, direction: ASC}{{ .cursor }}) { + pageInfo { endCursor hasNextPage } + edges { + starred_at: starredAt + user: node { + login + id + database_id: databaseId + name + company + location + url + avatar_url: avatarUrl + } + } + } + } + } + x-stackql-protocol: graphql + externalDocs: + description: GitHub GraphQL API documentation + url: https://docs.github.com/graphql + parameters: + - name: owner + in: query + required: true + schema: + type: string + description: The account owner of the repository. + - name: repo + in: query + required: true + schema: + type: string + description: The name of the repository. + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + repository: + type: object + properties: + stargazers: + type: object + properties: + edges: + type: array + items: + type: object + properties: + starred_at: + type: string + format: date-time + description: When the star was given. + user: + type: object + description: The user who starred the repository (`login`, `id`, `database_id`, `name`, `company`, `location`, `url`, `avatar_url`). + properties: + login: + type: string + id: + type: string + database_id: + type: integer + name: + type: string + company: + type: string + location: + type: string + url: + type: string + avatar_url: + type: string + pageInfo: + type: object + properties: + endCursor: + type: string + hasNextPage: + type: boolean components: schemas: event: @@ -1600,9 +1526,7 @@ components: has_pull_requests: type: boolean pull_request_creation_policy: - description: >- - The policy controlling who can create pull requests: all or - collaborators_only. + description: 'The policy controlling who can create pull requests: all or collaborators_only.' type: string enum: - all @@ -1755,9 +1679,7 @@ components: example: v1.0.0 type: string target_commitish: - description: >- - Specifies the commitish value that determines where the Git - tag is created from. + description: Specifies the commitish value that determines where the Git tag is created from. example: master type: string name: @@ -1767,15 +1689,11 @@ components: type: string nullable: true draft: - description: >- - true to create a draft (unpublished) release, false to - create a published one. + 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. + description: Whether to identify the release as a prerelease or a full release. example: false type: boolean immutable: @@ -1895,8 +1813,7 @@ components: current_user_organization_urls: type: array example: - - >- - https://github.com/organizations/github/octocat.private.atom?token=abc123 + - https://github.com/organizations/github/octocat.private.atom?token=abc123 items: type: string format: uri @@ -2150,9 +2067,7 @@ components: type: boolean example: true ignored: - description: >- - Determines if all notifications should be blocked from this - repository. + description: Determines if all notifications should be blocked from this repository. type: boolean reason: type: string @@ -2239,8 +2154,7 @@ components: 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} + 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} @@ -2252,8 +2166,7 @@ components: 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} + 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} @@ -2262,8 +2175,7 @@ components: 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} + 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} @@ -2301,12 +2213,10 @@ components: 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} + 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} + 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} @@ -2329,8 +2239,7 @@ components: 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} + 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} @@ -2400,9 +2309,7 @@ components: 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. + 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: @@ -2413,9 +2320,7 @@ components: type: integer example: 0 is_template: - description: >- - Whether this repository acts as a template that can be used to - generate new repositories. + description: Whether this repository acts as a template that can be used to generate new repositories. default: false type: boolean example: true @@ -2457,9 +2362,7 @@ components: type: boolean example: true pull_request_creation_policy: - description: >- - The policy controlling who can create pull requests: all or - collaborators_only. + description: 'The policy controlling who can create pull requests: all or collaborators_only.' type: string enum: - all @@ -2514,19 +2417,13 @@ components: 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. + 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. + 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: @@ -2534,14 +2431,11 @@ components: enum: - PR_TITLE - COMMIT_OR_PR_TITLE - description: >- + description: |- 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). + - `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: @@ -2559,14 +2453,11 @@ components: enum: - PR_TITLE - MERGE_MESSAGE - description: >- + description: |- 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). + - `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: @@ -2841,8 +2732,7 @@ components: 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} + 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} @@ -2854,8 +2744,7 @@ components: 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} + 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} @@ -2864,8 +2753,7 @@ components: 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} + 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} @@ -2902,12 +2790,10 @@ components: type: string issue_comment_url: type: string - example: >- - http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + 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} + 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} @@ -2930,8 +2816,7 @@ components: 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} + 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} @@ -2990,9 +2875,7 @@ components: 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. + 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 @@ -3019,9 +2902,7 @@ components: has_pull_requests: type: boolean pull_request_creation_policy: - description: >- - The policy controlling who can create pull requests: all or - collaborators_only. + description: 'The policy controlling who can create pull requests: all or collaborators_only.' type: string enum: - all @@ -3106,10 +2987,7 @@ components: $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. + 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 @@ -3428,9 +3306,7 @@ components: has_pull_requests: type: boolean pull_request_creation_policy: - description: >- - The policy controlling who can create pull requests: all or - collaborators_only. + description: 'The policy controlling who can create pull requests: all or collaborators_only.' type: string enum: - all @@ -3904,9 +3780,7 @@ components: example: v1.0.0 type: string target_commitish: - description: >- - Specifies the commitish value that determines where the Git tag - is created from. + description: Specifies the commitish value that determines where the Git tag is created from. example: master type: string name: @@ -3916,15 +3790,11 @@ components: type: string nullable: true draft: - description: >- - true to create a draft (unpublished) release, false to create a - published one. + 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. + description: Whether to identify the release as a prerelease or a full release. example: false type: boolean immutable: @@ -4194,107 +4064,52 @@ components: example: https://api.github.com/codes_of_conduct/contributor_covenant body: type: string - example: > + example: | # Contributor Covenant Code of Conduct - ## Our Pledge - - In 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. - + In 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. ## Our Standards - - Examples of behavior that contributes to creating a positive - environment include: - + Examples of behavior that contributes to creating a positive environment include: * Using welcoming and inclusive language - * Being respectful of differing viewpoints and experiences - * Gracefully accepting constructive criticism - * Focusing on what is best for the community - * Showing empathy towards other community members - Examples of unacceptable behavior by participants include: - - * The use of sexualized language or imagery and unwelcome sexual - attention or advances - - * Trolling, insulting/derogatory comments, and personal or political - attacks - + * The use of sexualized language or imagery and unwelcome sexual attention or advances + * Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment - - * Publishing others' private information, such as a physical or - electronic address, without explicit permission - - * Other conduct which could reasonably be considered inappropriate - in a professional setting - + * Publishing others' private information, such as a physical or electronic address, without explicit permission + * Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities - - Project maintainers are responsible for clarifying the standards of - acceptable behavior and are expected to take appropriate and fair - corrective action in response + Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. - Project 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. - + Project 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. ## Scope - - This 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, + This 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, 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. ## Enforcement + Instances 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. - Instances 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. - - - Project 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. - + Project 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. ## Attribution - - This 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/). + This 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/). html_url: type: string format: uri @@ -4309,12 +4124,10 @@ components: type: object properties: advanced_security: - description: > + description: | Enable or disable GitHub Advanced Security for the repository. - - For standalone Code Scanning or Secret Protection products, this - parameter cannot be used. + For standalone Code Scanning or Secret Protection products, this parameter cannot be used. type: object properties: status: @@ -4335,9 +4148,7 @@ components: type: object properties: status: - description: >- - The enablement status of Dependabot security updates for the - repository. + description: The enablement status of Dependabot security updates for the repository. type: string enum: - enabled @@ -4605,14 +4416,10 @@ components: type: string state: type: string - description: >- + description: |- The current state of the discussion. - - `converting` means that the discussion is being converted from an - issue. - - `transferring` means that the discussion is being transferred from - another repository. + `converting` means that the discussion is being converted from an issue. + `transferring` means that the discussion is being transferred from another repository. enum: - open - closed @@ -4732,9 +4539,7 @@ components: - body issue: title: Issue - description: >- - Issues are a great way to keep track of tasks, enhancements, and bugs - for your projects. + description: Issues are a great way to keep track of tasks, enhancements, and bugs for your projects. type: object properties: id: @@ -4785,20 +4590,13 @@ components: 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? + 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 + 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 @@ -4983,9 +4781,7 @@ components: version: '2026-03-10' label: title: Label - description: >- - Color-coded labels help you categorize and filter your issues (just like - labels in Gmail). + description: Color-coded labels help you categorize and filter your issues (just like labels in Gmail). type: object properties: id: @@ -5075,6 +4871,8 @@ components: $ref: '#/components/schemas/reaction-rollup' pin: $ref: '#/components/schemas/nullable-pinned-issue-comment' + minimized: + $ref: '#/components/schemas/nullable-issue-comment-minimized' required: - id - node_id @@ -5220,9 +5018,7 @@ components: example: v1.0.0 type: string target_commitish: - description: >- - Specifies the commitish value that determines where the Git tag is - created from. + description: Specifies the commitish value that determines where the Git tag is created from. example: master type: string name: @@ -5232,9 +5028,7 @@ components: type: string nullable: true draft: - description: >- - true to create a draft (unpublished) release, false to create a - published one. + description: true to create a draft (unpublished) release, false to create a published one. example: false type: boolean prerelease: @@ -5381,7 +5175,7 @@ components: nullable: true issue-type: title: Issue Type - description: The type of issue. + description: The type assigned to the issue. This is only present for issues in repositories where issue types are supported. type: object nullable: true properties: @@ -5429,11 +5223,7 @@ components: - 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. + 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: @@ -5621,11 +5411,7 @@ components: 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. + 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 @@ -5633,9 +5419,7 @@ components: 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. + 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: @@ -5727,6 +5511,8 @@ components: $ref: '#/components/schemas/reaction-rollup' pin: $ref: '#/components/schemas/nullable-pinned-issue-comment' + minimized: + $ref: '#/components/schemas/nullable-issue-comment-minimized' required: - id - node_id @@ -5764,6 +5550,10 @@ components: type: integer format: int64 example: 1 + issue_field_name: + description: The human-readable name of the issue field. + type: string + example: Priority node_id: type: string example: IFT_GDKND @@ -5773,6 +5563,7 @@ components: enum: - text - single_select + - multi_select - number - date example: text @@ -5782,9 +5573,7 @@ components: type: string example: Sample text single_select_option: - description: >- - Details about the selected option (only present for single_select - fields) + description: Details about the selected option (only present for single_select fields) type: object properties: id: @@ -5805,6 +5594,30 @@ components: - name - color nullable: true + multi_select_options: + description: Details about the selected options + type: array + items: + 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 @@ -5825,6 +5638,19 @@ components: - pinned_at - pinned_by nullable: true + nullable-issue-comment-minimized: + title: Minimized Issue Comment + description: Details about why an issue comment was minimized. + type: object + properties: + reason: + description: The reason the comment was minimized. + type: string + nullable: true + example: low-quality + required: + - reason + nullable: true release-asset: title: Release Asset description: Data related to a release. @@ -5989,20 +5815,14 @@ components: parameters: 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)." + 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 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)." + 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 @@ -6016,19 +5836,14 @@ components: type: string repo: name: repo - description: >- - The name of the repository without the `.git` extension. The name is not - case sensitive. + description: The name of the repository without the `.git` extension. The name is not case sensitive. in: path required: true schema: type: string 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)." + 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 @@ -6043,9 +5858,7 @@ components: default: false participating: name: participating - description: >- - If `true`, only shows notifications in which the user is directly - participating or mentioned. + description: If `true`, only shows notifications in which the user is directly participating or mentioned. in: query required: false schema: @@ -6053,10 +5866,7 @@ components: default: false 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`. + 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: @@ -6064,10 +5874,7 @@ components: format: date-time 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`. + 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: @@ -6075,11 +5882,7 @@ components: 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)). + 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: @@ -6093,9 +5896,7 @@ components: type: string 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. + 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: @@ -6172,8 +5973,7 @@ components: current_user_actor_url: https://github.com/octocat.private.actor?token=abc123 current_user_organization_url: '' current_user_organization_urls: - - >- - https://github.com/organizations/github/octocat.private.atom?token=abc123 + - https://github.com/organizations/github/octocat.private.atom?token=abc123 security_advisories_url: https://github.com/security-advisories _links: timeline: @@ -6195,8 +5995,7 @@ components: href: '' type: '' current_user_organizations: - - href: >- - https://github.com/organizations/github/octocat.private.atom?token=abc123 + - href: https://github.com/organizations/github/octocat.private.atom?token=abc123 type: application/atom+xml security_advisories: href: https://github.com/security-advisories @@ -6273,17 +6072,14 @@ components: 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} + 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} + 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} + 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 @@ -6294,19 +6090,15 @@ components: 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} + 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} + 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 @@ -6321,8 +6113,7 @@ components: 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 + latest_comment_url: https://api.github.com/repos/octokit/octokit.rb/issues/comments/123 type: Issue reason: subscribed unread: true @@ -6332,9 +6123,7 @@ components: 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. + message: Unread notifications couldn't be marked in a single request. Notifications are being marked as read in the background. thread: value: id: '1' @@ -6367,17 +6156,14 @@ components: 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} + 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} + 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} + 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 @@ -6388,18 +6174,15 @@ components: 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} + 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} + 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 @@ -6633,17 +6416,14 @@ components: 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} + 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} + 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} + 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 @@ -6654,18 +6434,15 @@ components: 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} + 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} + 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 @@ -6761,17 +6538,14 @@ components: 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} + 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} + 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} + 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 @@ -6782,19 +6556,15 @@ components: 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} + 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} + 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 @@ -6887,17 +6657,14 @@ components: 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} + 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} + 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} + 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 @@ -6908,18 +6675,15 @@ components: 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} + 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} + 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 @@ -7204,51 +6968,38 @@ components: created_at: '2022-06-07T07:50:26Z' headers: link: - example: >- - ; rel="next", - ; rel="last" + example: ; rel="next", ; rel="last" schema: type: string x-stackQL-resources: - public_events: - id: github.activity.public_events - name: public_events - title: Public Events + events: + id: github.activity.events + name: events + title: Events methods: - list_public_events: - operation: - $ref: '#/paths/~1events/get' - response: - mediaType: application/json - openAPIDocKey: '200' - list_public_events_for_repo_network: + list_repo_events: operation: - $ref: '#/paths/~1networks~1{owner}~1{repo}~1events/get' + $ref: '#/paths/~1repos~1{owner}~1{repo}~1events/get' response: mediaType: application/json openAPIDocKey: '200' - list_public_org_events: + list_events_for_authenticated_user: operation: - $ref: '#/paths/~1orgs~1{org}~1events/get' + $ref: '#/paths/~1users~1{username}~1events/get' response: mediaType: application/json openAPIDocKey: '200' - list_public_events_for_user: + list_org_events_for_authenticated_user: operation: - $ref: '#/paths/~1users~1{username}~1events~1public/get' + $ref: '#/paths/~1users~1{username}~1events~1orgs~1{org}/get' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/public_events/methods/list_public_events_for_repo_network - - $ref: >- - #/components/x-stackQL-resources/public_events/methods/list_public_org_events - - $ref: >- - #/components/x-stackQL-resources/public_events/methods/list_public_events_for_user - - $ref: >- - #/components/x-stackQL-resources/public_events/methods/list_public_events + - $ref: '#/components/x-stackQL-resources/events/methods/list_repo_events' + - $ref: '#/components/x-stackQL-resources/events/methods/list_org_events_for_authenticated_user' + - $ref: '#/components/x-stackQL-resources/events/methods/list_events_for_authenticated_user' insert: [] update: [] delete: [] @@ -7326,18 +7077,14 @@ components: openAPIDocKey: '202' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/notifications/methods/list_repo_notifications_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/notifications/methods/list_repo_notifications_for_authenticated_user' - $ref: '#/components/x-stackQL-resources/notifications/methods/get_thread' - - $ref: >- - #/components/x-stackQL-resources/notifications/methods/list_notifications_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/notifications/methods/list_notifications_for_authenticated_user' insert: [] update: - - $ref: >- - #/components/x-stackQL-resources/notifications/methods/mark_thread_as_read + - $ref: '#/components/x-stackQL-resources/notifications/methods/mark_thread_as_read' delete: - - $ref: >- - #/components/x-stackQL-resources/notifications/methods/mark_thread_as_done + - $ref: '#/components/x-stackQL-resources/notifications/methods/mark_thread_as_done' replace: [] notifications_thread_subscriptions: id: github.activity.notifications_thread_subscriptions @@ -7367,84 +7114,102 @@ components: openAPIDocKey: '204' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/notifications_thread_subscriptions/methods/get_thread_subscription_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/notifications_thread_subscriptions/methods/get_thread_subscription_for_authenticated_user' insert: [] update: [] delete: - - $ref: >- - #/components/x-stackQL-resources/notifications_thread_subscriptions/methods/delete_thread_subscription + - $ref: '#/components/x-stackQL-resources/notifications_thread_subscriptions/methods/delete_thread_subscription' replace: - - $ref: >- - #/components/x-stackQL-resources/notifications_thread_subscriptions/methods/set_thread_subscription - events: - id: github.activity.events - name: events - title: Events + - $ref: '#/components/x-stackQL-resources/notifications_thread_subscriptions/methods/set_thread_subscription' + public_events: + id: github.activity.public_events + name: public_events + title: Public Events methods: - list_repo_events: + list_public_events: operation: - $ref: '#/paths/~1repos~1{owner}~1{repo}~1events/get' + $ref: '#/paths/~1events/get' response: mediaType: application/json openAPIDocKey: '200' - list_events_for_authenticated_user: + list_public_events_for_repo_network: operation: - $ref: '#/paths/~1users~1{username}~1events/get' + $ref: '#/paths/~1networks~1{owner}~1{repo}~1events/get' response: mediaType: application/json openAPIDocKey: '200' - list_org_events_for_authenticated_user: + list_public_org_events: operation: - $ref: '#/paths/~1users~1{username}~1events~1orgs~1{org}/get' + $ref: '#/paths/~1orgs~1{org}~1events/get' + response: + mediaType: application/json + openAPIDocKey: '200' + list_public_events_for_user: + operation: + $ref: '#/paths/~1users~1{username}~1events~1public/get' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/events/methods/list_repo_events' - - $ref: >- - #/components/x-stackQL-resources/events/methods/list_org_events_for_authenticated_user - - $ref: >- - #/components/x-stackQL-resources/events/methods/list_events_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/public_events/methods/list_public_events_for_repo_network' + - $ref: '#/components/x-stackQL-resources/public_events/methods/list_public_org_events' + - $ref: '#/components/x-stackQL-resources/public_events/methods/list_public_events_for_user' + - $ref: '#/components/x-stackQL-resources/public_events/methods/list_public_events' insert: [] update: [] delete: [] replace: [] - repo_stargazers: - id: github.activity.repo_stargazers - name: repo_stargazers - title: Repo Stargazers + received_events: + id: github.activity.received_events + name: received_events + title: Received Events methods: - list_stargazers_for_repo: + list_received_events_for_user: operation: - $ref: '#/paths/~1repos~1{owner}~1{repo}~1stargazers/get' + $ref: '#/paths/~1users~1{username}~1received_events/get' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/repo_stargazers/methods/list_stargazers_for_repo + - $ref: '#/components/x-stackQL-resources/received_events/methods/list_received_events_for_user' insert: [] update: [] delete: [] replace: [] - repo_watchers: - id: github.activity.repo_watchers - name: repo_watchers - title: Repo Watchers + received_public_events: + id: github.activity.received_public_events + name: received_public_events + title: Received Public Events methods: - list_watchers_for_repo: + list_received_public_events_for_user: operation: - $ref: '#/paths/~1repos~1{owner}~1{repo}~1subscribers/get' + $ref: '#/paths/~1users~1{username}~1received_events~1public/get' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/repo_watchers/methods/list_watchers_for_repo + - $ref: '#/components/x-stackQL-resources/received_public_events/methods/list_received_public_events_for_user' + insert: [] + update: [] + delete: [] + replace: [] + repo_stargazers: + id: github.activity.repo_stargazers + name: repo_stargazers + title: Repo Stargazers + methods: + list_stargazers_for_repo: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1stargazers/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/repo_stargazers/methods/list_stargazers_for_repo' insert: [] update: [] delete: [] @@ -7477,16 +7242,51 @@ components: openAPIDocKey: '204' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/repo_subscriptions/methods/get_repo_subscription + - $ref: '#/components/x-stackQL-resources/repo_subscriptions/methods/get_repo_subscription' insert: [] update: [] delete: - - $ref: >- - #/components/x-stackQL-resources/repo_subscriptions/methods/delete_repo_subscription + - $ref: '#/components/x-stackQL-resources/repo_subscriptions/methods/delete_repo_subscription' replace: - - $ref: >- - #/components/x-stackQL-resources/repo_subscriptions/methods/set_repo_subscription + - $ref: '#/components/x-stackQL-resources/repo_subscriptions/methods/set_repo_subscription' + repo_watchers: + id: github.activity.repo_watchers + name: repo_watchers + title: Repo Watchers + methods: + list_watchers_for_repo: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1subscribers/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/repo_watchers/methods/list_watchers_for_repo' + insert: [] + update: [] + delete: [] + replace: [] + star_history: + id: github.activity.star_history + name: star_history + title: Star History + methods: + list: + operation: + $ref: '#/paths/~1graphql?resource=star_history/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.repository.stargazers.edges + x-stackql-protocol: graphql + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/star_history/methods/list' + insert: [] + update: [] + delete: [] + replace: [] starring: id: github.activity.starring name: starring @@ -7524,10 +7324,8 @@ components: openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/starring/methods/list_repos_starred_by_user - - $ref: >- - #/components/x-stackQL-resources/starring/methods/list_repos_starred_by_authenticated_user + - $ref: '#/components/x-stackQL-resources/starring/methods/list_repos_starred_by_user' + - $ref: '#/components/x-stackQL-resources/starring/methods/list_repos_starred_by_authenticated_user' insert: [] update: [] delete: [] @@ -7551,51 +7349,19 @@ components: openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/watching/methods/list_repos_watched_by_user - - $ref: >- - #/components/x-stackQL-resources/watching/methods/list_watched_repos_for_authenticated_user - insert: [] - update: [] - delete: [] - replace: [] - received_events: - id: github.activity.received_events - name: received_events - title: Received Events - methods: - list_received_events_for_user: - operation: - $ref: '#/paths/~1users~1{username}~1received_events/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: >- - #/components/x-stackQL-resources/received_events/methods/list_received_events_for_user - insert: [] - update: [] - delete: [] - replace: [] - received_public_events: - id: github.activity.received_public_events - name: received_public_events - title: Received Public Events - methods: - list_received_public_events_for_user: - operation: - $ref: '#/paths/~1users~1{username}~1received_events~1public/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: >- - #/components/x-stackQL-resources/received_public_events/methods/list_received_public_events_for_user + - $ref: '#/components/x-stackQL-resources/watching/methods/list_repos_watched_by_user' + - $ref: '#/components/x-stackQL-resources/watching/methods/list_watched_repos_for_authenticated_user' insert: [] update: [] delete: [] replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/agent_tasks.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/agent_tasks.yaml index 3f43328..451273a 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/agent_tasks.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/agent_tasks.yaml @@ -7,11 +7,36 @@ paths: /agents/repos/{owner}/{repo}/tasks: get: summary: List tasks for repository - description: | + description: > > [!NOTE] + > This endpoint is in public preview and is subject to change. + Returns a list of tasks for a specific repository + + + **Fine-grained access tokens for "List tasks for repository"** + + + This endpoint works with the following fine-grained token types: + + + * [GitHub App user access + tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app) + + * [Fine-grained personal access + tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) + + + The fine-grained token must have the following permission set: + + + * "Agent tasks" repository permissions (read) + + + GitHub App installation access tokens are not supported for this + endpoint. tags: - agent-tasks operationId: agent-tasks/list-tasks-for-repo @@ -96,8 +121,10 @@ paths: - name: creator_id in: query schema: - type: integer - description: Filter tasks by creator user ID + type: array + items: + type: integer + description: Filter tasks by creator user ID. Accepts one or more user IDs. responses: '200': description: Tasks retrieved successfully @@ -275,6 +302,18 @@ paths: type: string format: date-time description: Timestamp when the task was created + custom_agent: + type: object + description: Custom agent metadata associated with this task + properties: + id: + type: string + description: >- + The custom agent's filename without the + extension - for example, `performance-optimizer` + for a + `.github/agents/performance-optimizer.agent.md` + custom agent. description: List of tasks total_active_count: type: integer @@ -563,18 +602,47 @@ paths: description: URL to relevant API documentation x-stackQL-resource: agent_tasks post: - summary: Create a task - description: | + summary: Start a task + description: > > [!NOTE] + > This endpoint is in public preview and is subject to change. - Creates a new task for a repository. + + Starts a new Copilot cloud agent task for a repository. + + + This endpoint is only available to users with a Copilot Business or + Copilot Enterprise subscription. + + + **Fine-grained access tokens for "Start a task"** + + + This endpoint works with the following fine-grained token types: + + + * [GitHub App user access + tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app) + + * [Fine-grained personal access + tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) + + + The fine-grained token must have the following permission set: + + + * "Agent tasks" repository permissions (read and write) + + + GitHub App installation access tokens are not supported for this + endpoint. tags: - agent-tasks - operationId: agent-tasks/create-task + operationId: agent-tasks/create-task-in-repo externalDocs: description: API method documentation - url: https://docs.github.com/rest/agent-tasks/agent-tasks#create-a-task + url: https://docs.github.com/rest/agent-tasks/agent-tasks#start-a-task x-github: githubCloudOnly: false enabledForGitHubApps: true @@ -595,6 +663,9 @@ paths: description: The name of the repository. The name is not case sensitive. requestBody: required: true + description: >- + The task creation parameters, including the user's prompt and optional + agent settings. content: application/json: schema: @@ -614,6 +685,14 @@ paths: `claude-sonnet-4.6`, `claude-opus-4.6`, `gpt-5.2-codex`, `gpt-5.3-codex`, `gpt-5.4`, `claude-sonnet-4.5`, `claude-opus-4.5` + custom_agent: + type: string + description: >- + Optional identifier for a custom agent to use for this task. + Use the custom agent's filename without the extension - for + example, for a + `.github/agents/performance-optimizer.agent.md` custom + agent, use `performance-optimizer`. create_pull_request: type: boolean description: Whether to create a PR. @@ -621,11 +700,24 @@ paths: base_ref: type: string description: Base ref for new branch/PR + head_ref: + type: string + description: >- + Head ref for existing branch/PR. If provided with + `base_ref`, the agent looks up open PR context for + `head_ref` targeting `base_ref` and commits to `head_ref` + instead of creating a new branch. examples: default: value: prompt: Fix the login button on the homepage base_ref: main + with-custom-agent: + summary: Task with a custom agent + value: + prompt: Fix the login button on the homepage + base_ref: main + custom_agent: my-custom-agent responses: '201': description: Task created successfully @@ -774,6 +866,17 @@ paths: type: string format: date-time description: Timestamp when the task was created + custom_agent: + type: object + description: Custom agent metadata associated with this task + properties: + id: + type: string + description: >- + The custom agent's filename without the extension - + for example, `performance-optimizer` for a + `.github/agents/performance-optimizer.agent.md` custom + agent. examples: default: value: @@ -796,6 +899,30 @@ paths: archived_at: null created_at: '2025-01-01T00:00:00Z' updated_at: '2025-01-01T00:00:00Z' + with-custom-agent: + summary: Task created with a custom agent + value: + id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 + url: >- + https://api.github.com/agents/repos/octocat/hello-world/tasks/a1b2c3d4-e5f6-7890-abcd-ef1234567890 + html_url: >- + https://github.com/octocat/hello-world/copilot/tasks/a1b2c3d4-e5f6-7890-abcd-ef1234567890 + name: Fix the login button on the homepage + creator: + id: 1 + creator_type: user + owner: + id: 1 + repository: + id: 1296269 + state: queued + session_count: 1 + custom_agent: + id: my-custom-agent + artifacts: [] + archived_at: null + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T00:00:00Z' '400': description: Problems parsing JSON content: @@ -1000,11 +1127,36 @@ paths: /agents/repos/{owner}/{repo}/tasks/{task_id}: get: summary: Get a task by repo - description: | + description: > > [!NOTE] + > This endpoint is in public preview and is subject to change. + Returns a task by ID scoped to an owner/repo path + + + **Fine-grained access tokens for "Get a task by repo"** + + + This endpoint works with the following fine-grained token types: + + + * [GitHub App user access + tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app) + + * [Fine-grained personal access + tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) + + + The fine-grained token must have the following permission set: + + + * "Agent tasks" repository permissions (read) + + + GitHub App installation access tokens are not supported for this + endpoint. tags: - agent-tasks operationId: agent-tasks/get-task-by-repo-and-id @@ -1186,6 +1338,17 @@ paths: type: string format: date-time description: Timestamp when the task was created + custom_agent: + type: object + description: Custom agent metadata associated with this task + properties: + id: + type: string + description: >- + The custom agent's filename without the extension - + for example, `performance-optimizer` for a + `.github/agents/performance-optimizer.agent.md` custom + agent. sessions: type: array items: @@ -1265,6 +1428,39 @@ paths: model: type: string description: Model used for this session + usage: + type: object + description: >- + Structured information about billing units consumed + by the session. + required: + - type + - amount + properties: + type: + type: string + description: >- + Billing unit used for this session. New sessions + since June 1, 2026 use `ai_credits`, but older + sessions use `premium_requests`. + enum: + - ai_credits + - premium_requests + amount: + type: number + format: double + description: >- + Number of billing units used by this session. + When the `type` is `ai_credits`, the value is a + whole number, expressed in nano units. When + presenting this to a human, divide by + 1,000,000,000 and round to one decimal place. + When aggregating (for example, summing usage + across sessions), sum the nano values first, and + divide once at the end before presenting to a + human to avoid losing precision. When the `type` + is `premium_requests`, the value may be + fractional (for example `1.5`). error: type: object description: Error details for a failed session @@ -1571,11 +1767,36 @@ paths: /agents/tasks: get: summary: List tasks - description: | + description: > > [!NOTE] + > This endpoint is in public preview and is subject to change. + Returns a list of tasks for the authenticated user + + + **Fine-grained access tokens for "List tasks"** + + + This endpoint works with the following fine-grained token types: + + + * [GitHub App user access + tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app) + + * [Fine-grained personal access + tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) + + + The fine-grained token must have the following permission set: + + + * "Agent tasks" repository permissions (read) + + + GitHub App installation access tokens are not supported for this + endpoint. tags: - agent-tasks operationId: agent-tasks/list-tasks @@ -1819,6 +2040,18 @@ paths: type: string format: date-time description: Timestamp when the task was created + custom_agent: + type: object + description: Custom agent metadata associated with this task + properties: + id: + type: string + description: >- + The custom agent's filename without the + extension - for example, `performance-optimizer` + for a + `.github/agents/performance-optimizer.agent.md` + custom agent. description: List of tasks total_active_count: type: integer @@ -2055,11 +2288,36 @@ paths: /agents/tasks/{task_id}: get: summary: Get a task by ID - description: | + description: > > [!NOTE] + > This endpoint is in public preview and is subject to change. + Returns a task by ID with its associated sessions + + + **Fine-grained access tokens for "Get a task by ID"** + + + This endpoint works with the following fine-grained token types: + + + * [GitHub App user access + tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app) + + * [Fine-grained personal access + tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) + + + The fine-grained token must have the following permission set: + + + * "Agent tasks" repository permissions (read) + + + GitHub App installation access tokens are not supported for this + endpoint. tags: - agent-tasks operationId: agent-tasks/get-task-by-id @@ -2228,6 +2486,17 @@ paths: type: string format: date-time description: Timestamp when the task was created + custom_agent: + type: object + description: Custom agent metadata associated with this task + properties: + id: + type: string + description: >- + The custom agent's filename without the extension - + for example, `performance-optimizer` for a + `.github/agents/performance-optimizer.agent.md` custom + agent. sessions: type: array items: @@ -2307,6 +2576,39 @@ paths: model: type: string description: Model used for this session + usage: + type: object + description: >- + Structured information about billing units consumed + by the session. + required: + - type + - amount + properties: + type: + type: string + description: >- + Billing unit used for this session. New sessions + since June 1, 2026 use `ai_credits`, but older + sessions use `premium_requests`. + enum: + - ai_credits + - premium_requests + amount: + type: number + format: double + description: >- + Number of billing units used by this session. + When the `type` is `ai_credits`, the value is a + whole number, expressed in nano units. When + presenting this to a human, divide by + 1,000,000,000 and round to one decimal place. + When aggregating (for example, summing usage + across sessions), sum the nano values first, and + divide once at the end before presenting to a + human to avoid losing precision. When the `type` + is `premium_requests`, the value may be + fractional (for example `1.5`). error: type: object description: Error details for a failed session @@ -2624,7 +2926,7 @@ components: mediaType: application/json openAPIDocKey: '200' objectKey: $.tasks - create_task: + create_task_in_repo: config: requestBodyTranslate: algorithm: naive @@ -2647,7 +2949,8 @@ components: - $ref: >- #/components/x-stackQL-resources/repo_tasks/methods/list_tasks_for_repo insert: - - $ref: '#/components/x-stackQL-resources/repo_tasks/methods/create_task' + - $ref: >- + #/components/x-stackQL-resources/repo_tasks/methods/create_task_in_repo update: [] delete: [] replace: [] @@ -2680,3 +2983,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/agents.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/agents.yaml new file mode 100644 index 0000000..3ca836b --- /dev/null +++ b/provider-dev/openapi/src/github/v00.00.00000/services/agents.yaml @@ -0,0 +1,3065 @@ +openapi: 3.0.3 +info: + title: agents API + description: Endpoints for Agents secrets and variables. + version: 1.1.4 +paths: + /orgs/{org}/agents/secrets: + get: + summary: List organization secrets + description: >- + 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. + tags: + - agents + operationId: agents/list-org-secrets + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/secrets#list-organization-secrets + parameters: + - $ref: '#/components/parameters/org' + - $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/organization-actions-secret' + examples: + default: + $ref: '#/components/examples/organization-actions-secret-paginated' + headers: + Link: + $ref: '#/components/headers/link' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + /orgs/{org}/agents/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. + + + 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. + tags: + - agents + operationId: agents/get-org-public-key + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/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' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + /orgs/{org}/agents/secrets/{secret_name}: + get: + summary: Get an organization secret + description: >- + 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. + tags: + - agents + operationId: agents/get-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/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: agents + subcategory: secrets + x-stackQL-resource: secrets + put: + summary: Create or update an organization secret + description: >- + 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. + tags: + - agents + operationId: agents/create-or-update-org-secret + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/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: + 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/agents/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/agents/secrets#list-selected-repositories-for-an-organization-secret), + [Set selected repositories for an organization + secret](https://docs.github.com/rest/agents/secrets#set-selected-repositories-for-an-organization-secret), + and [Remove selected repository from an organization + secret](https://docs.github.com/rest/agents/secrets#remove-selected-repository-from-an-organization-secret) + endpoints. + items: + type: integer + required: + - encrypted_value + - key_id + - visibility + examples: + default: + value: + encrypted_value: c2VjcmV0 + key_id: '012345678912345678' + visibility: selected + selected_repository_ids: + - 1296269 + - 1296280 + responses: + '201': + description: Response when creating a secret + content: + application/json: + schema: + $ref: '#/components/schemas/empty-object' + examples: + default: + value: null + '204': + description: Response when updating a secret + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + delete: + summary: Delete an organization secret + description: >- + 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. + tags: + - agents + operationId: agents/delete-org-secret + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/secrets#delete-an-organization-secret + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/secret-name' + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + /orgs/{org}/agents/secrets/{secret_name}/repositories: + 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`. + + + 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. + tags: + - agents + operationId: agents/list-selected-repos-for-org-secret + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/secrets#list-selected-repositories-for-an-organization-secret + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/secret-name' + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/per-page' + 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/public-repository-paginated' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + 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/agents/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. + tags: + - agents + operationId: agents/set-selected-repos-for-org-secret + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/secrets#set-selected-repositories-for-an-organization-secret + parameters: + - $ref: '#/components/parameters/org' + - $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/agents/secrets#add-selected-repository-to-an-organization-secret) + and [Remove selected repository from an organization + secret](https://docs.github.com/rest/agents/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 + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + /orgs/{org}/agents/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 + + 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/agents/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. + tags: + - agents + operationId: agents/add-selected-repo-to-org-secret + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/secrets#add-selected-repository-to-an-organization-secret + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/secret-name' + - name: repository_id + in: path + required: true + schema: + type: integer + responses: + '204': + description: No Content when repository was added to the selected list + '409': + description: Conflict when visibility type is not set to selected + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + 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/agents/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. + tags: + - agents + operationId: agents/remove-selected-repo-from-org-secret + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/secrets#remove-selected-repository-from-an-organization-secret + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/secret-name' + - name: repository_id + in: path + required: true + schema: + type: integer + responses: + '204': + description: Response when repository was removed from the selected list + '409': + description: Conflict when visibility type not set to selected + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + /orgs/{org}/agents/variables: + get: + summary: List organization variables + description: >- + Lists all agent variables available in an organization. + + Returned variables include their values. + + + 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. + tags: + - agents + operationId: agents/list-org-variables + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/variables#list-organization-variables + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/variables-per-page' + - $ref: '#/components/parameters/page' + responses: + '200': + description: Response + content: + application/json: + schema: + 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/organization-actions-variables-paginated + headers: + Link: + $ref: '#/components/headers/link' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + post: + summary: Create an organization variable + description: >- + Creates an organization agent 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. + tags: + - agents + operationId: agents/create-org-variable + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/variables#create-an-organization-variable + parameters: + - $ref: '#/components/parameters/org' + 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 + required: + - name + - value + - visibility + examples: + default: + value: + name: USERNAME + value: octocat + visibility: selected + selected_repository_ids: + - 1296269 + - 1296280 + responses: + '201': + description: Response when creating a variable + content: + application/json: + schema: + $ref: '#/components/schemas/empty-object' + examples: + default: + value: null + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + /orgs/{org}/agents/variables/{name}: + get: + summary: Get an organization variable + description: >- + Gets a specific agent 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. + tags: + - agents + operationId: agents/get-org-variable + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/variables#get-an-organization-variable + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/variable-name' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/organization-actions-variable' + examples: + default: + $ref: '#/components/examples/organization-actions-variable' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + patch: + summary: Update an organization variable + description: >- + Updates an organization agent 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. + tags: + - agents + operationId: agents/update-org-variable + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/variables#update-an-organization-variable + parameters: + - $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 + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + delete: + summary: Delete an organization variable + description: >- + Deletes an organization agent 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. + tags: + - agents + operationId: agents/delete-org-variable + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/variables#delete-an-organization-variable + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/variable-name' + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + /orgs/{org}/agents/variables/{name}/repositories: + get: + summary: List selected repositories for an organization variable + description: >- + Lists all repositories that can access an organization agent 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. + tags: + - agents + operationId: agents/list-selected-repos-for-org-variable + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/variables#list-selected-repositories-for-an-organization-variable + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/variable-name' + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/per-page' + 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/public-repository-paginated' + '409': + description: >- + Response when the visibility of the variable is not set to + `selected` + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + put: + summary: Set selected repositories for an organization variable + description: >- + Replaces all repositories for an organization agent 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. + tags: + - agents + operationId: agents/set-selected-repos-for-org-variable + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/variables#set-selected-repositories-for-an-organization-variable + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/variable-name' + 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 + 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: true + category: agents + subcategory: variables + x-stackQL-resource: variables + /orgs/{org}/agents/variables/{name}/repositories/{repository_id}: + put: + summary: Add selected repository to an organization variable + description: >- + Adds a repository to an organization agent 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 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: + - agents + operationId: agents/add-selected-repo-to-org-variable + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/variables#add-selected-repository-to-an-organization-variable + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/variable-name' + - name: repository_id + in: path + required: true + schema: + type: integer + responses: + '204': + description: Response + '409': + description: >- + Response when the visibility of the variable is not set to + `selected` + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + delete: + summary: Remove selected repository from an organization variable + description: >- + Removes a repository from an organization agent 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. + tags: + - agents + operationId: agents/remove-selected-repo-from-org-variable + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/variables#remove-selected-repository-from-an-organization-variable + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/variable-name' + - name: repository_id + in: path + required: true + schema: + type: integer + responses: + '204': + description: Response + '409': + description: >- + Response when the visibility of the variable is not set to + `selected` + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + /repos/{owner}/{repo}/agents/organization-secrets: + get: + summary: List repository organization secrets + description: >- + 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. + tags: + - agents + operationId: agents/list-repo-organization-secrets + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/secrets#list-repository-organization-secrets + 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 + required: + - total_count + - secrets + properties: + total_count: + type: integer + secrets: + type: array + items: + $ref: '#/components/schemas/actions-secret' + examples: + default: + $ref: '#/components/examples/actions-secret-paginated' + headers: + Link: + $ref: '#/components/headers/link' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + /repos/{owner}/{repo}/agents/organization-variables: + get: + summary: List repository organization variables + description: >- + 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. + tags: + - agents + operationId: agents/list-repo-organization-variables + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/variables#list-repository-organization-variables + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/variables-per-page' + - $ref: '#/components/parameters/page' + responses: + '200': + description: Response + content: + application/json: + schema: + 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/actions-variables-paginated' + headers: + Link: + $ref: '#/components/headers/link' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + /repos/{owner}/{repo}/agents/secrets: + get: + summary: List repository secrets + description: >- + Lists all secrets available in 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. + tags: + - agents + operationId: agents/list-repo-secrets + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/secrets#list-repository-secrets + 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 + required: + - total_count + - secrets + properties: + total_count: + type: integer + secrets: + type: array + items: + $ref: '#/components/schemas/actions-secret' + examples: + default: + $ref: '#/components/examples/actions-secret-paginated' + headers: + Link: + $ref: '#/components/headers/link' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + /repos/{owner}/{repo}/agents/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, OAuth tokens and personal access tokens + (classic) need the `repo` scope to use this endpoint. + tags: + - agents + operationId: agents/get-repo-public-key + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/secrets#get-a-repository-public-key + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + responses: + '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 + category: agents + subcategory: secrets + x-stackQL-resource: secrets + /repos/{owner}/{repo}/agents/secrets/{secret_name}: + get: + summary: Get a repository secret + description: >- + Gets a single repository secret without revealing its encrypted value. + + + 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. + tags: + - agents + operationId: agents/get-repo-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/secrets#get-a-repository-secret + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/secret-name' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/actions-secret' + examples: + default: + $ref: '#/components/examples/actions-secret' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + put: + summary: Create or update a repository secret + description: >- + 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)." + + + 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. + tags: + - agents + operationId: agents/create-or-update-repo-secret + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/secrets#create-or-update-a-repository-secret + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $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 a repository + public + key](https://docs.github.com/rest/agents/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: + - encrypted_value + - key_id + examples: + default: + value: + encrypted_value: c2VjcmV0 + key_id: '012345678912345678' + responses: + '201': + description: Response when creating a secret + content: + application/json: + schema: + $ref: '#/components/schemas/empty-object' + examples: + default: + value: null + '204': + description: Response when updating a secret + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + delete: + summary: Delete a repository secret + description: >- + Deletes a secret in a repository 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 `repo` scope + to use this endpoint. + tags: + - agents + operationId: agents/delete-repo-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/secrets#delete-a-repository-secret + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/secret-name' + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + /repos/{owner}/{repo}/agents/variables: + get: + summary: List repository variables + description: >- + 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. + tags: + - agents + operationId: agents/list-repo-variables + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/variables#list-repository-variables + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/variables-per-page' + - $ref: '#/components/parameters/page' + responses: + '200': + description: Response + content: + application/json: + schema: + 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/actions-variables-paginated' + headers: + Link: + $ref: '#/components/headers/link' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + post: + summary: Create a repository variable + description: >- + 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. + tags: + - agents + operationId: agents/create-repo-variable + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/variables#create-a-repository-variable + 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 variable. + value: + type: string + description: The value of the variable. + required: + - name + - value + examples: + default: + value: + name: USERNAME + value: octocat + responses: + '201': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/empty-object' + examples: + default: + value: null + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + /repos/{owner}/{repo}/agents/variables/{name}: + get: + summary: Get a repository variable + description: >- + Gets a specific variable in a repository. + + + 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. + tags: + - agents + operationId: agents/get-repo-variable + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/variables#get-a-repository-variable + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/variable-name' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/actions-variable' + examples: + default: + $ref: '#/components/examples/actions-variable' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + patch: + summary: Update a repository variable + description: >- + Updates 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 app tokens and personal access tokens (classic) need the `repo` + scope to use this endpoint. + tags: + - agents + operationId: agents/update-repo-variable + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/variables#update-a-repository-variable + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $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. + examples: + default: + value: + name: USERNAME + value: octocat + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + delete: + summary: Delete a repository variable + description: >- + Deletes a repository 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. + tags: + - agents + operationId: agents/delete-repo-variable + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/agents/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: agents + subcategory: variables + x-stackQL-resource: variables +components: + schemas: + 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 + empty-object: + title: Empty Object + description: An object without any properties. + type: object + properties: {} + additionalProperties: false + 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 + pull_request_creation_policy: + description: >- + The policy controlling who can create pull requests: all or + collaborators_only. + type: string + enum: + - all + - collaborators_only + 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 + x-github-breaking-changes: + - changeset: remove_has_downloads + patch: + properties: + has_downloads: null + type: object + version: '2026-03-10' + 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 + 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 + 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 + 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 + + + ## Our Pledge + + + In 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. + + + ## Our Standards + + + Examples of behavior that contributes to creating a positive + environment include: + + + * Using welcoming and inclusive language + + * Being respectful of differing viewpoints and experiences + + * Gracefully accepting constructive criticism + + * Focusing on what is best for the community + + * Showing empathy towards other community members + + + Examples of unacceptable behavior by participants include: + + + * The use of sexualized language or imagery and unwelcome sexual + attention or advances + + * Trolling, insulting/derogatory comments, and personal or political + attacks + + * Public or private harassment + + * Publishing others' private information, such as a physical or + electronic address, without explicit permission + + * Other conduct which could reasonably be considered inappropriate + in a professional setting + + + ## Our Responsibilities + + + Project maintainers are responsible for clarifying the standards of + acceptable behavior and are expected to take appropriate and fair + corrective action in response + to any instances of unacceptable behavior. + + Project 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. + + + ## Scope + + + This 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, + 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. + + ## Enforcement + + + Instances 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. + + + Project 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. + + + ## Attribution + + + This 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/). + html_url: + type: string + format: uri + nullable: true + required: + - url + - html_url + - key + - name + security-and-analysis: + nullable: true + type: object + properties: + advanced_security: + description: > + Enable or disable GitHub Advanced Security for the repository. + + + For standalone Code Scanning or Secret Protection products, this + parameter cannot be used. + 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 + secret_scanning_delegated_bypass: + type: object + properties: + status: + type: string + enum: + - enabled + - disabled + secret_scanning_delegated_bypass_options: + type: object + 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 + mode: + type: string + description: The bypass mode for the reviewer + enum: + - ALWAYS + - EXEMPT + default: ALWAYS + parameters: + org: + name: org + description: The organization name. The name is not case sensitive. + in: path + required: true + schema: + type: string + 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 + 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 + 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 + 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 + examples: + organization-actions-secret-paginated: + value: + 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 + 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 + 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 + organization-actions-variables-paginated: + value: + total_count: 3 + variables: + - name: USERNAME + value: octocat + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + visibility: private + - 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 + organization-actions-variable: + value: + 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 + 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-secret: + value: + name: GH_TOKEN + created_at: '2019-08-10T14:59:22Z' + 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' + headers: + link: + example: >- + ; rel="next", + ; rel="last" + schema: + type: string + x-stackQL-resources: + secrets: + id: github.agents.secrets + name: secrets + title: Secrets + methods: + list_org_secrets: + operation: + $ref: '#/paths/~1orgs~1{org}~1agents~1secrets/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.secrets + get_org_secret: + operation: + $ref: '#/paths/~1orgs~1{org}~1agents~1secrets~1{secret_name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create_or_update_org_secret: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1orgs~1{org}~1agents~1secrets~1{secret_name}/put' + response: + mediaType: application/json + openAPIDocKey: '201' + delete_org_secret: + operation: + $ref: '#/paths/~1orgs~1{org}~1agents~1secrets~1{secret_name}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + list_repo_secrets: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1agents~1secrets/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.secrets + get_repo_secret: + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1agents~1secrets~1{secret_name}/get + response: + mediaType: application/json + openAPIDocKey: '200' + create_or_update_repo_secret: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1agents~1secrets~1{secret_name}/put + response: + mediaType: application/json + openAPIDocKey: '201' + delete_repo_secret: + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1agents~1secrets~1{secret_name}/delete + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/secrets/methods/get_repo_secret' + - $ref: '#/components/x-stackQL-resources/secrets/methods/get_org_secret' + - $ref: '#/components/x-stackQL-resources/secrets/methods/list_repo_secrets' + - $ref: '#/components/x-stackQL-resources/secrets/methods/list_org_secrets' + insert: + - $ref: >- + #/components/x-stackQL-resources/secrets/methods/create_or_update_repo_secret + - $ref: >- + #/components/x-stackQL-resources/secrets/methods/create_or_update_org_secret + update: [] + delete: + - $ref: >- + #/components/x-stackQL-resources/secrets/methods/delete_repo_secret + - $ref: '#/components/x-stackQL-resources/secrets/methods/delete_org_secret' + replace: [] + public_keys: + id: github.agents.public_keys + name: public_keys + title: Public Keys + methods: + get_org_public_key: + operation: + $ref: '#/paths/~1orgs~1{org}~1agents~1secrets~1public-key/get' + response: + mediaType: application/json + openAPIDocKey: '200' + get_repo_public_key: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1agents~1secrets~1public-key/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/public_keys/methods/get_repo_public_key + - $ref: >- + #/components/x-stackQL-resources/public_keys/methods/get_org_public_key + insert: [] + update: [] + delete: [] + replace: [] + repos_for_secret: + id: github.agents.repos_for_secret + name: repos_for_secret + title: Repos For Secret + methods: + list_selected_repos_for_org_secret: + operation: + $ref: >- + #/paths/~1orgs~1{org}~1agents~1secrets~1{secret_name}~1repositories/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.repositories + set_selected_repos_for_org_secret: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: >- + #/paths/~1orgs~1{org}~1agents~1secrets~1{secret_name}~1repositories/put + response: + mediaType: application/json + openAPIDocKey: '204' + add_selected_repo_to_org_secret: + operation: + $ref: >- + #/paths/~1orgs~1{org}~1agents~1secrets~1{secret_name}~1repositories~1{repository_id}/put + response: + mediaType: application/json + openAPIDocKey: '204' + remove_selected_repo_from_org_secret: + operation: + $ref: >- + #/paths/~1orgs~1{org}~1agents~1secrets~1{secret_name}~1repositories~1{repository_id}/delete + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/repos_for_secret/methods/list_selected_repos_for_org_secret + insert: + - $ref: >- + #/components/x-stackQL-resources/repos_for_secret/methods/add_selected_repo_to_org_secret + update: [] + delete: + - $ref: >- + #/components/x-stackQL-resources/repos_for_secret/methods/remove_selected_repo_from_org_secret + replace: + - $ref: >- + #/components/x-stackQL-resources/repos_for_secret/methods/set_selected_repos_for_org_secret + variables: + id: github.agents.variables + name: variables + title: Variables + methods: + list_org_variables: + operation: + $ref: '#/paths/~1orgs~1{org}~1agents~1variables/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.variables + create_org_variable: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1orgs~1{org}~1agents~1variables/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get_org_variable: + operation: + $ref: '#/paths/~1orgs~1{org}~1agents~1variables~1{name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + update_org_variable: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1orgs~1{org}~1agents~1variables~1{name}/patch' + response: + mediaType: application/json + openAPIDocKey: '204' + delete_org_variable: + operation: + $ref: '#/paths/~1orgs~1{org}~1agents~1variables~1{name}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + list_repo_variables: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1agents~1variables/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.variables + create_repo_variable: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1agents~1variables/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get_repo_variable: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1agents~1variables~1{name}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + update_repo_variable: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1agents~1variables~1{name}/patch' + response: + mediaType: application/json + openAPIDocKey: '204' + delete_repo_variable: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1agents~1variables~1{name}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/variables/methods/get_repo_variable + - $ref: >- + #/components/x-stackQL-resources/variables/methods/get_org_variable + - $ref: >- + #/components/x-stackQL-resources/variables/methods/list_repo_variables + - $ref: >- + #/components/x-stackQL-resources/variables/methods/list_org_variables + insert: + - $ref: >- + #/components/x-stackQL-resources/variables/methods/create_repo_variable + - $ref: >- + #/components/x-stackQL-resources/variables/methods/create_org_variable + update: + - $ref: >- + #/components/x-stackQL-resources/variables/methods/update_repo_variable + - $ref: >- + #/components/x-stackQL-resources/variables/methods/update_org_variable + delete: + - $ref: >- + #/components/x-stackQL-resources/variables/methods/delete_repo_variable + - $ref: >- + #/components/x-stackQL-resources/variables/methods/delete_org_variable + replace: [] + repos_for_org_variable: + id: github.agents.repos_for_org_variable + name: repos_for_org_variable + title: Repos For Org Variable + methods: + list_selected_repos_for_org_variable: + operation: + $ref: '#/paths/~1orgs~1{org}~1agents~1variables~1{name}~1repositories/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.repositories + set_selected_repos_for_org_variable: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1orgs~1{org}~1agents~1variables~1{name}~1repositories/put' + response: + mediaType: application/json + openAPIDocKey: '204' + add_selected_repo_to_org_variable: + operation: + $ref: >- + #/paths/~1orgs~1{org}~1agents~1variables~1{name}~1repositories~1{repository_id}/put + response: + mediaType: application/json + openAPIDocKey: '204' + remove_selected_repo_from_org_variable: + operation: + $ref: >- + #/paths/~1orgs~1{org}~1agents~1variables~1{name}~1repositories~1{repository_id}/delete + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/repos_for_org_variable/methods/list_selected_repos_for_org_variable + insert: + - $ref: >- + #/components/x-stackQL-resources/repos_for_org_variable/methods/add_selected_repo_to_org_variable + update: [] + delete: + - $ref: >- + #/components/x-stackQL-resources/repos_for_org_variable/methods/remove_selected_repo_from_org_variable + replace: + - $ref: >- + #/components/x-stackQL-resources/repos_for_org_variable/methods/set_selected_repos_for_org_variable + repo_org_secrets: + id: github.agents.repo_org_secrets + name: repo_org_secrets + title: Repo Org Secrets + methods: + list_repo_organization_secrets: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1agents~1organization-secrets/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.secrets + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/repo_org_secrets/methods/list_repo_organization_secrets + insert: [] + update: [] + delete: [] + replace: [] + repo_org_variables: + id: github.agents.repo_org_variables + name: repo_org_variables + title: Repo Org Variables + methods: + list_repo_organization_variables: + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1agents~1organization-variables/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.variables + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/repo_org_variables/methods/list_repo_organization_variables + insert: [] + update: [] + delete: [] + replace: [] +servers: + - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/apps.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/apps.yaml index e5b0c23..e81003b 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/apps.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/apps.yaml @@ -710,6 +710,20 @@ paths: installation can access. + > [!NOTE] + + > Starting April 27, 2026, GitHub began a staged rollout of a stateless + format (`ghs_APPID_JWT`) to all newly minted GitHub App installation + tokens, making them more performant and improving the reliability of our + API surface. If your application expects or relies on installation + tokens being exactly 40 characters long, it may not handle this new + token format correctly. You can now validate your apps and workflows + using a temporary request header that lets you enable the token format + on demand. For more information about the temporary header, see [the + GitHub + blog](https://github.blog/changelog/2026-05-15-github-app-installation-tokens-per-request-override-header). + + 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 @@ -1705,6 +1719,14 @@ paths: type: boolean lexical_commit_sha: 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. Present for org repos only. + additionalProperties: true required: - archive_url - assignees_url @@ -2905,6 +2927,14 @@ paths: type: boolean lexical_commit_sha: 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. Present for org repos only. + additionalProperties: true required: - archive_url - assignees_url @@ -4107,7 +4137,7 @@ components: app-permissions: title: App Permissions type: object - description: The permissions granted to the user access token. + description: The permissions granted to the fine-grained access token. properties: actions: type: string @@ -4149,6 +4179,14 @@ components: enum: - read - write + code_quality: + type: string + description: >- + The level of permission to grant the access token to view and manage + code quality data. + enum: + - read + - write codespaces: type: string description: >- @@ -4382,12 +4420,13 @@ components: Copilot Business subscription. This property is in public preview and is subject to change. enum: + - read - write organization_copilot_agent_settings: type: string description: >- The level of permission to grant the access token to view and manage - Copilot coding agent settings for an organization. + Copilot cloud agent settings for an organization. enum: - read - write @@ -6548,7 +6587,7 @@ components: token_last_eight: Ae178B4a hashed_token: 25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8 app: - url: http://my-github-app.com + url: https://example.com name: my github app client_id: Iv1.8a61f9b3a7aba766 note: optional note @@ -6585,7 +6624,7 @@ components: token_last_eight: Ae178B4a hashed_token: 25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8 app: - url: http://my-github-app.com + url: https://example.com name: my github app client_id: Iv1.8a61f9b3a7aba766 note: optional note @@ -6766,6 +6805,9 @@ components: forks: 1 open_issues: 1 watchers: 1 + custom_properties: + environment: production + service: web marketplace-purchase: value: url: https://api.github.com/orgs/github @@ -7669,3 +7711,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/billing.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/billing.yaml index 80b3e19..e3fd81f 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/billing.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/billing.yaml @@ -4,19 +4,59 @@ info: description: Monitor charges and usage from Actions and Packages. version: 1.1.4 paths: - /organizations/{org}/settings/billing/budgets: + /organizations/{org}/settings/billing/ai_credit/usage: get: - summary: Get all budgets for an organization + summary: Get billing AI credit usage report for an organization description: >- - > [!NOTE] - - > This endpoint is in public preview and is subject to change. + Gets a report of AI credit usage for an organization. To use this + endpoint, you must be an administrator of an organization within an + enterprise or an organization account. + **Note:** Only data from the past 24 months is accessible via this + endpoint. + tags: + - billing + operationId: billing/get-github-billing-ai-credit-usage-report-org + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/billing/usage#get-billing-ai-credit-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_ai_credit_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 + x-stackQL-resource: usage + /organizations/{org}/settings/billing/budgets: + get: + summary: Get all budgets for an organization + description: >- Gets all budgets for an organization. The authenticated user must be an organization admin or billing manager. - Each page returns up to 10 budgets. + Each page returns up to 100 budgets. tags: - billing operationId: billing/get-all-budgets-org @@ -33,13 +73,24 @@ paths: type: integer default: 1 - name: per_page - description: The number of results per page (max 10). + description: The number of results per page (max 100). in: query schema: type: integer default: 10 - name: scope - description: Filter budgets by scope type. + description: >- + Filter budgets by scope type. + + + - `organization`: Budgets scoped to the organization. + + - `repository`: Budgets scoped to a repository. + + - `multi_user_customer`: Universal budgets that apply to all users + in the organization. + + - `user`: Budgets scoped to an individual user. in: query schema: type: string @@ -48,6 +99,15 @@ paths: - organization - repository - cost_center + - multi_user_customer + - user + - name: user + description: >- + Filter consumed amount details for budgets by the specified user + login. + in: query + schema: + type: string responses: '200': $ref: '#/components/responses/get_all_budgets' @@ -63,15 +123,188 @@ paths: category: billing subcategory: budgets x-stackQL-resource: budgets - /organizations/{org}/settings/billing/budgets/{budget_id}: - get: - summary: Get a budget by ID for an organization + post: + summary: Create a budget for an organization description: >- - > [!NOTE] + Creates a new budget for an organization. The authenticated user must be + an - > This endpoint is in public preview and is subject to change. + organization admin or billing manager. + tags: + - billing + operationId: billing/create-organization-budget + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/billing/budgets#create-a-budget-for-an-organization + parameters: + - $ref: '#/components/parameters/org' + requestBody: + required: false + 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. For `user` and `multi_user_customer` scopes, this + must be `true`. + budget_alerting: + type: object + properties: + will_alert: + type: boolean + description: >- + Whether alerts are enabled for this budget. Rejected for + user-scope as alerting is always disabled for them. + alert_recipients: + type: array + items: + type: string + description: >- + Array of user login names who will receive alerts. + Rejected for user-scope as alerting is always disabled + for them. + budget_scope: + type: string + description: >- + The scope of the budget for this organization. + + + - `organization`: Apply the budget to the organization. + + - `repository`: Apply the budget to a specific repository in + the organization. + + - `multi_user_customer`: Apply a universal budget to all + users in the organization. + + - `user`: Apply the budget to a single user in the + organization. + + + `user` and `multi_user_customer` scopes are only supported + when + `budget_product_sku` is `ai_credits` or `premium_requests`. + enum: + - organization + - repository + - multi_user_customer + - user + budget_entity_name: + type: string + description: The name of the entity to apply the budget to + default: '' + budget_type: + description: >- + The type of pricing model used by the budget. Determines how + `budget_product_sku` is interpreted. + + - `BundlePricing`: Covers all AI credit SKUs. Set + `budget_product_sku` to `ai_credits`. + + - `ProductPricing`: Covers all SKUs that belong to a + product. Set `budget_product_sku` to a product such as + `actions` or `packages`. + + - `SkuPricing`: Covers a single, specific SKU. Set + `budget_product_sku` to a SKU such as `actions_linux`. + type: string + enum: + - BundlePricing + budget_product_sku: + type: string + description: A single product or SKU that will be covered in the budget + user: + type: string + description: >- + The username of the user for `user` scope budgets. This + field is required when `budget_scope` is `user`. + examples: + create-organization-budget: + summary: Create organization budget example + value: + budget_amount: 500 + prevent_further_usage: true + budget_scope: organization + budget_entity_name: '' + budget_type: ProductPricing + budget_product_sku: actions + budget_alerting: + will_alert: false + alert_recipients: [] + responses: + '200': + description: Budget created successfully + content: + application/json: + schema: + $ref: '#/components/schemas/create-budget' + examples: + create-organization-budget: + $ref: '#/components/examples/create-budget' + '400': + $ref: '#/components/responses/bad_request' + '401': + $ref: '#/components/responses/requires_authentication' + '403': + description: Insufficient permissions + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + examples: + insufficient-permissions: + value: + message: Insufficient permissions to create a budget. + documentation_url: >- + https://docs.github.com/rest/billing/budgets#create-a-budget-for-an-organization + '404': + description: Feature not enabled or organization not found + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + examples: + feature-not-enabled: + value: + message: Not Found + documentation_url: >- + https://docs.github.com/rest/billing/budgets#create-a-budget-for-an-organization + '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 create budget. + documentation_url: >- + https://docs.github.com/rest/billing/budgets#create-a-budget-for-an-organization + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: billing + subcategory: budgets + x-stackQL-resource: budgets + /organizations/{org}/settings/billing/budgets/{budget_id}: + get: + summary: Get a budget by ID for an organization + description: >- Gets a budget by ID. The authenticated user must be an organization admin or billing manager. tags: @@ -106,11 +339,6 @@ paths: patch: summary: Update a budget for an organization description: >- - > [!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. tags: @@ -139,37 +367,74 @@ paths: type: boolean description: >- Whether to prevent additional spending once the budget is - exceeded + exceeded. For budgets with `user` or `multi_user_customer` + scope, this must remain `true`. budget_alerting: type: object properties: will_alert: type: boolean - description: Whether alerts are enabled for this budget + description: >- + Whether alerts are enabled for this budget. Ignored for + user-scopes as alerting is always disabled for them. alert_recipients: type: array items: type: string - description: Array of user login names who will receive alerts + description: >- + Array of user login names who will receive alerts. + Ignored for user-scopes as alerting is always disabled + for them. budget_scope: type: string - description: The scope of the budget + description: >- + The scope of the budget for this organization. + + + - `organization`: Apply the budget to the organization. + + - `repository`: Apply the budget to a specific repository in + the organization. + + - `multi_user_customer`: Apply a universal budget to all + users in the organization. + + - `user`: Apply the budget to a single user in the + organization. enum: - enterprise - organization - repository - cost_center + - multi_user_customer + - user budget_entity_name: type: string description: The name of the entity to apply the budget to budget_type: - description: The type of pricing for the budget + description: >- + The type of pricing model used by the budget. Determines how + `budget_product_sku` is interpreted. + + + - `BundlePricing`: Covers all AI credit SKUs. Set + `budget_product_sku` to `ai_credits`. + + - `ProductPricing`: Covers all SKUs that belong to a + product. Set `budget_product_sku` to a product such as + `actions` or `packages`. + + - `SkuPricing`: Covers a single, specific SKU. Set + `budget_product_sku` to a SKU such as `actions_linux`. type: string enum: - - ProductPricing + - BundlePricing budget_product_sku: type: string description: A single product or SKU that will be covered in the budget + user: + type: string + description: The username of the user for `user` scope budgets. examples: update-budget: summary: Update budget example @@ -185,68 +450,7 @@ paths: 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: - description: The type of pricing for the budget - oneOf: - - type: string - enum: - - ProductPricing - - type: string - enum: - - SkuPricing - budget_product_sku: - type: string - description: >- - A single product or SKU that will be covered in the - budget + $ref: '#/components/schemas/update-budget' examples: update-budget: $ref: '#/components/examples/update-budget' @@ -298,11 +502,6 @@ paths: delete: summary: Delete a budget for an organization description: >- - > [!NOTE] - - > This endpoint is in public preview and is subject to change. - - Deletes a budget by ID for an organization. The authenticated user must be an organization admin or billing manager. tags: @@ -469,6 +668,48 @@ paths: category: billing subcategory: usage x-stackQL-resource: usage + /users/{username}/settings/billing/ai_credit/usage: + get: + summary: Get billing AI credit usage report for a user + description: >- + Gets a report of AI credit usage for a user. + + + **Note:** Only data from the past 24 months is accessible via this + endpoint. + tags: + - billing + operationId: billing/get-github-billing-ai-credit-usage-report-user + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/billing/usage#get-billing-ai-credit-usage-report-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - $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-model' + - $ref: '#/components/parameters/billing-usage-report-product' + responses: + '200': + $ref: '#/components/responses/billing_ai_credit_usage_report_user' + '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 + x-stackQL-resource: usage /users/{username}/settings/billing/premium_request/usage: get: summary: Get billing premium request usage report for a user @@ -599,6 +840,83 @@ paths: x-stackQL-resource: usage components: schemas: + create-budget: + type: object + properties: + message: + type: string + description: A message indicating the result of the create operation + 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 + - multi_user_customer + - multi_user_cost_center + - user + budget_entity_name: + type: string + description: The name of the entity to apply the budget to + example: example-repository-name + budget_amount: + type: integer + description: >- + The budget amount in whole dollars. For license-based products, + this represents the number of licenses. + example: 100 + minimum: 0 + 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: + description: The type of pricing for the budget + example: ProductPricing + oneOf: + - type: string + enum: + - ProductPricing + - type: string + enum: + - SkuPricing + budget_alerting: + type: object + properties: + will_alert: + type: boolean + description: >- + Whether alerts are enabled for this budget. Rejected for + user-scope as alerting is always disabled for them. + example: true + alert_recipients: + type: array + items: + type: string + description: >- + Array of user login names who will receive alerts. Rejected + for user-scope as alerting is always disabled for them. + example: + - mona + - lisa + required: + - message + - budget basic-error: title: Basic Error description: Basic Error @@ -612,86 +930,178 @@ components: type: string status: type: string - get_all_budgets: + update-budget: 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 + message: + type: string + description: A message indicating the result of the update operation + 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 + - multi_user_customer + - multi_user_cost_center + - user + budget_entity_name: + type: string + description: The name of the entity to apply the budget to + example: example-repository-name + user: + type: string + description: >- + The user login when the budget is scoped to a single user + (`user` scope). + example: octocat + consumed_amount: + type: number + description: >- + The consumed amount for the specified user within the budget. + Only included for `user`-scoped budgets. + example: 42.5 + budget_amount: + type: integer + description: >- + The budget amount in whole dollars. For license-based products, + this represents the number of licenses. + example: 100 + minimum: 0 + 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: + description: The type of pricing for the budget + example: ProductPricing + oneOf: + - type: string + enum: + - ProductPricing + - type: string + enum: + - SkuPricing + budget_alerting: + type: object + properties: + will_alert: + type: boolean + description: >- + Whether alerts are enabled for this budget. Ignored for + user-scope as alerting is always disabled for them. + example: true + alert_recipients: + type: array + items: + type: string + description: >- + Array of user login names who will receive alerts. Ignored + for user-scope as alerting is always disabled for them. + example: + - mona + - lisa required: - - budgets - get-budget: + - budget + - message + billing-ai-credit-usage-report-org: type: object properties: - id: - type: string - description: ID of the budget. - budget_scope: + 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 type of scope for the budget - example: enterprise - enum: - - enterprise - - organization - - repository - - cost_center - budget_entity_name: + description: The unique identifier of the organization. + user: 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: + description: The name of the user for the usage report. + product: type: string - description: A single product or sku to apply the budget to. - example: actions_linux - budget_type: - description: The type of pricing for the budget - example: ProductPricing + description: The product for the usage report. + model: type: string - enum: - - ProductPricing - budget_alerting: - type: object - properties: - will_alert: - type: boolean - description: Whether alerts are enabled for this budget - example: true - alert_recipients: - type: array - items: + description: The model for the usage report. + usageItems: + type: array + items: + type: object + properties: + product: type: string - description: Array of user login names who will receive alerts - example: - - mona - - lisa + 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: - - id - - budget_amount - - prevent_further_usage - - budget_product_sku - - budget_type - - budget_alerting - - budget_scope - - budget_entity_name + - timePeriod + - organization + - usageItems scim-error: title: Scim Error description: Scim Error @@ -715,6 +1125,50 @@ components: type: array items: type: string + get_all_budgets: + type: object + properties: + budgets: + type: array + items: + $ref: '#/components/schemas/budget' + description: Array of budget objects for the enterprise + user: + type: string + description: >- + User login included when the response is scoped with the `user` + query parameter. + effective_budget: + type: object + description: >- + Effective user-level budget details returned when the response is + scoped with the `user` query parameter. + properties: + id: + type: string + description: The unique identifier of the effective budget. + budget_amount: + type: integer + description: The budget amount for the effective budget. + consumed_amount: + type: number + description: >- + The consumed amount for the specified user within the effective + budget. + required: + - id + - budget_amount + - consumed_amount + 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 validation-error: title: Validation Error description: Validation Error @@ -754,6 +1208,83 @@ components: nullable: true items: type: string + 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 + - multi_user_customer + - multi_user_cost_center + - user + budget_entity_name: + type: string + description: The name of the entity to apply the budget to + example: octocat/hello-world + user: + type: string + description: >- + The user login when the budget is scoped to a single user (`user` + scope). + example: octocat + 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: + description: The type of pricing for the budget + example: ProductPricing + type: string + enum: + - ProductPricing + budget_alerting: + type: object + properties: + will_alert: + type: boolean + description: >- + Whether alerts are enabled for this budget. Present but not + applicable for user-scope as alerting is always disabled for + them. + example: true + alert_recipients: + type: array + items: + type: string + description: >- + Array of user login names who will receive alerts. Present but + not applicable for user-scope as alerting is always disabled for + them. + 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: @@ -980,6 +1511,86 @@ components: - timePeriod - organization - usageItems + billing-ai-credit-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-premium-request-usage-report-user: type: object properties: @@ -1211,16 +1822,33 @@ components: example: true budget_scope: type: string - description: >- - The scope of the budget (enterprise, organization, repository, cost - center) + description: The scope of the budget example: enterprise + enum: + - enterprise + - organization + - repository + - cost_center + - multi_user_customer + - multi_user_cost_center + - user budget_entity_name: type: string description: >- The name of the entity for the budget (enterprise does not require a name). example: octocat/hello-world + user: + type: string + description: >- + The user login when the budget is scoped to a single user (`user` + scope). + example: octocat + consumed_amount: + type: number + description: >- + The amount consumed for a user-scoped budget, or for a multi-user + budget when filtering by user. budget_product_sku: type: string description: A single product or sku to apply the budget to. @@ -1229,13 +1857,17 @@ components: properties: will_alert: type: boolean - description: Whether alerts are enabled for this budget + description: >- + Whether alerts are enabled for this budget. Ignored for + user-scope as alerting is disabled for them. example: true alert_recipients: type: array items: type: string - description: Array of user login names who will receive alerts + description: >- + Array of user login names who will receive alerts. Ignored for + user-scope as alerting is disabled for them. example: - mona - lisa @@ -1251,15 +1883,24 @@ components: - prevent_further_usage - budget_alerting responses: - get_all_budgets: - description: Response when getting all budgets + billing_ai_credit_usage_report_org: + description: Response when getting a billing AI credit usage report content: application/json: schema: - $ref: '#/components/schemas/get_all_budgets' + $ref: '#/components/schemas/billing-ai-credit-usage-report-org' examples: default: - $ref: '#/components/examples/get_all_budgets' + $ref: '#/components/examples/billing-ai-credit-usage-report-org' + bad_request: + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + application/scim+json: + schema: + $ref: '#/components/schemas/scim-error' forbidden: description: Forbidden content: @@ -1278,24 +1919,6 @@ components: application/json: schema: $ref: '#/components/schemas/basic-error' - budget: - description: Response when updating a budget - content: - application/json: - schema: - $ref: '#/components/schemas/get-budget' - examples: - default: - $ref: '#/components/examples/get-budget' - bad_request: - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/basic-error' - application/scim+json: - schema: - $ref: '#/components/schemas/scim-error' service_unavailable: description: Service unavailable content: @@ -1309,6 +1932,17 @@ components: type: string documentation_url: type: string + 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' + with_user_filter: + $ref: '#/components/examples/get_all_budgets_with_user_filter' requires_authentication: description: Requires authentication content: @@ -1321,6 +1955,15 @@ components: application/json: schema: $ref: '#/components/schemas/validation-error' + 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: @@ -1357,6 +2000,15 @@ components: examples: default: $ref: '#/components/examples/billing-usage-summary-report-org' + billing_ai_credit_usage_report_user: + description: Response when getting a billing AI credit usage report + content: + application/json: + schema: + $ref: '#/components/schemas/billing-ai-credit-usage-report-user' + examples: + default: + $ref: '#/components/examples/billing-ai-credit-usage-report-user' billing_premium_request_usage_report_user: description: Response when getting a billing premium request usage report content: @@ -1392,13 +2044,6 @@ components: required: true schema: type: string - 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: >- @@ -1450,6 +2095,13 @@ components: required: false schema: type: string + budget: + name: budget_id + description: The ID corresponding to the budget. + in: path + required: true + schema: + type: string billing-usage-report-month: name: month description: >- @@ -1482,6 +2134,20 @@ components: schema: type: string examples: + create-budget: + value: + message: Budget successfully created. + budget: + id: f5236c62-157f-4d8f-a79e-ffb91058ee97 + budget_type: ProductPricing + budget_product_sku: actions + budget_scope: organization + budget_entity_name: example-organization + budget_amount: 100 + prevent_further_usage: true + budget_alerting: + will_alert: false + alert_recipients: [] update-budget: value: message: Budget successfully updated. @@ -1491,13 +2157,30 @@ components: budget_product_sku: actions_linux budget_scope: repository budget_entity_name: org-name/example-repo-name - budget_amount: 0 + budget_amount: 10 prevent_further_usage: true budget_alerting: will_alert: true alert_recipients: - mona - lisa + billing-ai-credit-usage-report-org: + value: + timePeriod: + year: 2025 + organization: GitHub + usageItems: + - product: Copilot + sku: Copilot AI Credits + model: GPT-5 + unitType: credits + pricePerUnit: 0.01 + grossQuantity: 100 + grossAmount: 1 + discountQuantity: 0 + discountAmount: 0 + netQuantity: 100 + netAmount: 1 get_all_budgets: value: budgets: @@ -1536,6 +2219,39 @@ components: alert_recipients: [] has_next_page: false total_count: 3 + get_all_budgets_with_user_filter: + value: + budgets: + - id: 2066deda-923f-43f9-88d2-62395a28c0cdd + budget_type: ProductPricing + budget_product_skus: + - actions + budget_scope: multi_user_customer + budget_amount: 1000 + prevent_further_usage: true + budget_alerting: + will_alert: true + alert_recipients: + - enterprise-admin + - billing-manager + - id: f47ac10b-58cc-4372-a567-0e02b2c3d479 + budget_type: BundlePricing + budget_product_skus: + - ai_credits + budget_scope: user + budget_amount: 500 + prevent_further_usage: true + budget_alerting: + will_alert: true + alert_recipients: + - org-owner + user: octocat + effective_budget: + id: 9a7d04e8-6600-44f5-94ef-65ca92b95f0b + budget_amount: 1000 + consumed_amount: 42 + has_next_page: false + total_count: 2 get-budget: value: id: 2066deda-923f-43f9-88d2-62395a28c0cdd @@ -1601,6 +2317,23 @@ components: discountAmount: 0 netQuantity: 1000 netAmount: 8 + billing-ai-credit-usage-report-user: + value: + timePeriod: + year: 2025 + user: monalisa + usageItems: + - product: Copilot AI Credits + sku: AI Credit + model: GPT-5 + unitType: ai-credits + pricePerUnit: 0.01 + grossQuantity: 100 + grossAmount: 1 + discountQuantity: 0 + discountAmount: 0 + netQuantity: 100 + netAmount: 1 billing-premium-request-usage-report-user: value: timePeriod: @@ -1648,6 +2381,27 @@ components: netQuantity: 1000 netAmount: 8 x-stackQL-resources: + org_ai_credit_usage: + id: github.billing.org_ai_credit_usage + name: org_ai_credit_usage + title: Org Ai Credit Usage + methods: + get_github_billing_ai_credit_usage_report_org: + operation: + $ref: >- + #/paths/~1organizations~1{org}~1settings~1billing~1ai_credit~1usage/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.usageItems + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/org_ai_credit_usage/methods/get_github_billing_ai_credit_usage_report_org + insert: [] + update: [] + delete: [] + replace: [] org_budgets: id: github.billing.org_budgets name: org_budgets @@ -1659,6 +2413,15 @@ components: response: mediaType: application/json openAPIDocKey: '200' + create_organization_budget: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1organizations~1{org}~1settings~1billing~1budgets/post' + response: + mediaType: application/json + openAPIDocKey: '200' get_budget_org: operation: $ref: >- @@ -1689,7 +2452,9 @@ components: #/components/x-stackQL-resources/org_budgets/methods/get_budget_org - $ref: >- #/components/x-stackQL-resources/org_budgets/methods/get_all_budgets_org - insert: [] + insert: + - $ref: >- + #/components/x-stackQL-resources/org_budgets/methods/create_organization_budget update: - $ref: >- #/components/x-stackQL-resources/org_budgets/methods/update_budget_org @@ -1757,6 +2522,27 @@ components: update: [] delete: [] replace: [] + ai_credit_usage: + id: github.billing.ai_credit_usage + name: ai_credit_usage + title: Ai Credit Usage + methods: + get_github_billing_ai_credit_usage_report_user: + operation: + $ref: >- + #/paths/~1users~1{username}~1settings~1billing~1ai_credit~1usage/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.usageItems + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/ai_credit_usage/methods/get_github_billing_ai_credit_usage_report_user + insert: [] + update: [] + delete: [] + replace: [] premium_request_usage: id: github.billing.premium_request_usage name: premium_request_usage @@ -1818,3 +2604,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/campaigns.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/campaigns.yaml index 6898a0b..f1b93c2 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/campaigns.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/campaigns.yaml @@ -699,6 +699,20 @@ components: enum: - enterprise - organization + access_source: + description: >- + How the team's access to the repository was granted. This property + is only + + present when the team is returned in a repository context, such as + + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs @@ -1034,3 +1048,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/checks.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/checks.yaml index f209fd5..b0a0078 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/checks.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/checks.yaml @@ -2788,6 +2788,7 @@ components: required: true schema: type: integer + format: int64 per-page: name: per_page description: >- @@ -4102,3 +4103,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/classroom.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/classroom.yaml index b7efd5c..9bd49e9 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/classroom.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/classroom.yaml @@ -6,8 +6,17 @@ info: paths: /assignments/{assignment_id}: get: - summary: Get an assignment + summary: Closing down - Get an assignment description: >- + > [!WARNING] + + > **Closing down notice:** This operation is closing down and will be + removed on August 28, 2026. + + > For more information, see the [GitHub Classroom sunset + notice](https://gh.io/classroom-sunset). + + Gets a GitHub Classroom assignment. Assignment will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. @@ -16,7 +25,8 @@ paths: operationId: classroom/get-an-assignment externalDocs: description: API method documentation - url: https://docs.github.com/rest/classroom/classroom#get-an-assignment + url: >- + https://docs.github.com/rest/classroom/classroom#closing-down---get-an-assignment parameters: - $ref: '#/components/parameters/assignment-id' responses: @@ -31,15 +41,29 @@ paths: $ref: '#/components/examples/classroom-assignment' '404': $ref: '#/components/responses/not_found' + '410': + $ref: '#/components/responses/gone' x-github: enabledForGitHubApps: true category: classroom subcategory: classroom + deprecationDate: '2026-05-22' + removalDate: '2026-08-28' + deprecated: true x-stackQL-resource: classroom /assignments/{assignment_id}/accepted_assignments: get: - summary: List accepted assignments for an assignment + summary: Closing down - List accepted assignments for an assignment description: >- + > [!WARNING] + + > **Closing down notice:** This operation is closing down and will be + removed on August 28, 2026. + + > For more information, see the [GitHub Classroom sunset + notice](https://gh.io/classroom-sunset). + + 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 @@ -50,7 +74,7 @@ paths: externalDocs: description: API method documentation url: >- - https://docs.github.com/rest/classroom/classroom#list-accepted-assignments-for-an-assignment + https://docs.github.com/rest/classroom/classroom#closing-down---list-accepted-assignments-for-an-assignment parameters: - $ref: '#/components/parameters/assignment-id' - $ref: '#/components/parameters/page' @@ -67,15 +91,29 @@ paths: examples: default: $ref: '#/components/examples/classroom-accepted-assignment' + '410': + $ref: '#/components/responses/gone' x-github: enabledForGitHubApps: true category: classroom subcategory: classroom + deprecationDate: '2026-05-22' + removalDate: '2026-08-28' + deprecated: true x-stackQL-resource: classroom /assignments/{assignment_id}/grades: get: - summary: Get assignment grades + summary: Closing down - Get assignment grades description: >- + > [!WARNING] + + > **Closing down notice:** This operation is closing down and will be + removed on August 28, 2026. + + > For more information, see the [GitHub Classroom sunset + notice](https://gh.io/classroom-sunset). + + 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. @@ -84,7 +122,8 @@ paths: operationId: classroom/get-assignment-grades externalDocs: description: API method documentation - url: https://docs.github.com/rest/classroom/classroom#get-assignment-grades + url: >- + https://docs.github.com/rest/classroom/classroom#closing-down---get-assignment-grades parameters: - $ref: '#/components/parameters/assignment-id' responses: @@ -101,15 +140,29 @@ paths: $ref: '#/components/examples/classroom-assignment-grades' '404': $ref: '#/components/responses/not_found' + '410': + $ref: '#/components/responses/gone' x-github: enabledForGitHubApps: true category: classroom subcategory: classroom + deprecationDate: '2026-05-22' + removalDate: '2026-08-28' + deprecated: true x-stackQL-resource: classroom /classrooms: get: - summary: List classrooms + summary: Closing down - List classrooms description: >- + > [!WARNING] + + > **Closing down notice:** This operation is closing down and will be + removed on August 28, 2026. + + > For more information, see the [GitHub Classroom sunset + notice](https://gh.io/classroom-sunset). + + 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. @@ -118,7 +171,8 @@ paths: operationId: classroom/list-classrooms externalDocs: description: API method documentation - url: https://docs.github.com/rest/classroom/classroom#list-classrooms + url: >- + https://docs.github.com/rest/classroom/classroom#closing-down---list-classrooms parameters: - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per-page' @@ -134,15 +188,29 @@ paths: examples: default: $ref: '#/components/examples/simple-classroom' + '410': + $ref: '#/components/responses/gone' x-github: enabledForGitHubApps: true category: classroom subcategory: classroom + deprecationDate: '2026-05-22' + removalDate: '2026-08-28' + deprecated: true x-stackQL-resource: classroom /classrooms/{classroom_id}: get: - summary: Get a classroom + summary: Closing down - Get a classroom description: >- + > [!WARNING] + + > **Closing down notice:** This operation is closing down and will be + removed on August 28, 2026. + + > For more information, see the [GitHub Classroom sunset + notice](https://gh.io/classroom-sunset). + + 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. @@ -151,7 +219,8 @@ paths: operationId: classroom/get-a-classroom externalDocs: description: API method documentation - url: https://docs.github.com/rest/classroom/classroom#get-a-classroom + url: >- + https://docs.github.com/rest/classroom/classroom#closing-down---get-a-classroom parameters: - $ref: '#/components/parameters/classroom-id' responses: @@ -166,15 +235,29 @@ paths: $ref: '#/components/examples/classroom' '404': $ref: '#/components/responses/not_found' + '410': + $ref: '#/components/responses/gone' x-github: enabledForGitHubApps: true category: classroom subcategory: classroom + deprecationDate: '2026-05-22' + removalDate: '2026-08-28' + deprecated: true x-stackQL-resource: classroom /classrooms/{classroom_id}/assignments: get: - summary: List assignments for a classroom + summary: Closing down - List assignments for a classroom description: >- + > [!WARNING] + + > **Closing down notice:** This operation is closing down and will be + removed on August 28, 2026. + + > For more information, see the [GitHub Classroom sunset + notice](https://gh.io/classroom-sunset). + + Lists GitHub Classroom assignments for a classroom. Assignments will only be returned if the current user is an administrator of the GitHub Classroom. @@ -184,7 +267,7 @@ paths: externalDocs: description: API method documentation url: >- - https://docs.github.com/rest/classroom/classroom#list-assignments-for-a-classroom + https://docs.github.com/rest/classroom/classroom#closing-down---list-assignments-for-a-classroom parameters: - $ref: '#/components/parameters/classroom-id' - $ref: '#/components/parameters/page' @@ -201,10 +284,15 @@ paths: examples: default: $ref: '#/components/examples/simple-classroom-assignment' + '410': + $ref: '#/components/responses/gone' x-github: enabledForGitHubApps: true category: classroom subcategory: classroom + deprecationDate: '2026-05-22' + removalDate: '2026-08-28' + deprecated: true x-stackQL-resource: classroom components: schemas: @@ -681,6 +769,12 @@ components: application/json: schema: $ref: '#/components/schemas/basic-error' + gone: + description: Gone + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' parameters: assignment-id: name: assignment_id @@ -962,3 +1056,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/code_quality.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/code_quality.yaml new file mode 100644 index 0000000..8f22808 --- /dev/null +++ b/provider-dev/openapi/src/github/v00.00.00000/services/code_quality.yaml @@ -0,0 +1,726 @@ +openapi: 3.0.3 +info: + title: code_quality API + description: github API + version: 1.1.4 +paths: + /repos/{owner}/{repo}/code-quality/findings: + get: + summary: List code quality findings for a repository + description: >- + Lists code quality findings for 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. + tags: + - code-quality + operationId: code-quality/list-findings-for-repo + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/code-quality/code-quality#list-code-quality-findings-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/per-page' + - $ref: '#/components/parameters/direction' + - $ref: '#/components/parameters/pagination-before' + - $ref: '#/components/parameters/pagination-after' + - name: state + description: >- + If specified, only code quality findings with this state will be + returned. + in: query + required: false + schema: + type: string + enum: + - open + - dismissed + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/code-quality-finding' + examples: + default: + $ref: '#/components/examples/code-quality-finding-items' + '403': + $ref: '#/components/responses/code_quality_forbidden_read' + '404': + $ref: '#/components/responses/not_found' + '503': + $ref: '#/components/responses/service_unavailable' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-quality + subcategory: code-quality + x-stackQL-resource: code_quality + /repos/{owner}/{repo}/code-quality/findings/{finding_number}: + get: + summary: Get a code quality finding + description: >- + Gets a single code quality finding. + + + 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. + tags: + - code-quality + operationId: code-quality/get-finding + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/code-quality/code-quality#get-a-code-quality-finding + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/code-quality-finding-number' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/code-quality-finding' + examples: + default: + $ref: '#/components/examples/code-quality-finding' + '403': + $ref: '#/components/responses/code_quality_forbidden_read' + '404': + $ref: '#/components/responses/not_found' + '503': + $ref: '#/components/responses/service_unavailable' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-quality + subcategory: code-quality + x-stackQL-resource: code_quality + /repos/{owner}/{repo}/code-quality/setup: + get: + summary: Get a code quality setup configuration + description: >- + Gets a code quality 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. + tags: + - code-quality + operationId: code-quality/get-setup + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/code-quality/code-quality#get-a-code-quality-setup-configuration + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/code-quality-setup' + examples: + default: + $ref: '#/components/examples/code-quality-setup' + '403': + $ref: '#/components/responses/code_quality_forbidden_read' + '404': + $ref: '#/components/responses/not_found' + '503': + $ref: '#/components/responses/service_unavailable' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-quality + subcategory: code-quality + x-stackQL-resource: code_quality + patch: + summary: Update a code quality setup configuration + description: >- + Updates a code quality 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. + tags: + - code-quality + operationId: code-quality/update-setup + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/code-quality/code-quality#update-a-code-quality-setup-configuration + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/code-quality-setup-update' + examples: + default: + $ref: '#/components/examples/code-quality-setup-update' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/empty-object' + examples: + default: + value: null + '202': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/code-quality-setup-update-response' + examples: + default: + $ref: '#/components/examples/code-quality-setup-update-response' + '403': + $ref: '#/components/responses/code_quality_forbidden_write' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/code_quality_conflict' + '422': + $ref: '#/components/responses/code_quality_invalid_state' + '503': + $ref: '#/components/responses/service_unavailable' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-quality + subcategory: code-quality + x-stackQL-resource: code_quality +components: + schemas: + code-quality-finding: + description: Code quality finding + type: object + properties: + number: + description: The finding number. + type: integer + state: + description: State of the code quality finding. + type: string + enum: + - open + - dismissed + url: + description: The REST API URL of the code quality finding resource. + type: string + format: uri + rule: + $ref: '#/components/schemas/code-quality-finding-rule' + location: + $ref: '#/components/schemas/code-quality-finding-location' + message: + $ref: '#/components/schemas/code-quality-finding-message' + created_at: + description: The time the code quality finding was created. + type: string + format: date-time + required: + - number + - state + - url + - rule + - location + - message + code-quality-setup: + description: Configuration for code quality setup. + type: object + properties: + state: + description: Code quality setup has been configured or not. + type: string + enum: + - configured + - not-configured + languages: + description: Languages to be analyzed. + type: array + items: + type: string + enum: + - csharp + - go + - java-kotlin + - javascript-typescript + - python + - ruby + - rust + 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 + 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 + ai_findings_option: + description: The AI findings configuration for the repository. + nullable: true + type: string + enum: + - disabled + - on_push + code-quality-setup-update: + description: Configuration for code quality setup. + type: object + properties: + state: + description: The desired state of code quality 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 + languages: + description: Languages to be analyzed. + type: array + items: + type: string + enum: + - csharp + - go + - java-kotlin + - javascript-typescript + - python + - ruby + ai_findings_option: + description: Whether AI findings run for Code Quality on this repository. + type: string + enum: + - disabled + - on_push + additionalProperties: false + required: + - state + - runner_type + - runner_label + - languages + - ai_findings_option + empty-object: + title: Empty Object + description: An object without any properties. + type: object + properties: {} + additionalProperties: false + code-quality-setup-update-response: + description: >- + You can use `run_url` to track the status of the run. This includes a + property status and conclusion. + + You 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-quality-finding-rule: + description: Code quality rule + type: object + properties: + id: + description: A unique identifier for the rule used to detect the finding. + type: string + title: + description: The name of the rule used to detect the finding. + type: string + description: + description: A short description of the rule used to detect the finding. + type: string + help: + description: A detailed description of the rule used to detect the finding. + type: string + severity: + description: The severity of the rule used to detect the finding. + type: string + enum: + - error + - warning + - note + - none + category: + description: The category of the rule used to detect the finding. + type: string + enum: + - none + - maintainability + - reliability + required: + - id + - title + - description + - severity + - category + code-quality-finding-location: + description: Code quality file location + type: object + properties: + path: + description: The file path where the finding was detected. + type: string + start_line: + description: The line number where the finding starts. + type: integer + start_column: + description: The column number where the finding starts. + type: integer + end_line: + description: The line number where the finding ends. + type: integer + end_column: + description: The column number where the finding ends. + type: integer + required: + - path + code-quality-finding-message: + description: Code quality finding message + type: object + properties: + text: + description: The message text of the code quality finding. + type: string + markdown: + description: The message text of the code quality finding in markdown format. + type: string + required: + - text + - markdown + basic-error: + title: Basic Error + description: Basic Error + type: object + properties: + message: + type: string + documentation_url: + type: string + url: + type: string + status: + type: string + responses: + code_quality_forbidden_read: + description: >- + Response if the user is not authorized to access Code quality for this + repository. + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + not_found: + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + service_unavailable: + description: Service unavailable + content: + application/json: + schema: + type: object + properties: + code: + type: string + message: + type: string + documentation_url: + type: string + code_quality_forbidden_write: + description: >- + Response if the repository is archived or if Code quality is not enabled + for this repository + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + code_quality_conflict: + description: >- + Response if there is already a code quality setup configuration update + in progress + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + code_quality_invalid_state: + description: Response if the configuration change cannot be made + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + parameters: + 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 + 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 + direction: + name: direction + description: The direction to sort the results by. + in: query + required: false + schema: + type: string + enum: + - asc + - desc + default: desc + 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 + 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 + code-quality-finding-number: + name: finding_number + in: path + description: The number that identifies a finding. + required: true + schema: + type: integer + examples: + code-quality-finding-items: + value: + - number: 42 + state: open + url: >- + https://api.github.com/repos/octocat/hello-world/code-quality/findings/42 + rule: + id: java/useless-null-check + title: Useless null check + description: >- + Checking whether an expression is null when that expression cannot + possibly be null is useless. + severity: warning + category: maintainability + location: + path: java/UselessNullCheck.java + start_line: 9 + start_column: 4 + end_line: 9 + end_column: 18 + message: + text: >- + This check is useless. o cannot be null at this check, since it is + guarded by instanceof. + markdown: >- + This check is useless. [o](java/UselessNullCheck.java#L9C4-L9C18) + cannot be null at this check, since it is guarded by + [...instanceof...](java/UselessNullCheck.java#L7C13-L7C25). + created_at: '2026-01-23T12:34:56Z' + code-quality-finding: + value: + number: 42 + state: open + url: >- + https://api.github.com/repos/octocat/hello-world/code-quality/findings/42 + rule: + id: java/useless-null-check + title: Useless null check + description: >- + Checking whether an expression is null when that expression cannot + possibly be null is useless. + help: >- + # Useless null check + + Sometimes you can guarantee that a particular variable will never be + null. For example when that variable has just been assigned a newly + created object or is the exception caught by a `catch` clause. A + null check on such a variable is ... + severity: warning + category: maintainability + location: + path: java/UselessNullCheck.java + start_line: 9 + start_column: 4 + end_line: 9 + end_column: 18 + message: + text: >- + This check is useless. o cannot be null at this check, since it is + guarded by instanceof. + markdown: >- + This check is useless. [o](java/UselessNullCheck.java#L9C4-L9C18) + cannot be null at this check, since it is guarded by + [...instanceof...](java/UselessNullCheck.java#L7C13-L7C25). + created_at: '2026-01-23T12:34:56Z' + code-quality-setup: + value: + state: configured + languages: + - javascript-typescript + - python + runner_type: standard + runner_label: null + updated_at: '2023-01-01T00:00:00Z' + schedule: weekly + ai_findings_option: on_push + code-quality-setup-update: + value: + state: configured + languages: + - javascript-typescript + - python + - ruby + code-quality-setup-update-response: + value: + run_id: 42 + run_url: https://api.github.com/repos/octocat/hello-world/actions/runs/42 + x-stackQL-resources: + findings: + id: github.code_quality.findings + name: findings + title: Findings + methods: + list_findings_for_repo: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1code-quality~1findings/get' + response: + mediaType: application/json + openAPIDocKey: '200' + get_finding: + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1code-quality~1findings~1{finding_number}/get + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/findings/methods/get_finding' + - $ref: >- + #/components/x-stackQL-resources/findings/methods/list_findings_for_repo + insert: [] + update: [] + delete: [] + replace: [] + setup: + id: github.code_quality.setup + name: setup + title: Setup + methods: + get_setup: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1code-quality~1setup/get' + response: + mediaType: application/json + openAPIDocKey: '200' + update_setup: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1code-quality~1setup/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/setup/methods/get_setup' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/setup/methods/update_setup' + delete: [] + replace: [] +servers: + - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/code_scanning.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/code_scanning.yaml index 58725da..bbb49e6 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/code_scanning.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/code_scanning.yaml @@ -326,7 +326,8 @@ paths: 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. + Gets the status and description of an autofix for a code scanning alert + on the repository's default branch. OAuth app tokens and personal access tokens (classic) need the @@ -360,8 +361,8 @@ paths: $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 @@ -371,7 +372,8 @@ paths: post: summary: Create an autofix for a code scanning alert description: >- - Creates an autofix for a code scanning alert. + Creates an autofix for a code scanning alert from the repository's + default branch. If a new autofix is to be created as a result of this request or is @@ -425,8 +427,8 @@ paths: $ref: '#/components/responses/not_found' '422': description: Unprocessable Entity - '503': - $ref: '#/components/responses/service_unavailable' + '500': + $ref: '#/components/responses/internal_error' x-github: githubCloudOnly: false enabledForGitHubApps: true @@ -437,7 +439,8 @@ paths: post: summary: Commit an autofix for a code scanning alert description: >- - Commits an autofix for a code scanning alert. + Commits an autofix for a code scanning alert from the repository's + default branch. If an autofix is committed as a result of this request, then this @@ -1760,6 +1763,11 @@ components: type: array items: $ref: '#/components/schemas/simple-user' + linked_pull_requests: + description: Pull requests linked to this alert. + type: array + items: + $ref: '#/components/schemas/pull-request-simple' required: - number - created_at @@ -1791,6 +1799,7 @@ components: - false positive - won't fix - used in tests + - mitigated code-scanning-alert-dismissed-comment: type: string description: The dismissal comment associated with the dismissal of the alert. @@ -2386,8 +2395,8 @@ components: 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]+$ + maxLength: 64 + pattern: ^([0-9a-fA-F]{40}(?:[0-9a-fA-F]{24})?)$ code-scanning-ref-full: type: string description: >- @@ -3155,6 +3164,330 @@ components: nullable: true type: string description: A link to the documentation for the rule used to detect the alert. + 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' + requested_reviewers: + type: array + items: + $ref: '#/components/schemas/simple-user' + requested_teams: + type: array + items: + $ref: '#/components/schemas/team' + 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' + stack: + $ref: '#/components/schemas/pull-request-stack' + 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 + x-github-breaking-changes: + - changeset: remove_pull_request_merge_commit_sha + patch: + properties: + merge_commit_sha: null + required: + - _links + - assignee + - labels + - base + - body + - closed_at + - comments_url + - commits_url + - created_at + - diff_url + - head + - html_url + - id + - node_id + - issue_url + - 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 + type: object + version: '2026-03-10' + - changeset: remove_singular_assignee_from_issues_and_pull_requests + patch: + properties: + assignee: null + required: + - _links + - labels + - base + - body + - closed_at + - comments_url + - commits_url + - created_at + - diff_url + - head + - html_url + - id + - node_id + - issue_url + - 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 + type: object + version: '2026-03-10' scim-error: title: Scim Error description: Scim Error @@ -3327,60 +3660,1053 @@ components: nullable: true type: string description: The version of the tool used to generate the code scanning analysis. - responses: - not_found: - description: Resource not found - content: - application/json: - schema: - $ref: '#/components/schemas/basic-error' - service_unavailable: - description: Service unavailable - content: - application/json: - schema: - type: object - properties: - code: - type: string - message: - type: string - documentation_url: - type: string - not_modified: - description: Not modified - 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' - bad_request: - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/basic-error' - application/scim+json: - schema: - $ref: '#/components/schemas/scim-error' - code_scanning_forbidden_write: + 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 + team: + title: Team 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' + 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 + access_source: + description: >- + How the team's access to the repository was granted. This property + is only + + present when the team is returned in a repository context, such as + + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct + 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 + 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 + pull_request_creation_policy: + description: >- + The policy controlling who can create pull requests: all or + collaborators_only. + type: string + enum: + - all + - collaborators_only + example: all + 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: + + + - `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). + squash_merge_commit_message: + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + description: |- + 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. + merge_commit_title: + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + description: >- + 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). + merge_commit_message: + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + description: |- + 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. + 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 + x-github-breaking-changes: + - changeset: remove_use_squash_pr_title_as_default + patch: + properties: + use_squash_pr_title_as_default: null + type: object + version: '2026-03-10' + - changeset: deprecate_beta_media_type + patch: + properties: + master_branch: null + type: object + version: '2026-03-10' + - changeset: remove_has_downloads + patch: + properties: + has_downloads: null + 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 + - 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 + type: object + version: '2026-03-10' + link: + title: Link + description: Hypermedia Link + type: object + properties: + href: + type: string + required: + - href + 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 + 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-stack: + title: Pull Request Stack + description: The stack information associated with a pull request. + type: object + properties: + base: + type: object + properties: + ref: + type: string + description: The base ref of the stack this pull request belongs to. + sha: + type: string + description: The base SHA of the stack this pull request belongs to. + required: + - ref + - sha + size: + type: integer + description: The total number of pull requests in the stack. + position: + type: integer + description: >- + The one-based position of this pull request within the stack, where + 1 is the bottom of the stack. + id: + type: integer + description: The ID of the stack that this pull request belongs to. + number: + type: integer + description: The number of the stack that this pull request belongs to. + required: + - base + nullable: true + 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 + 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 + responses: + not_found: + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + service_unavailable: + description: Service unavailable + content: + application/json: + schema: + type: object + properties: + code: + type: string + message: + type: string + documentation_url: + type: string + not_modified: + description: Not modified + 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' + bad_request: + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + application/scim+json: + schema: + $ref: '#/components/schemas/scim-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' + internal_error: + description: Internal Error + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' code_scanning_autofix_create_forbidden: description: >- Response if the repository is archived, if GitHub Advanced Security is @@ -4866,3 +6192,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/code_security.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/code_security.yaml index dce5802..ede1394 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/code_security.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/code_security.yaml @@ -274,7 +274,6 @@ paths: default: enforced required: - name - - description examples: default: summary: Example for a code security configuration @@ -335,7 +334,21 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/code-security-default-configurations' + type: array + 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' examples: default: $ref: '#/components/examples/code-security-default-configurations' @@ -1224,7 +1237,6 @@ paths: default: enforced required: - name - - description examples: default: summary: Example for a code security configuration @@ -1279,7 +1291,21 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/code-security-default-configurations' + type: array + 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' examples: default: $ref: '#/components/examples/code-security-default-configurations' @@ -1327,6 +1353,8 @@ paths: schema: type: object additionalProperties: false + required: + - selected_repository_ids properties: selected_repository_ids: type: array @@ -2035,6 +2063,7 @@ components: - enterprise description: type: string + nullable: true description: A description of the code security configuration advanced_security: type: string @@ -3518,3 +3547,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/codes_of_conduct.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/codes_of_conduct.yaml index c510d77..bc01b15 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/codes_of_conduct.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/codes_of_conduct.yaml @@ -369,3 +369,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/codespaces.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/codespaces.yaml index ad9d73f..083ed8f 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/codespaces.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/codespaces.yaml @@ -8905,3 +8905,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/copilot.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/copilot.yaml index f4dfb92..03aabfe 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/copilot.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/copilot.yaml @@ -123,6 +123,129 @@ paths: category: copilot subcategory: copilot-usage-metrics x-stackQL-resource: copilot_usage_metrics + /enterprises/{enterprise}/copilot/metrics/reports/repos-1-day: + get: + summary: Get Copilot enterprise repository report for a specific day + description: >- + Use this endpoint to retrieve download links for the Copilot enterprise + repository report for a specific day. The report provides per-repository + pull request metrics for Copilot across the enterprise, with one entry + per repository. + + + The report contains repository-level pull request activity for the + specified day, including the Copilot Coding Agent (CCA) and Copilot Code + Review (CCR) breakdowns. Only repositories that had activity on the + specified day are included. Reports are generated daily and made + available for download through signed URLs with a limited expiration + time. + + + The response includes download links to the report files, along with the + specific date of the report. The report covers a complete day for which + data has been processed. + + + Enterprise owners, billing managers, and authorized users with + fine-grained "View Enterprise Copilot Metrics" permission can retrieve + Copilot metrics reports for the enterprise. OAuth app tokens and + personal access tokens (classic) need either the + `manage_billing:copilot` or `read:enterprise` scopes to use this + endpoint. + tags: + - copilot + operationId: copilot/copilot-enterprise-repos-one-day-report + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-enterprise-repository-report-for-a-specific-day + parameters: + - $ref: '#/components/parameters/enterprise' + - $ref: '#/components/parameters/day' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-usage-metrics-1-day-report' + examples: + default: + $ref: '#/components/examples/copilot-usage-metrics-1-day-report' + '204': + $ref: '#/components/responses/no_content' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '500': + $ref: '#/components/responses/internal_error' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: copilot + subcategory: copilot-usage-metrics + x-stackQL-resource: copilot_usage_metrics + /enterprises/{enterprise}/copilot/metrics/reports/user-teams-1-day: + get: + summary: Get Copilot enterprise user-teams report for a specific day + description: >- + Use this endpoint to retrieve download links for the Copilot enterprise + user-teams report for a specific day. The report provides user-team join + data for Copilot across the enterprise, with one entry per user-team + pair. + + + The report contains user-team membership data for the specified day, + enabling consumers to join with the existing enterprise user reports to + compute team-level usage metrics. Reports are generated daily and made + available for download through signed URLs with a limited expiration + time. + + + The response includes download links to the report files, along with the + specific date of the report. The report covers a complete day for which + data has been processed. + + + Enterprise owners, billing managers, and authorized users with + fine-grained "View Enterprise Copilot Metrics" permission can retrieve + Copilot metrics reports for the enterprise. OAuth app tokens and + personal access tokens (classic) need either the + `manage_billing:copilot` or `read:enterprise` scopes to use this + endpoint. + tags: + - copilot + operationId: copilot/copilot-enterprise-user-teams-one-day-report + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-enterprise-user-teams-report-for-a-specific-day + parameters: + - $ref: '#/components/parameters/enterprise' + - $ref: '#/components/parameters/day' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-usage-metrics-1-day-report' + examples: + default: + $ref: '#/components/examples/copilot-usage-metrics-1-day-report' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '500': + $ref: '#/components/responses/internal_error' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: copilot + subcategory: copilot-usage-metrics + x-stackQL-resource: copilot_usage_metrics /enterprises/{enterprise}/copilot/metrics/reports/users-1-day: get: summary: Get Copilot users usage metrics for a specific day @@ -247,6 +370,265 @@ paths: category: copilot subcategory: copilot-usage-metrics x-stackQL-resource: copilot_usage_metrics + /enterprises/{enterprise}/copilot/policies/coding_agent: + put: + summary: Set the coding agent policy for an enterprise + description: >- + Sets the policy for Copilot cloud agent usage across an enterprise. + + + Enterprise owners can configure whether Copilot cloud agent is enabled + for all + + organizations, disabled for all organizations, configured by individual + organization + + admins, or enabled for selected organizations only. + + + Only enterprise owners can set the coding agent policy for their + enterprise. + + + OAuth app tokens and personal access tokens (classic) need either the + `manage_billing:copilot` or `admin:enterprise` scopes to use this + endpoint. + tags: + - copilot + operationId: copilot/set-enterprise-coding-agent-policy + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot/copilot-coding-agent-management#set-the-coding-agent-policy-for-an-enterprise + parameters: + - $ref: '#/components/parameters/enterprise' + requestBody: + description: The coding agent policy configuration + required: true + content: + application/json: + schema: + type: object + properties: + policy_state: + type: string + description: >- + The policy state for Copilot cloud agent in the enterprise. + Can be one of `enabled_for_all_orgs`, + `disabled_for_all_orgs`, `enabled_for_selected_orgs`, or + `configured_by_org_admins`. + enum: + - enabled_for_all_orgs + - disabled_for_all_orgs + - enabled_for_selected_orgs + - configured_by_org_admins + required: + - policy_state + examples: + default: + summary: Enable coding agent for all organizations + value: + policy_state: enabled_for_all_orgs + responses: + '204': + $ref: '#/components/responses/no_content' + '400': + $ref: '#/components/responses/bad_request' + x-github: + enabledForGitHubApps: false + category: copilot + subcategory: copilot-coding-agent-management + x-stackQL-resource: copilot_coding_agent_management + /enterprises/{enterprise}/copilot/policies/coding_agent/organizations: + post: + summary: Add organizations to the enterprise coding agent policy + description: >- + Enables Copilot cloud agent for the specified organizations within the + enterprise. + + + The enterprise's coding agent policy must be set to + `enabled_for_selected_orgs` before + + using this endpoint. Organizations can be specified by login or matched + via custom properties. + + + Only organizations that have Copilot enabled and belong to the + enterprise will be affected. + + + Only enterprise owners can add organizations to the coding agent policy. + + + OAuth app tokens and personal access tokens (classic) need either the + `manage_billing:copilot` or `admin:enterprise` scopes to use this + endpoint. + tags: + - copilot + operationId: copilot/add-organizations-to-enterprise-coding-agent-policy + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot/copilot-coding-agent-management#add-organizations-to-the-enterprise-coding-agent-policy + parameters: + - $ref: '#/components/parameters/enterprise' + requestBody: + description: The organizations to enable Copilot cloud agent for + required: true + content: + application/json: + schema: + type: object + properties: + organizations: + type: array + description: >- + List of organization logins within the enterprise to enable + Copilot cloud agent for. + items: + type: string + custom_properties: + type: array + description: >- + List of custom property filters to match organizations. + Organizations matching any of the specified property + name/value pairs will be included. This is a one-time + operation, setting the property on an organization in the + future will not automatically update its coding agent + policy. + items: + type: object + properties: + property_name: + type: string + description: The name of the custom property to filter by. + values: + type: array + description: The values of the custom property to match. + items: + type: string + required: + - property_name + - values + examples: + default: + summary: Add organizations that match a login or have a custom property + value: + organizations: + - my-org-1 + - my-org-2 + custom_properties: + - property_name: department + values: + - engineering + - security + responses: + '204': + $ref: '#/components/responses/no_content' + '400': + $ref: '#/components/responses/bad_request' + x-github: + enabledForGitHubApps: false + category: copilot + subcategory: copilot-coding-agent-management + x-stackQL-resource: copilot_coding_agent_management + delete: + summary: Remove organizations from the enterprise coding agent policy + description: >- + Disables Copilot cloud agent for the specified organizations within the + enterprise. + + + The enterprise's coding agent policy must be set to + `enabled_for_selected_orgs` before + + using this endpoint. Organizations can be specified by login or matched + via custom properties. + + + Only organizations that have Copilot enabled and belong to the + enterprise will be affected. + + + Only enterprise owners can remove organizations from the coding agent + policy. + + + OAuth app tokens and personal access tokens (classic) need either the + `manage_billing:copilot` or `admin:enterprise` scopes to use this + endpoint. + tags: + - copilot + operationId: copilot/remove-organizations-from-enterprise-coding-agent-policy + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot/copilot-coding-agent-management#remove-organizations-from-the-enterprise-coding-agent-policy + parameters: + - $ref: '#/components/parameters/enterprise' + requestBody: + description: The organizations to disable Copilot cloud agent for + required: true + content: + application/json: + schema: + type: object + properties: + organizations: + type: array + description: >- + List of organization logins within the enterprise to disable + Copilot cloud agent for. + items: + type: string + custom_properties: + type: array + description: >- + List of custom property filters to match organizations. + Organizations matching any of the specified property + name/value pairs will be included. This is a one-time + operation, setting the property on an organization in the + future will not automatically update its coding agent + policy. + items: + type: object + properties: + property_name: + type: string + description: The name of the custom property to filter by. + values: + type: array + description: The values of the custom property to match. + items: + type: string + required: + - property_name + - values + examples: + default: + summary: >- + Remove organizations that match a login or have a custom + property + value: + organizations: + - my-org-1 + - my-org-2 + custom_properties: + - property_name: department + values: + - engineering + - security + responses: + '204': + $ref: '#/components/responses/no_content' + '400': + $ref: '#/components/responses/bad_request' + x-github: + enabledForGitHubApps: false + category: copilot + subcategory: copilot-coding-agent-management + x-stackQL-resource: copilot_coding_agent_management /orgs/{org}/copilot/billing: get: summary: Get Copilot seat information and settings for an organization @@ -816,7 +1198,7 @@ paths: x-stackQL-resource: copilot_user_management /orgs/{org}/copilot/coding-agent/permissions: get: - summary: Get Copilot coding agent permissions for an organization + summary: Get Copilot cloud agent permissions for an organization description: >- > [!NOTE] @@ -826,11 +1208,11 @@ paths: Gets information about which repositories in an organization have been enabled - or disabled for the Copilot coding agent. + or disabled for the Copilot cloud agent. - Organization owners can configure whether Copilot coding agent is - enabled for + Organization owners can configure whether Copilot cloud agent is enabled + for all repositories, selected repositories, or no repositories owned by organization. @@ -844,7 +1226,7 @@ paths: externalDocs: description: API method documentation url: >- - https://docs.github.com/rest/copilot/copilot-coding-agent-management#get-copilot-coding-agent-permissions-for-an-organization + https://docs.github.com/rest/copilot/copilot-coding-agent-management#get-copilot-cloud-agent-permissions-for-an-organization parameters: - $ref: '#/components/parameters/org' responses: @@ -858,7 +1240,7 @@ paths: enabled_repositories: type: string description: >- - The policy for which repositories can use Copilot coding + The policy for which repositories can use Copilot cloud agent. Can be one of `all`, `selected`, or `none`. enum: - all @@ -901,7 +1283,7 @@ paths: subcategory: copilot-coding-agent-management x-stackQL-resource: copilot_coding_agent_management put: - summary: Set Copilot coding agent permissions for an organization + summary: Set Copilot cloud agent permissions for an organization description: >- > [!NOTE] @@ -909,11 +1291,11 @@ paths: Sets the policy for which repositories in an organization can use - Copilot coding agent. + Copilot cloud agent. - Organization owners can configure whether Copilot coding agent is - enabled for + Organization owners can configure whether Copilot cloud agent is enabled + for all repositories, selected repositories, or no repositories owned by the organization. @@ -927,7 +1309,7 @@ paths: externalDocs: description: API method documentation url: >- - https://docs.github.com/rest/copilot/copilot-coding-agent-management#set-copilot-coding-agent-permissions-for-an-organization + https://docs.github.com/rest/copilot/copilot-coding-agent-management#set-copilot-cloud-agent-permissions-for-an-organization parameters: - $ref: '#/components/parameters/org' requestBody: @@ -940,7 +1322,7 @@ paths: enabled_repositories: type: string description: >- - The policy for which repositories can use Copilot coding + The policy for which repositories can use Copilot cloud agent. Can be one of `all`, `selected`, or `none`. enum: - all @@ -973,15 +1355,15 @@ paths: x-stackQL-resource: copilot_coding_agent_management /orgs/{org}/copilot/coding-agent/permissions/repositories: get: - summary: List repositories enabled for Copilot coding agent in an organization + summary: List repositories enabled for Copilot cloud agent in an organization description: >- > [!NOTE] > This endpoint is in public preview and is subject to change. - Lists the selected repositories that are enabled for Copilot coding - agent in an organization. + Lists the selected repositories that are enabled for Copilot cloud agent + in an organization. Organization owners can use this endpoint when the coding agent @@ -998,7 +1380,7 @@ paths: externalDocs: description: API method documentation url: >- - https://docs.github.com/rest/copilot/copilot-coding-agent-management#list-repositories-enabled-for-copilot-coding-agent-in-an-organization + https://docs.github.com/rest/copilot/copilot-coding-agent-management#list-repositories-enabled-for-copilot-cloud-agent-in-an-organization parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/per-page' @@ -1040,7 +1422,7 @@ paths: subcategory: copilot-coding-agent-management x-stackQL-resource: copilot_coding_agent_management put: - summary: Set selected repositories for Copilot coding agent in an organization + summary: Set selected repositories for Copilot cloud agent in an organization description: >- > [!NOTE] @@ -1048,9 +1430,9 @@ paths: Replaces the list of selected repositories that are enabled for Copilot - coding + cloud - agent in an organization. This method can only be called when the coding + agent in an organization. This method can only be called when the cloud agent repository policy is set to `selected`. @@ -1064,7 +1446,7 @@ paths: externalDocs: description: API method documentation url: >- - https://docs.github.com/rest/copilot/copilot-coding-agent-management#set-selected-repositories-for-copilot-coding-agent-in-an-organization + https://docs.github.com/rest/copilot/copilot-coding-agent-management#set-selected-repositories-for-copilot-cloud-agent-in-an-organization parameters: - $ref: '#/components/parameters/org' requestBody: @@ -1075,7 +1457,7 @@ paths: type: object properties: selected_repository_ids: - description: List of repository IDs to enable for Copilot coding agent. + description: List of repository IDs to enable for Copilot cloud agent. type: array items: type: integer @@ -1111,7 +1493,7 @@ paths: x-stackQL-resource: copilot_coding_agent_management /orgs/{org}/copilot/coding-agent/permissions/repositories/{repository_id}: put: - summary: Enable a repository for Copilot coding agent in an organization + summary: Enable a repository for Copilot cloud agent in an organization description: >- > [!NOTE] @@ -1121,9 +1503,9 @@ paths: Adds a repository to the list of selected repositories enabled for Copilot - coding agent in an organization. This method can only be called when the + cloud agent in an organization. This method can only be called when the - coding agent repository policy is set to `selected`. + cloud agent repository policy is set to `selected`. OAuth app tokens and personal access tokens (classic) need the @@ -1134,7 +1516,7 @@ paths: externalDocs: description: API method documentation url: >- - https://docs.github.com/rest/copilot/copilot-coding-agent-management#enable-a-repository-for-copilot-coding-agent-in-an-organization + https://docs.github.com/rest/copilot/copilot-coding-agent-management#enable-a-repository-for-copilot-cloud-agent-in-an-organization parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/repository-id' @@ -1160,7 +1542,7 @@ paths: subcategory: copilot-coding-agent-management x-stackQL-resource: copilot_coding_agent_management delete: - summary: Disable a repository for Copilot coding agent in an organization + summary: Disable a repository for Copilot cloud agent in an organization description: >- > [!NOTE] @@ -1170,9 +1552,9 @@ paths: Removes a repository from the list of selected repositories enabled for Copilot - coding agent in an organization. This method can only be called when the + cloud agent in an organization. This method can only be called when the - coding agent repository policy is set to `selected`. + cloud agent repository policy is set to `selected`. OAuth app tokens and personal access tokens (classic) need the @@ -1183,7 +1565,7 @@ paths: externalDocs: description: API method documentation url: >- - https://docs.github.com/rest/copilot/copilot-coding-agent-management#disable-a-repository-for-copilot-coding-agent-in-an-organization + https://docs.github.com/rest/copilot/copilot-coding-agent-management#disable-a-repository-for-copilot-cloud-agent-in-an-organization parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/repository-id' @@ -1390,119 +1772,148 @@ paths: category: copilot subcategory: copilot-content-exclusion-management x-stackQL-resource: copilot_content_exclusion_management - /orgs/{org}/copilot/metrics: + /orgs/{org}/copilot/metrics/reports/organization-1-day: get: - summary: Get Copilot metrics for an organization + summary: Get Copilot organization usage metrics for a specific day 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. + Use this endpoint to retrieve download links for the Copilot + organization usage metrics report for a specific day. The report + provides comprehensive usage data for Copilot features across the + organization. - > [!NOTE] + The report contains aggregated metrics for the specified day, including + usage statistics for various Copilot features, user engagement data, and + feature adoption metrics. Reports are generated daily and made available + for download through signed URLs with a limited expiration time. + - > 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 includes download links to the report files, along with the + specific date of the report. The report covers a complete day for which + data has been processed. + + + Organization owners and authorized users with fine-grained "View + Organization Copilot Metrics" permission can retrieve Copilot metrics + reports for the organization. OAuth app tokens and personal access + tokens (classic) need the `read:org` scope to use this endpoint. - The response contains metrics for up to 100 days prior. Metrics are - processed once per day for the previous day, + For more information about organization metrics attribution, see [How + are metrics attributed across + organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations). + tags: + - copilot + operationId: copilot/copilot-organization-one-day-usage-metrics + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-usage-metrics-for-a-specific-day + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/day' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-usage-metrics-1-day-report' + examples: + default: + $ref: '#/components/examples/copilot-usage-metrics-1-day-report' + '204': + $ref: '#/components/responses/no_content' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '500': + $ref: '#/components/responses/internal_error' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: copilot + subcategory: copilot-usage-metrics + x-stackQL-resource: copilot_usage_metrics + /orgs/{org}/copilot/metrics/reports/organization-28-day/latest: + get: + summary: Get Copilot organization usage metrics + description: >- + Use this endpoint to retrieve download links for the latest 28-day + organization Copilot usage metrics report. The report provides + comprehensive usage data for Copilot features across the organization. + - and the response will only include data up until yesterday. In order for - an end user to be counted towards these metrics, + The report contains aggregated metrics for the previous 28 days, + including usage statistics for various Copilot features, user engagement + data, and feature adoption metrics. Reports are generated daily and made + available for download through signed URLs with a limited expiration + time. - they must have telemetry enabled in their IDE. + The response includes download links to the report files, along with the + specific date range covered by the report. The report covers a complete + 28-day period ending on the most recent day for which data has been + processed. - 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. + Organization owners and authorized users with fine-grained "View + Organization Copilot Metrics" permission can retrieve Copilot metrics + reports for the organization. OAuth app tokens and personal access + tokens (classic) need the `read:org` scope to use this endpoint. - OAuth app tokens and personal access tokens (classic) need either the - `manage_billing:copilot`, `read:org`, or `read:enterprise` scopes to use - this endpoint. + For more information about organization metrics attribution, see [How + are metrics attributed across + organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations). tags: - copilot - operationId: copilot/copilot-metrics-for-organization + operationId: copilot/copilot-organization-usage-metrics externalDocs: description: API method documentation url: >- - https://docs.github.com/rest/copilot/copilot-metrics#get-copilot-metrics-for-an-organization + https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-usage-metrics parameters: - $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: '200': description: Response content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/copilot-usage-metrics-day' + $ref: '#/components/schemas/copilot-usage-metrics-28-day-report' examples: default: - $ref: '#/components/examples/copilot-usage-metrics-for-day' + $ref: '#/components/examples/copilot-usage-metrics-28-day-report' '403': $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/not_found' - '422': - $ref: '#/components/responses/usage_metrics_api_disabled' '500': $ref: '#/components/responses/internal_error' x-github: githubCloudOnly: false enabledForGitHubApps: true category: copilot - subcategory: copilot-metrics - x-stackQL-resource: copilot_metrics - /orgs/{org}/copilot/metrics/reports/organization-1-day: + subcategory: copilot-usage-metrics + x-stackQL-resource: copilot_usage_metrics + /orgs/{org}/copilot/metrics/reports/repos-1-day: get: - summary: Get Copilot organization usage metrics for a specific day + summary: Get Copilot organization repository report for a specific day description: >- Use this endpoint to retrieve download links for the Copilot - organization usage metrics report for a specific day. The report - provides comprehensive usage data for Copilot features across the - organization. + organization repository report for a specific day. The report provides + per-repository pull request metrics for Copilot across the organization, + with one entry per repository. - The report contains aggregated metrics for the specified day, including - usage statistics for various Copilot features, user engagement data, and - feature adoption metrics. Reports are generated daily and made available - for download through signed URLs with a limited expiration time. + The report contains repository-level pull request activity for the + specified day, including the Copilot Coding Agent (CCA) and Copilot Code + Review (CCR) breakdowns. Only repositories that had activity on the + specified day are included. Reports are generated daily and made + available for download through signed URLs with a limited expiration + time. The response includes download links to the report files, along with the @@ -1521,11 +1932,11 @@ paths: organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations). tags: - copilot - operationId: copilot/copilot-organization-one-day-usage-metrics + operationId: copilot/copilot-organization-repos-one-day-report externalDocs: description: API method documentation url: >- - https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-usage-metrics-for-a-specific-day + https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-repository-report-for-a-specific-day parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/day' @@ -1553,26 +1964,26 @@ paths: category: copilot subcategory: copilot-usage-metrics x-stackQL-resource: copilot_usage_metrics - /orgs/{org}/copilot/metrics/reports/organization-28-day/latest: + /orgs/{org}/copilot/metrics/reports/user-teams-1-day: get: - summary: Get Copilot organization usage metrics + summary: Get Copilot organization user-teams report for a specific day description: >- - Use this endpoint to retrieve download links for the latest 28-day - organization Copilot usage metrics report. The report provides - comprehensive usage data for Copilot features across the organization. + Use this endpoint to retrieve download links for the Copilot + organization user-teams report for a specific day. The report provides + user-team join data for Copilot across the organization, with one entry + per user-team pair. - The report contains aggregated metrics for the previous 28 days, - including usage statistics for various Copilot features, user engagement - data, and feature adoption metrics. Reports are generated daily and made - available for download through signed URLs with a limited expiration - time. + The report contains user-team membership data for the specified day, + enabling consumers to join with the existing organization user reports + to compute team-level usage metrics. Reports are generated daily and + made available for download through signed URLs with a limited + expiration time. The response includes download links to the report files, along with the - specific date range covered by the report. The report covers a complete - 28-day period ending on the most recent day for which data has been - processed. + specific date of the report. The report covers a complete day for which + data has been processed. Organization owners and authorized users with fine-grained "View @@ -1586,23 +1997,26 @@ paths: organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations). tags: - copilot - operationId: copilot/copilot-organization-usage-metrics + operationId: copilot/copilot-organization-user-teams-one-day-report externalDocs: description: API method documentation url: >- - https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-usage-metrics + https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-user-teams-report-for-a-specific-day parameters: - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/day' responses: '200': description: Response content: application/json: schema: - $ref: '#/components/schemas/copilot-usage-metrics-28-day-report' + $ref: '#/components/schemas/copilot-usage-metrics-1-day-report' examples: default: - $ref: '#/components/examples/copilot-usage-metrics-28-day-report' + $ref: '#/components/examples/copilot-usage-metrics-1-day-report' + '204': + $ref: '#/components/responses/no_content' '403': $ref: '#/components/responses/forbidden' '404': @@ -1812,107 +2226,193 @@ paths: category: copilot subcategory: copilot-user-management x-stackQL-resource: copilot_user_management - /orgs/{org}/team/{team_slug}/copilot/metrics: + /repos/{owner}/{repo}/copilot/cloud-agent/configuration: get: - summary: Get Copilot metrics for a team + summary: Get Copilot cloud agent configuration for a repository 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. - - > [!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, + > This endpoint is in public preview and is subject to change. - they must have telemetry enabled in their IDE. + Gets the Copilot cloud agent configuration for a repository, including + MCP server - To access this endpoint, the Copilot Metrics API access policy must be - enabled for the organization containing the team within GitHub settings. + configuration, enabled review tools, Actions workflow approval settings, + and firewall - 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. + configuration. - OAuth app tokens and personal access tokens (classic) need either the - `manage_billing:copilot`, `read:org`, or `read:enterprise` scopes to use - this endpoint. + OAuth app tokens and personal access tokens (classic) need the `repo` + scope to use this endpoint. tags: - copilot - operationId: copilot/copilot-metrics-for-team + operationId: copilot/get-copilot-cloud-agent-configuration externalDocs: description: API method documentation url: >- - https://docs.github.com/rest/copilot/copilot-metrics#get-copilot-metrics-for-a-team + https://docs.github.com/rest/copilot/copilot-cloud-agent-management#get-copilot-cloud-agent-configuration-for-a-repository parameters: - - $ref: '#/components/parameters/org' - - $ref: '#/components/parameters/team-slug' - - 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 + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' responses: '200': description: Response content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/copilot-usage-metrics-day' + type: object + properties: + mcp_configuration: + description: >- + The user-supplied MCP server configuration for the + repository, as a free-form JSON object. This will be set + to `null` if no configuration has been set. + + + The shape of a valid MCP configuration may evolve over + time, so this property is intentionally not strictly + typed. Clients should not assume a fixed schema. + nullable: true + type: object + additionalProperties: true + enabled_tools: + type: object + description: The enabled review tools for Copilot cloud agent. + properties: + codeql: + type: boolean + description: >- + Whether the CodeQL tool is enabled for the Copilot + cloud agent. + copilot_code_review: + type: boolean + description: >- + Whether the Copilot code review tool is enabled for + the Copilot cloud agent. + secret_scanning: + type: boolean + description: >- + Whether the secret scanning tool is enabled for the + Copilot cloud agent. + dependency_vulnerability_checks: + type: boolean + description: >- + Whether the dependency vulnerability checks tool is + enabled for the Copilot cloud agent. + required: + - codeql + - copilot_code_review + - secret_scanning + - dependency_vulnerability_checks + require_actions_workflow_approval: + type: boolean + description: >- + Whether Actions workflow approval is required for Copilot + cloud agent pull requests. + is_firewall_enabled: + type: boolean + description: Whether the firewall is enabled. + is_firewall_recommended_allowlist_enabled: + type: boolean + description: Whether the firewall recommended allowlist is enabled. + custom_allowlist: + type: array + description: >- + A list of custom allowlist entries, as hosts or URLs, that + the firewall will allow the Copilot cloud agent to access. + items: + type: string + description: >- + A custom allowlist entry, as a host or URL, that the + firewall will allow the Copilot cloud agent to access. + is_automations_enabled: + type: boolean + description: >- + Whether automations are enabled in this repository. When + true, users can create automations that automatically run + agents on a schedule or in response to events like new + issues or updated pull requests. + require_write_access_for_automation_triggers: + type: boolean + description: >- + Whether write access is required for automation triggers. + When true, automations will only run if the user + triggering the event has write access to the repository. + When false, users can create automations that listen for + events triggered by users without write access. + required: + - mcp_configuration + - enabled_tools + - require_actions_workflow_approval + - is_firewall_enabled + - is_firewall_recommended_allowlist_enabled + - custom_allowlist + - is_automations_enabled + - require_write_access_for_automation_triggers examples: default: - $ref: '#/components/examples/copilot-usage-metrics-for-day' + summary: Default configuration + value: + mcp_configuration: null + enabled_tools: + codeql: true + copilot_code_review: true + secret_scanning: true + dependency_vulnerability_checks: true + require_actions_workflow_approval: true + is_firewall_enabled: true + is_firewall_recommended_allowlist_enabled: true + custom_allowlist: [] + is_automations_enabled: true + require_write_access_for_automation_triggers: true + configured: + summary: >- + Configuration with an MCP server and a custom firewall + allowlist + value: + mcp_configuration: + mcpServers: + sentry: + type: local + command: npx + args: + - '@sentry/mcp-server@latest' + - '--host=$SENTRY_HOST' + env: + SENTRY_HOST: https://octo-org.sentry.io + SENTRY_ACCESS_TOKEN: $COPILOT_MCP_SENTRY_ACCESS_TOKEN + tools: + - search_issues + - get_issue_details + enabled_tools: + codeql: true + copilot_code_review: true + secret_scanning: true + dependency_vulnerability_checks: true + require_actions_workflow_approval: false + is_firewall_enabled: true + is_firewall_recommended_allowlist_enabled: true + custom_allowlist: + - sentry.io + - https://api.example.com + is_automations_enabled: true + require_write_access_for_automation_triggers: false + '401': + $ref: '#/components/responses/requires_authentication' '403': $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/not_found' - '422': - $ref: '#/components/responses/usage_metrics_api_disabled' '500': $ref: '#/components/responses/internal_error' x-github: githubCloudOnly: false enabledForGitHubApps: true category: copilot - subcategory: copilot-metrics - x-stackQL-resource: copilot_metrics + subcategory: copilot-cloud-agent-management + x-stackQL-resource: copilot_cloud_agent_management components: schemas: copilot-usage-metrics-1-day-report: @@ -2099,8 +2599,23 @@ components: description: The ownership type of the team type: string enum: - - enterprise + - enterprise + - organization + access_source: + description: >- + How the team's access to the repository was granted. This + property is only + + present when the team is returned in a repository context, such + as + + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs @@ -2582,45 +3097,6 @@ components: items: type: string description: The path to the file that will be excluded. - 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 basic-error: title: Basic Error description: Basic Error @@ -2634,6 +3110,29 @@ components: type: string status: type: string + 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 copilot-organization-seat-breakdown: title: Copilot Seat Breakdown description: The breakdown of Copilot Business seats for the organization. @@ -2887,6 +3386,20 @@ components: enum: - enterprise - organization + access_source: + description: >- + How the team's access to the repository was granted. This property + is only + + present when the team is returned in a repository context, such as + + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs @@ -2955,6 +3468,15 @@ components: updated_at: type: string format: date-time + notification_setting: + type: string + description: >- + Whether team members will receive notifications when the team is + mentioned. + example: notifications_enabled + enum: + - notifications_enabled + - notifications_disabled required: - id - url @@ -3360,283 +3882,6 @@ components: type: array items: type: string - 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. nullable-team-simple: title: Team Simple description: >- @@ -3741,6 +3986,17 @@ components: application/json: schema: $ref: '#/components/schemas/basic-error' + no_content: + description: A header with no content is returned. + bad_request: + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + application/scim+json: + schema: + $ref: '#/components/schemas/scim-error' requires_authentication: description: Requires authentication content: @@ -3771,16 +4027,6 @@ components: application/json: schema: $ref: '#/components/schemas/validation-error-simple' - usage_metrics_api_disabled: - description: >- - Copilot Usage Metrics API setting is disabled at the organization or - enterprise level. - content: - application/json: - schema: - $ref: '#/components/schemas/basic-error' - no_content: - description: A header with no content is returned. parameters: enterprise: name: enterprise @@ -3839,9 +4085,18 @@ components: required: true schema: type: string - team-slug: - name: team_slug - description: The slug of the team name. + 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: @@ -3850,14 +4105,14 @@ components: copilot-usage-metrics-1-day-report: value: download_links: - - https://example.com/copilot-usage-report-1.json - - https://example.com/copilot-usage-report-2.json + - https://example.com/copilot-usage-report-1.ndjson + - https://example.com/copilot-usage-report-2.ndjson report_day: '2025-07-01' copilot-usage-metrics-28-day-report: value: download_links: - - https://example.com/copilot-usage-report-1.json - - https://example.com/copilot-usage-report-2.json + - https://example.com/copilot-usage-report-1.ndjson + - https://example.com/copilot-usage-report-2.ndjson report_start_day: '2025-07-01' report_end_day: '2025-07-28' copilot-organization-details: @@ -4201,105 +4456,6 @@ components: value: octo-repo: - /src/some-dir/kernel.rs - copilot-usage-metrics-for-day: - value: - - 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 copilot-seat-detail-active: value: created_at: '2021-08-03T18:00:00-06:00' @@ -4390,6 +4546,46 @@ components: update: [] delete: [] replace: [] + copilot_repos_one_day_report: + id: github.copilot.copilot_repos_one_day_report + name: copilot_repos_one_day_report + title: Copilot Repos One Day Report + methods: + copilot_enterprise_repos_one_day_report: + operation: + $ref: >- + #/paths/~1enterprises~1{enterprise}~1copilot~1metrics~1reports~1repos-1-day/get + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/copilot_repos_one_day_report/methods/copilot_enterprise_repos_one_day_report + insert: [] + update: [] + delete: [] + replace: [] + copilot_user_teams_one_day_report: + id: github.copilot.copilot_user_teams_one_day_report + name: copilot_user_teams_one_day_report + title: Copilot User Teams One Day Report + methods: + copilot_enterprise_user_teams_one_day_report: + operation: + $ref: >- + #/paths/~1enterprises~1{enterprise}~1copilot~1metrics~1reports~1user-teams-1-day/get + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/copilot_user_teams_one_day_report/methods/copilot_enterprise_user_teams_one_day_report + insert: [] + update: [] + delete: [] + replace: [] copilot_user_one_day_usage_metrics: id: github.copilot.copilot_user_one_day_usage_metrics name: copilot_user_one_day_usage_metrics @@ -4430,6 +4626,61 @@ components: update: [] delete: [] replace: [] + coding_agent_policy: + id: github.copilot.coding_agent_policy + name: coding_agent_policy + title: Coding Agent Policy + methods: + set_enterprise_coding_agent_policy: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: >- + #/paths/~1enterprises~1{enterprise}~1copilot~1policies~1coding_agent/put + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: + - $ref: >- + #/components/x-stackQL-resources/coding_agent_policy/methods/set_enterprise_coding_agent_policy + coding_agent_policy_orgs: + id: github.copilot.coding_agent_policy_orgs + name: coding_agent_policy_orgs + title: Coding Agent Policy Orgs + methods: + add_organizations_to_enterprise_coding_agent_policy: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: >- + #/paths/~1enterprises~1{enterprise}~1copilot~1policies~1coding_agent~1organizations/post + response: + mediaType: application/json + openAPIDocKey: '204' + remove_organizations_from_enterprise_coding_agent_policy: + operation: + $ref: >- + #/paths/~1enterprises~1{enterprise}~1copilot~1policies~1coding_agent~1organizations/delete + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: [] + insert: + - $ref: >- + #/components/x-stackQL-resources/coding_agent_policy_orgs/methods/add_organizations_to_enterprise_coding_agent_policy + update: [] + delete: + - $ref: >- + #/components/x-stackQL-resources/coding_agent_policy_orgs/methods/remove_organizations_from_enterprise_coding_agent_policy + replace: [] org_details: id: github.copilot.org_details name: org_details @@ -4645,25 +4896,6 @@ components: replace: - $ref: >- #/components/x-stackQL-resources/org_content_exclusion/methods/set_copilot_content_exclusion_for_organization - org_copilot_metrics: - id: github.copilot.org_copilot_metrics - name: org_copilot_metrics - title: Org Copilot Metrics - methods: - copilot_metrics_for_organization: - operation: - $ref: '#/paths/~1orgs~1{org}~1copilot~1metrics/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: >- - #/components/x-stackQL-resources/org_copilot_metrics/methods/copilot_metrics_for_organization - insert: [] - update: [] - delete: [] - replace: [] org_copilot_one_day_usage_metrics: id: github.copilot.org_copilot_one_day_usage_metrics name: org_copilot_one_day_usage_metrics @@ -4704,6 +4936,45 @@ components: update: [] delete: [] replace: [] + org_copilot_repos_one_day_report: + id: github.copilot.org_copilot_repos_one_day_report + name: org_copilot_repos_one_day_report + title: Org Copilot Repos One Day Report + methods: + copilot_organization_repos_one_day_report: + operation: + $ref: '#/paths/~1orgs~1{org}~1copilot~1metrics~1reports~1repos-1-day/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/org_copilot_repos_one_day_report/methods/copilot_organization_repos_one_day_report + insert: [] + update: [] + delete: [] + replace: [] + org_copilot_user_teams_one_day_report: + id: github.copilot.org_copilot_user_teams_one_day_report + name: org_copilot_user_teams_one_day_report + title: Org Copilot User Teams One Day Report + methods: + copilot_organization_user_teams_one_day_report: + operation: + $ref: >- + #/paths/~1orgs~1{org}~1copilot~1metrics~1reports~1user-teams-1-day/get + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/org_copilot_user_teams_one_day_report/methods/copilot_organization_user_teams_one_day_report + insert: [] + update: [] + delete: [] + replace: [] org_copilot_user_one_day_usage_metrics: id: github.copilot.org_copilot_user_one_day_usage_metrics name: org_copilot_user_one_day_usage_metrics @@ -4762,24 +5033,33 @@ components: update: [] delete: [] replace: [] - copilot_metrics: - id: github.copilot.copilot_metrics - name: copilot_metrics - title: Copilot Metrics + repo_cloud_agent_configuration: + id: github.copilot.repo_cloud_agent_configuration + name: repo_cloud_agent_configuration + title: Repo Cloud Agent Configuration methods: - copilot_metrics_for_team: + get_copilot_cloud_agent_configuration: operation: - $ref: '#/paths/~1orgs~1{org}~1team~1{team_slug}~1copilot~1metrics/get' + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1copilot~1cloud-agent~1configuration/get response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - $ref: >- - #/components/x-stackQL-resources/copilot_metrics/methods/copilot_metrics_for_team + #/components/x-stackQL-resources/repo_cloud_agent_configuration/methods/get_copilot_cloud_agent_configuration insert: [] update: [] delete: [] replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/copilot_spaces.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/copilot_spaces.yaml new file mode 100644 index 0000000..093463d --- /dev/null +++ b/provider-dev/openapi/src/github/v00.00.00000/services/copilot_spaces.yaml @@ -0,0 +1,4026 @@ +openapi: 3.0.3 +info: + title: copilot_spaces API + description: github API + version: 1.1.4 +paths: + /orgs/{org}/copilot-spaces: + get: + summary: List organization Copilot Spaces + description: >- + Lists Copilot Spaces owned by an organization. The authenticated user + must have read access to the organization's Copilot Spaces. + + + Only Spaces that are readable by the authenticated user are returned. + This includes public Spaces and internal Spaces if the user is a member + of the organization. + + + OAuth app tokens and personal access tokens (classic) need the + `read:org` scope to use this endpoint. + + + Fine-grained tokens and GitHub App user access tokens must have been + granted access to the organization that owns the space. They must also + have been granted access to every repository referenced by resources in + a space; spaces with inaccessible resources are omitted from the + response. + tags: + - copilot-spaces + operationId: copilot-spaces/list-for-org + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/copilot-spaces#list-organization-copilot-spaces + parameters: + - $ref: '#/components/parameters/org' + - name: per_page + description: The number of results per page (max 100). + in: query + schema: + type: integer + minimum: 1 + maximum: 100 + default: 30 + - 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. + in: query + schema: + type: string + - 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. + in: query + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - spaces + properties: + spaces: + type: array + description: The list of Copilot Spaces on this page of results. + items: + $ref: '#/components/schemas/copilot-space' + examples: + default: + $ref: '#/components/examples/copilot-spaces-organization-list' + headers: + Link: + $ref: '#/components/headers/link' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: copilot-spaces + x-stackQL-resource: copilot_spaces + post: + summary: Create an organization Copilot Space + description: >- + Creates a new Copilot Space owned by an organization. The authenticated + user must have permissions to create spaces in the organization. + + + Organization members with appropriate permissions can create Copilot + Spaces to be shared within their organization. + + + OAuth app tokens and personal access tokens (classic) need the + `read:org` scope to use this endpoint. + + + Fine-grained tokens and GitHub App user access tokens must have been + granted access to the organization that owns the space. They must also + have been granted access to every repository referenced by the submitted + resources. + tags: + - copilot-spaces + operationId: copilot-spaces/create-for-org + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/copilot-spaces#create-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the Copilot Space. + example: Team Planning Space + description: + type: string + description: A description of the Copilot Space. + example: Organization space for team planning and coordination + general_instructions: + type: string + maxLength: 4000 + description: General instructions for the Copilot Space. + example: Help the team with planning and coordination tasks + base_role: + type: string + enum: + - reader + - writer + - admin + - no_access + description: >- + The base role that determines default permissions for + organization members. + + - `no_access`: No default access (default) + + - `reader`: Organization members can read the space + + - `writer`: Organization members can read and edit the space + + - `admin`: Organization members have full admin access to + the space + default: no_access + resources_attributes: + type: array + description: Resources to attach to the space. + items: + type: object + properties: + resource_type: + type: string + enum: + - repository + - github_file + - free_text + - github_issue + - github_pull_request + - media_content + - uploaded_text_file + description: The type of resource. + metadata: + type: object + description: Metadata specific to the resource type. + properties: + repository_id: + type: integer + description: Repository ID for repository or file resources. + file_path: + type: string + description: File path for file resources. + text: + type: string + description: Text content for free text resources. + name: + type: string + description: Name for the resource. + number: + type: integer + description: Issue or PR number. + required: + - name + examples: + default: + value: + name: Team Planning Space + description: Organization space for team planning and coordination + general_instructions: Help the team with planning and coordination tasks + resources_attributes: + - resource_type: github_file + metadata: + repository_id: 123456 + file_path: docs/planning.md + - resource_type: free_text + metadata: + name: Team Guidelines + text: >- + Our team follows agile methodology and holds daily + standups + responses: + '201': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space' + examples: + default: + $ref: '#/components/examples/copilot-space-organization' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: copilot-spaces + x-stackQL-resource: copilot_spaces + /orgs/{org}/copilot-spaces/{space_number}: + get: + summary: Get an organization Copilot Space + description: >- + Gets details about a specific Copilot Space owned by an organization. + The authenticated user must have read access to the Space. + + + Internal Spaces require the authenticated user to be a member of the + organization or have been granted read permissions. + + + OAuth app tokens and personal access tokens (classic) need the + `read:org` scope to use this endpoint. + + + Fine-grained tokens and GitHub App user access tokens must have been + granted access to the organization that owns the space. They must also + have been granted access to every repository referenced by resources in + the space. + tags: + - copilot-spaces + operationId: copilot-spaces/get-for-org + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/copilot-spaces#get-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space' + examples: + default: + $ref: '#/components/examples/copilot-space-organization' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: copilot-spaces + x-stackQL-resource: copilot_spaces + put: + summary: Set an organization Copilot Space + description: >- + Updates a Copilot Space owned by an organization. The authenticated user + must have permissions to update spaces in the organization. + + + Organization members with appropriate permissions can update Copilot + Spaces owned by their organization. + + + OAuth app tokens and personal access tokens (classic) need the + `read:org` scope to use this endpoint. + + + Fine-grained tokens and GitHub App user access tokens must have been + granted access to the organization that owns the space. They must also + have been granted access to every repository referenced by resources in + the space, including any being added or updated. + tags: + - copilot-spaces + operationId: copilot-spaces/update-for-org + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/copilot-spaces#set-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + 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 Copilot Space. + example: Updated Team Planning Space + description: + type: string + description: A description of the Copilot Space. + example: >- + Updated organization space for team planning and + coordination + general_instructions: + type: string + maxLength: 4000 + description: General instructions for the Copilot Space. + example: >- + Updated instructions to help the team with planning and + coordination tasks + base_role: + type: string + enum: + - reader + - writer + - admin + - no_access + description: >- + The base role that determines default permissions for + organization members. Changing this field requires admin + permissions. + + - `no_access`: No default access (default) + + - `reader`: Organization members can read the space + + - `writer`: Organization members can read and edit the space + + - `admin`: Organization members have full admin access to + the space + resources_attributes: + type: array + description: Resources to attach to the space. + items: + type: object + properties: + resource_type: + type: string + enum: + - repository + - github_file + - free_text + - github_issue + - github_pull_request + - media_content + - uploaded_text_file + description: The type of resource. + metadata: + type: object + description: Metadata specific to the resource type. + properties: + repository_id: + type: integer + description: Repository ID for repository or file resources. + file_path: + type: string + description: File path for file resources. + text: + type: string + description: Text content for free text resources. + name: + type: string + description: Name for the resource. + number: + type: integer + description: Issue or PR number. + examples: + default: + value: + name: Updated Team Planning Space + description: >- + Updated organization space for team planning and + coordination + general_instructions: >- + Updated instructions to help the team with planning and + coordination tasks + resources_attributes: + - resource_type: github_file + metadata: + repository_id: 123456 + file_path: docs/updated-planning.md + - id: 789 + _destroy: true + - id: 456 + resource_type: free_text + metadata: + name: Updated Team Guidelines + text: >- + Our updated team follows agile methodology and holds + daily standups + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space' + examples: + default: + $ref: '#/components/examples/copilot-space-organization' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: copilot-spaces + x-stackQL-resource: copilot_spaces + delete: + summary: Delete an organization Copilot Space + description: >- + Deletes a Copilot Space owned by an organization. The authenticated user + must have permissions to delete spaces in the organization. + + + **Warning:** This action is permanent and cannot be undone. Deleting a + Copilot Space will remove all associated resources and configurations. + + + Organization members with appropriate permissions can delete Copilot + Spaces owned by their organization. + + + OAuth app tokens and personal access tokens (classic) need both the + `read:org` and `repo` scopes to use this endpoint. + + + Fine-grained tokens and GitHub App user access tokens must have been + granted access to the organization that owns the space. They must also + have been granted access to every repository referenced by resources in + the space. + tags: + - copilot-spaces + operationId: copilot-spaces/delete-for-org + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/copilot-spaces#delete-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + responses: + '204': + description: The Copilot Space has been successfully deleted. + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: copilot-spaces + x-stackQL-resource: copilot_spaces + /orgs/{org}/copilot-spaces/{space_number}/collaborators: + get: + summary: List collaborators for an organization Copilot Space + description: >- + Lists all collaborators for a specific Copilot Space owned by an + organization. The authenticated user must have appropriate permissions + to view collaborators. + + + Each collaborator entry specifies which user or team has access to the + space and at what level (reader, writer, or admin). The space owner + (organization) is excluded from this list. + + + **Note:** Team collaborators listed here are teams that are defined in + the organization. + + + OAuth app tokens and personal access tokens (classic) need the + `read:org` scope to use this endpoint. + + + Fine-grained tokens and GitHub App user access tokens must have been + granted access to the organization that owns the space. They must also + have been granted access to every repository referenced by resources in + the space. + tags: + - copilot-spaces + operationId: copilot-spaces/list-collaborators-for-org + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/collaborators#list-collaborators-for-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - collaborators + properties: + collaborators: + type: array + description: The list of collaborators for this Copilot Space. + items: + $ref: '#/components/schemas/copilot-space-collaborator' + examples: + default: + value: + collaborators: + - actor_type: User + role: writer + login: octocat + id: 12345 + node_id: MDQ6VXNlcjEyMzQ1 + 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 + name: The Octocat + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + hireable: false + bio: There once was... + twitter_username: octocat + public_repos: 2 + public_gists: 1 + followers: 20 + following: 0 + created_at: '2008-01-14T04:33:35Z' + updated_at: '2008-01-14T04:33:35Z' + - actor_type: Team + role: reader + id: 67890 + node_id: MDQ6VGVhbTY3ODkw + url: https://api.github.com/teams/67890 + html_url: https://github.com/orgs/octo-org/teams/developers + name: Developers + slug: developers + description: Team of developers + privacy: closed + notification_setting: notifications_enabled + members_url: https://api.github.com/teams/67890/members{/member} + repositories_url: https://api.github.com/teams/67890/repos + parent: null + created_at: '2017-07-14T16:53:42Z' + updated_at: '2017-08-17T12:37:15Z' + organization: + login: octo-org + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + 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 + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: collaborators + x-stackQL-resource: collaborators + post: + summary: Add a collaborator to an organization Copilot Space + description: >- + Adds a collaborator (user or team) to a specific Copilot Space owned by + an organization. The authenticated user must have appropriate + permissions to manage collaborators. + + + **Note:** When adding users as collaborators, they must already be + members of the organization. + + When adding teams as collaborators, they must be defined in the + organization. + + + OAuth app tokens and personal access tokens (classic) need the + `write:org` scope to use this endpoint. + + + Fine-grained tokens and GitHub App user access tokens must have been + granted access to the organization that owns the space. They must also + have been granted access to every repository referenced by resources in + the space. + tags: + - copilot-spaces + operationId: copilot-spaces/add-collaborator-for-org + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/collaborators#add-a-collaborator-to-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - actor_type + - actor_identifier + - role + properties: + actor_type: + type: string + enum: + - User + - Team + description: The type of actor (user or team). + actor_identifier: + type: string + description: >- + The username (for users) or team slug (for teams). The + numeric ID of a user or team is also accepted. + role: + type: string + enum: + - reader + - writer + - admin + description: The role to grant to the collaborator. + examples: + user: + value: + actor_type: User + actor_identifier: octocat + role: writer + team: + value: + actor_type: Team + actor_identifier: developers + role: reader + responses: + '201': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-collaborator' + examples: + user: + value: + actor_type: User + role: writer + login: octocat + id: 12345 + node_id: MDQ6VXNlcjEyMzQ1 + 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 + name: The Octocat + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + hireable: false + bio: There once was... + twitter_username: octocat + public_repos: 2 + public_gists: 1 + followers: 20 + following: 0 + created_at: '2008-01-14T04:33:35Z' + updated_at: '2008-01-14T04:33:35Z' + team: + value: + actor_type: Team + role: reader + id: 67890 + node_id: MDQ6VGVhbTY3ODkw + url: https://api.github.com/teams/67890 + html_url: https://github.com/orgs/octo-org/teams/developers + name: Developers + slug: developers + type: Team + description: Team of developers + privacy: closed + notification_setting: notifications_enabled + members_url: https://api.github.com/teams/67890/members{/member} + repositories_url: https://api.github.com/teams/67890/repos + parent: null + organization_id: 1 + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: collaborators + x-stackQL-resource: collaborators + /orgs/{org}/copilot-spaces/{space_number}/collaborators/{actor_type}/{actor_identifier}: + put: + summary: Set a collaborator role for an organization Copilot Space + description: >- + Updates the role of a collaborator for a specific Copilot Space owned by + an organization. The authenticated user must have appropriate + permissions to manage collaborators. + + + OAuth app tokens and personal access tokens (classic) need the + `write:org` scope to use this endpoint. + + + Fine-grained tokens and GitHub App user access tokens must have been + granted access to the organization that owns the space. They must also + have been granted access to every repository referenced by resources in + the space. + tags: + - copilot-spaces + operationId: copilot-spaces/update-collaborator-for-org + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/collaborators#set-a-collaborator-role-for-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + - name: actor_type + description: The type of actor (user or team). + in: path + required: true + schema: + type: string + enum: + - User + - Team + - name: actor_identifier + description: >- + The username (for users) or team slug (for teams). The numeric ID of + a user or team is also accepted. + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - role + properties: + role: + type: string + enum: + - reader + - writer + - admin + - no_access + description: >- + The new role to grant to the collaborator. Use `no_access` + to remove the collaborator. + examples: + default: + value: + role: admin + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-collaborator' + examples: + user: + value: + actor_type: User + role: admin + login: octocat + id: 12345 + node_id: MDQ6VXNlcjEyMzQ1 + 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 + name: The Octocat + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + hireable: false + bio: There once was... + twitter_username: octocat + public_repos: 2 + public_gists: 1 + followers: 20 + following: 0 + created_at: '2008-01-14T04:33:35Z' + updated_at: '2008-01-14T04:33:35Z' + team: + value: + actor_type: Team + role: admin + id: 67890 + node_id: MDQ6VGVhbTY3ODkw + url: https://api.github.com/teams/67890 + html_url: https://github.com/orgs/octo-org/teams/developers + name: Developers + slug: developers + type: Team + description: Team of developers + privacy: closed + notification_setting: notifications_enabled + members_url: https://api.github.com/teams/67890/members{/member} + repositories_url: https://api.github.com/teams/67890/repos + parent: null + organization_id: 1 + '204': + description: >- + Response when `role` is `no_access` and the collaborator was + removed. + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: collaborators + x-stackQL-resource: collaborators + delete: + summary: Remove a collaborator from an organization Copilot Space + description: >- + Removes a collaborator from a specific Copilot Space owned by an + organization. The authenticated user must have appropriate permissions + to manage collaborators. + + + OAuth app tokens and personal access tokens (classic) need the + `write:org` scope to use this endpoint. + + + Fine-grained tokens and GitHub App user access tokens must have been + granted access to the organization that owns the space. They must also + have been granted access to every repository referenced by resources in + the space. + tags: + - copilot-spaces + operationId: copilot-spaces/remove-collaborator-for-org + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/collaborators#remove-a-collaborator-from-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + - name: actor_type + description: The type of actor (user or team). + in: path + required: true + schema: + type: string + enum: + - User + - Team + - name: actor_identifier + description: >- + The username (for users) or team slug (for teams). The numeric ID of + a user or team is also accepted. + in: path + required: true + schema: + type: string + responses: + '204': + description: Response + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: collaborators + x-stackQL-resource: collaborators + /orgs/{org}/copilot-spaces/{space_number}/resources: + get: + summary: List resources for an organization Copilot Space + description: >- + Lists all resources attached to a specific Copilot Space owned by an + organization. + + The authenticated user must have appropriate permissions to view the + space. + + + OAuth app tokens and personal access tokens (classic) need the + `read:org` scope to use this endpoint. + + + Fine-grained tokens and GitHub App user access tokens must have been + granted access to the organization that owns the space. They must also + have been granted access to every repository referenced by resources in + the space. + tags: + - copilot-spaces + operationId: copilot-spaces/list-resources-for-org + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/resources#list-resources-for-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - resources + properties: + resources: + type: array + description: The list of resources attached to this Copilot Space. + items: + $ref: '#/components/schemas/copilot-space-resource' + examples: + default: + value: + resources: + - id: 1 + resource_type: repository + copilot_chat_attachment_id: null + metadata: + repository_id: 42 + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T00:00:00Z' + - id: 2 + resource_type: free_text + copilot_chat_attachment_id: null + metadata: + name: notes.txt + text: Some helpful notes + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T00:00:00Z' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: resources + x-stackQL-resource: resources + post: + summary: Create a resource for an organization Copilot Space + description: >- + Creates a new resource in a specific Copilot Space owned by an + organization. + + The authenticated user must have write permissions on the space. + + + The following resource types are supported: `repository`, `github_file`, + `free_text`, `github_issue`, `github_pull_request`. + + The `uploaded_text_file` and `media_content` types are not supported via + this endpoint. + + + For `github_file` resources, if a resource with the same repository, + file path, and SHA already exists, the existing resource is returned + with a `200` status. + + + OAuth app tokens and personal access tokens (classic) need the + `write:org` scope to use this endpoint. + + + Fine-grained tokens and GitHub App user access tokens must have been + granted access to the organization that owns the space. They must also + have been granted access to every repository referenced by resources in + the space, including the resource being created. + tags: + - copilot-spaces + operationId: copilot-spaces/create-resource-for-org + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/resources#create-a-resource-for-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - resource_type + - metadata + properties: + resource_type: + type: string + enum: + - repository + - github_file + - free_text + - github_issue + - github_pull_request + description: The type of resource to create. + metadata: + type: object + description: Resource-specific metadata. + additionalProperties: true + examples: + free_text: + value: + resource_type: free_text + metadata: + name: notes.txt + text: Some helpful notes + repository: + value: + resource_type: repository + metadata: + repository_id: 42 + github_file: + value: + resource_type: github_file + metadata: + repository_id: 42 + file_path: README.md + sha: abc123 + responses: + '200': + description: Duplicate github_file resource already exists + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-resource' + examples: + default: + value: + id: 1 + resource_type: github_file + copilot_chat_attachment_id: null + metadata: + repository_id: 42 + file_path: README.md + sha: abc123 + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T00:00:00Z' + '201': + description: Resource created + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-resource' + examples: + default: + value: + id: 1 + resource_type: free_text + copilot_chat_attachment_id: null + metadata: + name: notes.txt + text: Some helpful notes + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T00:00:00Z' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: resources + x-stackQL-resource: resources + /orgs/{org}/copilot-spaces/{space_number}/resources/{space_resource_id}: + get: + summary: Get a resource for an organization Copilot Space + description: >- + Gets a specific resource attached to a Copilot Space owned by an + organization. + + The authenticated user must have appropriate permissions to view the + space. + + + OAuth app tokens and personal access tokens (classic) need the + `read:org` scope to use this endpoint. + + + Fine-grained tokens and GitHub App user access tokens must have been + granted access to the organization that owns the space. They must also + have been granted access to every repository referenced by resources in + the space. + tags: + - copilot-spaces + operationId: copilot-spaces/get-resource-for-org + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/resources#get-a-resource-for-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + - name: space_resource_id + description: The unique identifier of the resource. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-resource' + examples: + default: + value: + id: 1 + resource_type: free_text + copilot_chat_attachment_id: null + metadata: + name: notes.txt + text: Some helpful notes + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T00:00:00Z' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: resources + x-stackQL-resource: resources + put: + summary: Set a resource for an organization Copilot Space + description: >- + Updates the metadata of a resource in a specific Copilot Space owned by + an organization. + + The authenticated user must have write permissions on the space. + + + OAuth app tokens and personal access tokens (classic) need the + `write:org` scope to use this endpoint. + + + Fine-grained tokens and GitHub App user access tokens must have been + granted access to the organization that owns the space. They must also + have been granted access to every repository referenced by resources in + the space, including the resource being updated. + tags: + - copilot-spaces + operationId: copilot-spaces/update-resource-for-org + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/resources#set-a-resource-for-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + - name: space_resource_id + description: The unique identifier of the resource. + in: path + required: true + schema: + type: integer + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + metadata: + type: object + description: Updated resource-specific metadata. + additionalProperties: true + examples: + default: + value: + metadata: + name: updated-notes.txt + text: Updated content + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-resource' + examples: + default: + value: + id: 1 + resource_type: free_text + copilot_chat_attachment_id: null + metadata: + name: updated-notes.txt + text: Updated content + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T12:00:00Z' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: resources + x-stackQL-resource: resources + delete: + summary: Delete a resource from an organization Copilot Space + description: >- + Deletes a resource from a specific Copilot Space owned by an + organization. + + The authenticated user must have write permissions on the space. + + + OAuth app tokens and personal access tokens (classic) need the + `write:org` scope to use this endpoint. + + + Fine-grained tokens and GitHub App user access tokens must have been + granted access to the organization that owns the space. They must also + have been granted access to every repository referenced by resources in + the space. + tags: + - copilot-spaces + operationId: copilot-spaces/delete-resource-for-org + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/resources#delete-a-resource-from-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + - name: space_resource_id + description: The unique identifier of the resource. + in: path + required: true + schema: + type: integer + responses: + '204': + description: Response + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: resources + x-stackQL-resource: resources + /users/{username}/copilot-spaces: + get: + summary: List Copilot Spaces for a user + description: >- + Lists Copilot Spaces owned by a user. The authenticated user must have + read access to the user's Copilot Spaces. + + + Only Spaces that are readable by the authenticated user are returned. + This includes the user's own spaces, and public user spaces when + accessing another user's spaces. + + + OAuth app tokens and personal access tokens (classic) need the + `read:user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/list-for-user + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/copilot-spaces#list-copilot-spaces-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: per_page + description: The number of results per page (max 100). + in: query + schema: + type: integer + minimum: 1 + maximum: 100 + default: 30 + - 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. + in: query + schema: + type: string + - 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. + in: query + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - spaces + properties: + spaces: + type: array + description: The list of Copilot Spaces on this page of results. + items: + $ref: '#/components/schemas/copilot-space' + examples: + default: + $ref: '#/components/examples/copilot-spaces-user-list' + headers: + Link: + $ref: '#/components/headers/link' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: copilot-spaces + x-stackQL-resource: copilot_spaces + post: + summary: Create a Copilot Space for a user + description: >- + Creates a new Copilot Space owned by a user. Only the authenticated user + can create spaces for their own account. + + + Users can create personal Copilot Spaces for their individual use. + + + OAuth app tokens and personal access tokens (classic) need the + `read:user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/create-for-user + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/copilot-spaces#create-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the Copilot Space. + example: My Development Space + description: + type: string + description: A description of the Copilot Space. + example: Personal space for development assistance + general_instructions: + type: string + maxLength: 4000 + description: General instructions for the Copilot Space. + example: Help me with React development patterns and best practices + base_role: + type: string + enum: + - reader + - no_access + description: >- + The base role that determines default permissions for the + space. + + - `no_access`: No default access (default) + + - `reader`: Makes the space publicly readable + + Note: User spaces do not support writer or admin base roles. + default: no_access + resources_attributes: + type: array + description: Resources to attach to the space. + items: + type: object + properties: + resource_type: + type: string + enum: + - repository + - github_file + - free_text + - github_issue + - github_pull_request + - media_content + - uploaded_text_file + description: The type of resource. + metadata: + type: object + description: Metadata specific to the resource type. + properties: + repository_id: + type: integer + description: Repository ID for repository or file resources. + file_path: + type: string + description: File path for file resources. + text: + type: string + description: Text content for free text resources. + name: + type: string + description: Name for the resource. + number: + type: integer + description: Issue or PR number. + required: + - name + examples: + default: + value: + name: My Development Space + description: Personal space for development assistance + general_instructions: Help me with React development patterns and best practices + resources_attributes: + - resource_type: github_file + metadata: + repository_id: 789012 + file_path: src/components/App.js + - resource_type: free_text + metadata: + name: Development Notes + text: >- + Focus on clean code principles and modern React + patterns + responses: + '201': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space' + examples: + default: + $ref: '#/components/examples/copilot-space-user' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: copilot-spaces + x-stackQL-resource: copilot_spaces + /users/{username}/copilot-spaces/{space_number}: + get: + summary: Get a Copilot Space for a user + description: >- + Gets details about a specific Copilot Space owned by a user. The + authenticated user must have read access to the Space. + + + Private user spaces require the authenticated user to be the owner of + the space. + + Public user spaces are accessible to any authenticated user. + + + OAuth app tokens and personal access tokens (classic) need the `repo` + scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/get-for-user + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/copilot-spaces#get-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space' + examples: + default: + $ref: '#/components/examples/copilot-space-user' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: copilot-spaces + x-stackQL-resource: copilot_spaces + put: + summary: Set a Copilot Space for a user + description: >- + Updates a Copilot Space owned by a user. Only the authenticated user can + update spaces for their own account. + + + Users can update their personal Copilot Spaces. + + + OAuth app tokens and personal access tokens (classic) need the + `read:user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/update-for-user + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/copilot-spaces#set-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + 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 Copilot Space. + example: Updated Development Space + description: + type: string + description: A description of the Copilot Space. + example: Updated personal space for development assistance + general_instructions: + type: string + maxLength: 4000 + description: General instructions for the Copilot Space. + example: >- + Updated instructions to help me with React development + patterns and best practices + base_role: + type: string + enum: + - reader + - no_access + description: >- + The base role that determines default permissions for the + space. Changing this field requires admin permissions. + + - `no_access`: No default access (default) + + - `reader`: Makes the space publicly readable + + Note: User spaces do not support writer or admin base roles. + resources_attributes: + type: array + description: Resources to attach to the space. + items: + type: object + properties: + resource_type: + type: string + enum: + - repository + - github_file + - free_text + - github_issue + - github_pull_request + - media_content + - uploaded_text_file + description: The type of resource. + metadata: + type: object + description: Metadata specific to the resource type. + properties: + repository_id: + type: integer + description: Repository ID for repository or file resources. + file_path: + type: string + description: File path for file resources. + text: + type: string + description: Text content for free text resources. + name: + type: string + description: Name for the resource. + number: + type: integer + description: Issue or PR number. + examples: + default: + value: + name: Updated Development Space + description: Updated personal space for development assistance + general_instructions: >- + Updated instructions to help me with React development + patterns and best practices + resources_attributes: + - resource_type: github_file + metadata: + repository_id: 789012 + file_path: src/components/UpdatedApp.js + - id: 123 + _destroy: true + - id: 456 + resource_type: free_text + metadata: + name: Updated Development Notes + text: >- + Updated focus on clean code principles and modern + React patterns + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space' + examples: + default: + $ref: '#/components/examples/copilot-space-user' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: copilot-spaces + x-stackQL-resource: copilot_spaces + delete: + summary: Delete a Copilot Space for a user + description: >- + Deletes a Copilot Space owned by a user. The authenticated user must be + the owner of the space. + + + **Warning:** This action is permanent and cannot be undone. Deleting a + space will remove all associated resources and configurations. + + + OAuth app tokens and personal access tokens (classic) need the `user` + scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/delete-for-user + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/copilot-spaces#delete-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + responses: + '204': + description: The Copilot Space has been successfully deleted. + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: copilot-spaces + x-stackQL-resource: copilot_spaces + /users/{username}/copilot-spaces/{space_number}/collaborators: + get: + summary: List collaborators for a Copilot Space for a user + description: >- + Lists all collaborators for a specific Copilot Space owned by a user. + The authenticated user must be the owner of the space or have admin + access to the space. + + + Each collaborator entry specifies which user has access to the space and + at what level (reader, writer, or admin). The space owner is excluded + from this list. + + + Team collaborators are not supported for user-owned Copilot Spaces. + + + OAuth app tokens and personal access tokens (classic) need the `user` + scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/list-collaborators-for-user + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/collaborators#list-collaborators-for-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - collaborators + properties: + collaborators: + type: array + description: The list of collaborators for this Copilot Space. + items: + $ref: '#/components/schemas/copilot-space-collaborator' + examples: + default: + value: + collaborators: + - actor_type: User + role: writer + login: octocat + id: 12345 + node_id: MDQ6VXNlcjEyMzQ1 + 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 + name: The Octocat + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + hireable: false + bio: There once was... + twitter_username: octocat + public_repos: 2 + public_gists: 1 + followers: 20 + following: 0 + created_at: '2008-01-14T04:33:35Z' + updated_at: '2008-01-14T04:33:35Z' + - actor_type: User + role: reader + login: github-user + id: 67890 + node_id: MDQ6VXNlcjY3ODkw + avatar_url: https://github.com/images/error/other_user.gif + gravatar_id: '' + url: https://api.github.com/users/github-user + html_url: https://github.com/github-user + followers_url: https://api.github.com/users/github-user/followers + following_url: >- + https://api.github.com/users/github-user/following{/other_user} + gists_url: >- + https://api.github.com/users/github-user/gists{/gist_id} + starred_url: >- + https://api.github.com/users/github-user/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/github-user/subscriptions + organizations_url: https://api.github.com/users/github-user/orgs + repos_url: https://api.github.com/users/github-user/repos + events_url: >- + https://api.github.com/users/github-user/events{/privacy} + received_events_url: >- + https://api.github.com/users/github-user/received_events + type: User + user_view_type: public + site_admin: false + name: GitHub User + company: null + blog: '' + location: null + email: null + hireable: null + bio: null + twitter_username: null + public_repos: 5 + public_gists: 0 + followers: 10 + following: 5 + created_at: '2010-01-14T04:33:35Z' + updated_at: '2010-01-14T04:33:35Z' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: collaborators + x-stackQL-resource: collaborators + post: + summary: Add a collaborator to a Copilot Space for a user + description: >- + Adds a collaborator to a specific Copilot Space owned by a user. The + authenticated user must be the owner of the space or have admin access + to the space. + + + Team collaborators are not supported for user-owned Copilot Spaces. + + + OAuth app tokens and personal access tokens (classic) need the `user` + scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/add-collaborator-for-user + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/collaborators#add-a-collaborator-to-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - actor_type + - actor_identifier + - role + properties: + actor_type: + type: string + enum: + - User + - Team + description: >- + The type of actor (must be `User` for user-owned spaces; + `Team` will be rejected). + actor_identifier: + type: string + description: >- + The username of the collaborator. The numeric user ID is + also accepted. + role: + type: string + enum: + - reader + - writer + - admin + description: The role to grant to the collaborator. + examples: + default: + value: + actor_type: User + actor_identifier: octocat + role: writer + responses: + '201': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-collaborator' + examples: + default: + value: + actor_type: User + role: writer + login: octocat + id: 12345 + node_id: MDQ6VXNlcjEyMzQ1 + 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 + name: The Octocat + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + hireable: false + bio: There once was... + twitter_username: octocat + public_repos: 2 + public_gists: 1 + followers: 20 + following: 0 + created_at: '2008-01-14T04:33:35Z' + updated_at: '2008-01-14T04:33:35Z' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: collaborators + x-stackQL-resource: collaborators + /users/{username}/copilot-spaces/{space_number}/collaborators/{actor_type}/{actor_identifier}: + put: + summary: Set a collaborator role for a Copilot Space for a user + description: >- + Updates the role of a collaborator for a specific Copilot Space owned by + a user. The authenticated user must be the owner of the space or have + admin access to the space. + + + OAuth app tokens and personal access tokens (classic) need the `user` + scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/update-collaborator-for-user + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/collaborators#set-a-collaborator-role-for-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + - name: actor_type + description: >- + The type of actor (must be `User` for user-owned spaces; `Team` will + be rejected). + in: path + required: true + schema: + type: string + enum: + - User + - Team + - name: actor_identifier + description: >- + The username of the collaborator. The numeric user ID is also + accepted. + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - role + properties: + role: + type: string + enum: + - reader + - writer + - admin + - no_access + description: >- + The new role to grant to the collaborator. Use `no_access` + to remove the collaborator. + examples: + default: + value: + role: admin + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-collaborator' + examples: + default: + value: + actor_type: User + role: admin + login: octocat + id: 12345 + node_id: MDQ6VXNlcjEyMzQ1 + 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 + name: The Octocat + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + hireable: false + bio: There once was... + twitter_username: octocat + public_repos: 2 + public_gists: 1 + followers: 20 + following: 0 + created_at: '2008-01-14T04:33:35Z' + updated_at: '2008-01-14T04:33:35Z' + '204': + description: >- + Response when `role` is `no_access` and the collaborator was + removed. + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: collaborators + x-stackQL-resource: collaborators + delete: + summary: Remove a collaborator from a Copilot Space for a user + description: >- + Removes a collaborator from a specific Copilot Space owned by a user. + The authenticated user must be the owner of the space or have admin + access to the space. + + + OAuth app tokens and personal access tokens (classic) need the `user` + scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/remove-collaborator-for-user + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/collaborators#remove-a-collaborator-from-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + - name: actor_type + description: >- + The type of actor (must be `User` for user-owned spaces; `Team` will + be rejected). + in: path + required: true + schema: + type: string + enum: + - User + - Team + - name: actor_identifier + description: >- + The username of the collaborator. The numeric user ID is also + accepted. + in: path + required: true + schema: + type: string + responses: + '204': + description: Response + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: collaborators + x-stackQL-resource: collaborators + /users/{username}/copilot-spaces/{space_number}/resources: + get: + summary: List resources for a Copilot Space for a user + description: >- + Lists all resources attached to a specific Copilot Space owned by a + user. + + The authenticated user must have appropriate permissions to view the + space. + + + OAuth app tokens and personal access tokens (classic) need the + `read:user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/list-resources-for-user + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/resources#list-resources-for-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - resources + properties: + resources: + type: array + description: The list of resources attached to this Copilot Space. + items: + $ref: '#/components/schemas/copilot-space-resource' + examples: + default: + value: + resources: + - id: 1 + resource_type: free_text + copilot_chat_attachment_id: null + metadata: + name: notes.txt + text: Some helpful notes + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T00:00:00Z' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: resources + x-stackQL-resource: resources + post: + summary: Create a resource for a Copilot Space for a user + description: >- + Creates a new resource in a specific Copilot Space owned by a user. + + The authenticated user must have write permissions on the space. + + + The following resource types are supported: `repository`, `github_file`, + `free_text`, `github_issue`, `github_pull_request`. + + The `uploaded_text_file` and `media_content` types are not supported via + this endpoint. + + + For `github_file` resources, if a resource with the same repository, + file path, and SHA already exists, the existing resource is returned + with a `200` status. + + + OAuth app tokens and personal access tokens (classic) need the + `write:user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/create-resource-for-user + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/resources#create-a-resource-for-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - resource_type + - metadata + properties: + resource_type: + type: string + enum: + - repository + - github_file + - free_text + - github_issue + - github_pull_request + description: The type of resource to create. + metadata: + type: object + description: Resource-specific metadata. + additionalProperties: true + examples: + free_text: + value: + resource_type: free_text + metadata: + name: notes.txt + text: Some helpful notes + repository: + value: + resource_type: repository + metadata: + repository_id: 42 + github_file: + value: + resource_type: github_file + metadata: + repository_id: 42 + file_path: README.md + sha: abc123 + responses: + '200': + description: Duplicate github_file resource already exists + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-resource' + examples: + default: + value: + id: 1 + resource_type: github_file + copilot_chat_attachment_id: null + metadata: + repository_id: 42 + file_path: README.md + sha: abc123 + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T00:00:00Z' + '201': + description: Resource created + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-resource' + examples: + default: + value: + id: 1 + resource_type: free_text + copilot_chat_attachment_id: null + metadata: + name: notes.txt + text: Some helpful notes + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T00:00:00Z' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: resources + x-stackQL-resource: resources + /users/{username}/copilot-spaces/{space_number}/resources/{space_resource_id}: + get: + summary: Get a resource for a Copilot Space for a user + description: >- + Gets a specific resource attached to a Copilot Space owned by a user. + + The authenticated user must have appropriate permissions to view the + space. + + + OAuth app tokens and personal access tokens (classic) need the + `read:user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/get-resource-for-user + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/resources#get-a-resource-for-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + - name: space_resource_id + description: The unique identifier of the resource. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-resource' + examples: + default: + value: + id: 1 + resource_type: free_text + copilot_chat_attachment_id: null + metadata: + name: notes.txt + text: Some helpful notes + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T00:00:00Z' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: resources + x-stackQL-resource: resources + put: + summary: Set a resource for a Copilot Space for a user + description: >- + Updates the metadata of a resource in a specific Copilot Space owned by + a user. + + The authenticated user must have write permissions on the space. + + + OAuth app tokens and personal access tokens (classic) need the + `write:user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/update-resource-for-user + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/resources#set-a-resource-for-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + - name: space_resource_id + description: The unique identifier of the resource. + in: path + required: true + schema: + type: integer + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + metadata: + type: object + description: Updated resource-specific metadata. + additionalProperties: true + examples: + default: + value: + metadata: + name: updated-notes.txt + text: Updated content + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-resource' + examples: + default: + value: + id: 1 + resource_type: free_text + copilot_chat_attachment_id: null + metadata: + name: updated-notes.txt + text: Updated content + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T12:00:00Z' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: resources + x-stackQL-resource: resources + delete: + summary: Delete a resource from a Copilot Space for a user + description: >- + Deletes a resource from a specific Copilot Space owned by a user. + + The authenticated user must have write permissions on the space. + + + OAuth app tokens and personal access tokens (classic) need the + `write:user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/delete-resource-for-user + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/copilot-spaces/resources#delete-a-resource-from-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + - name: space_resource_id + description: The unique identifier of the resource. + in: path + required: true + schema: + type: integer + responses: + '204': + description: Response + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: resources + x-stackQL-resource: resources +components: + schemas: + copilot-space: + title: Space + description: >- + A GitHub Copilot Space represents an interactive AI workspace where + users can ask questions and get assistance. + type: object + properties: + id: + type: integer + format: int64 + description: The unique identifier of the space. + example: 42 + number: + type: integer + description: The number that identifies the space within its owner. + example: 1 + name: + type: string + description: The display name of the space. + example: My Development Space + description: + type: string + nullable: true + description: A description of the space. + example: A space for discussing React development patterns + general_instructions: + type: string + maxLength: 4000 + nullable: true + description: General instructions for the Copilot Space. + example: Help with React development patterns and best practices + base_role: + type: string + enum: + - reader + - writer + - admin + - no_access + description: |- + The base role that determines default permissions. + - `no_access`: No default access + - `reader`: Default read permissions + - `writer`: Default write permissions (organization spaces only) + - `admin`: Default admin permissions (organization spaces only) + example: no_access + owner: + description: The user or organization that owns this space. + title: Simple 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 + 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} + description: + type: string + example: A great organization + nullable: true + 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 + - hooks_url + - issues_url + - members_url + - public_members_url + - description + creator: + $ref: '#/components/schemas/simple-user' + created_at: + type: string + format: date-time + description: The date and time the space was created. + example: '2023-01-01T00:00:00Z' + updated_at: + type: string + format: date-time + description: The date and time the space was last updated. + example: '2023-01-01T12:00:00Z' + html_url: + type: string + format: uri + description: The HTML URL of the space. + example: https://github.com/copilot/spaces/octo-org/5 + api_url: + type: string + format: uri + description: The API URL of the space. + example: https://api.github.com/organizations/1/copilot-spaces/5 + resources_attributes: + type: array + description: Resources attached to the space. + items: + type: object + properties: + id: + type: integer + format: int64 + description: The unique identifier of the resource. + resource_type: + type: string + enum: + - repository + - github_file + - free_text + - github_issue + - github_pull_request + - media_content + - uploaded_text_file + description: The type of resource. + copilot_chat_attachment_id: + type: integer + format: int64 + nullable: true + description: >- + The unique identifier of the chat attachment for uploaded + files or media content. + created_at: + type: string + format: date-time + description: The date and time the resource was created. + updated_at: + type: string + format: date-time + description: The date and time the resource was last updated. + metadata: + type: object + description: Metadata specific to the resource type. + properties: + repository_id: + type: integer + description: Repository ID for repository or file resources. + file_path: + type: string + description: File path for file resources. + text: + type: string + description: Text content for free text resources. + name: + type: string + description: Name for the resource. + number: + type: integer + description: Issue or PR number. + copilot_chat_attachment_id: + type: integer + description: Chat attachment ID for uploaded files or media. + media_type: + type: string + description: Media type for media content resources. + url: + type: string + description: URL for media content resources. + height: + type: integer + description: Height for media content resources. + width: + type: integer + description: Width for media content resources. + required: + - id + - number + - name + - base_role + - owner + - creator + - created_at + - updated_at + - html_url + - api_url + additionalProperties: false + copilot-space-collaborator: + title: Copilot Space Collaborator + description: A collaborator (user or team) of a Copilot Space + 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 + actor_type: + type: string + enum: + - User + description: The collaborator actor type. + role: + type: string + enum: + - reader + - writer + - admin + description: The role granted to the collaborator + slug: + type: string + description: + type: string + nullable: true + privacy: + type: string + notification_setting: + type: string + members_url: + type: string + repositories_url: + type: string + format: uri + organization_id: + type: integer + parent: + nullable: true + 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 + - actor_type + - role + - name + - slug + copilot-space-resource: + title: Copilot Space Resource + description: A resource attached to a Copilot Space. + type: object + properties: + id: + type: integer + description: The unique identifier of the resource. + resource_type: + type: string + description: The type of the resource. + enum: + - repository + - github_file + - free_text + - github_issue + - github_pull_request + - media_content + - uploaded_text_file + copilot_chat_attachment_id: + type: integer + nullable: true + description: The ID of the associated chat attachment, if any. + metadata: + type: object + description: >- + Resource-specific metadata. The keys and values depend on the + resource type. + additionalProperties: true + created_at: + type: string + format: date-time + description: The date and time the resource was created. + updated_at: + type: string + format: date-time + description: The date and time the resource was last updated. + required: + - id + - resource_type + - metadata + - created_at + - updated_at + 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 + 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 + 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: + 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 + responses: + forbidden: + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + not_found: + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + validation_failed: + description: Validation failed, or the endpoint has been spammed. + content: + application/json: + schema: + $ref: '#/components/schemas/validation-error' + parameters: + org: + name: org + description: The organization name. The name is not case sensitive. + in: path + required: true + schema: + type: string + username: + name: username + description: The handle for the GitHub user account. + in: path + required: true + schema: + type: string + examples: + copilot-spaces-organization-list: + summary: Example response for listing organization copilot spaces + value: + spaces: + - id: 84 + number: 3 + name: Team Planning Space + description: Organization space for team planning and coordination + owner: + login: octo-org + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + 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 + gravatar_id: '' + name: octo-org + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + twitter_username: octo-org + html_url: https://github.com/octo-org + created_at: '2008-01-14T04:33:35Z' + updated_at: '2017-08-17T12:37:15Z' + type: Organization + creator: + login: defunkt + id: 2 + node_id: MDQ6VXNlcjI= + avatar_url: https://github.com/images/error/defunkt_happy.gif + gravatar_id: '' + url: https://api.github.com/users/defunkt + html_url: https://github.com/defunkt + followers_url: https://api.github.com/users/defunkt/followers + following_url: https://api.github.com/users/defunkt/following{/other_user} + gists_url: https://api.github.com/users/defunkt/gists{/gist_id} + starred_url: https://api.github.com/users/defunkt/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/defunkt/subscriptions + organizations_url: https://api.github.com/users/defunkt/orgs + repos_url: https://api.github.com/users/defunkt/repos + events_url: https://api.github.com/users/defunkt/events{/privacy} + received_events_url: https://api.github.com/users/defunkt/received_events + type: User + site_admin: true + created_at: '2023-02-15T08:30:00Z' + updated_at: '2023-02-15T14:45:00Z' + html_url: https://github.com/copilot/spaces/octo-org/3 + api_url: https://api.github.com/organizations/1/copilot-spaces/3 + - id: 85 + number: 4 + name: Development Resources + description: Shared development documentation and resources + owner: + login: octo-org + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + 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 + gravatar_id: '' + name: octo-org + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + twitter_username: octo-org + html_url: https://github.com/octo-org + created_at: '2008-01-14T04:33:35Z' + updated_at: '2017-08-17T12:37:15Z' + type: Organization + creator: + login: octocat + id: 3 + node_id: MDQ6VXNlcjM= + 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: '2023-02-16T10:15:00Z' + updated_at: '2023-02-16T16:30:00Z' + html_url: https://github.com/copilot/spaces/octo-org/4 + api_url: https://api.github.com/organizations/1/copilot-spaces/4 + copilot-space-organization: + summary: Example response for an organization copilot space + value: + id: 84 + number: 3 + name: Team Planning Space + description: Organization space for team planning and coordination + general_instructions: >- + Help the team with agile planning, sprint coordination, and project + management best practices + owner: + login: octo-org + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + 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 + gravatar_id: '' + name: octo-org + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + twitter_username: octo-org + html_url: https://github.com/octo-org + created_at: '2008-01-14T04:33:35Z' + updated_at: '2017-08-17T12:37:15Z' + type: Organization + creator: + login: defunkt + id: 2 + node_id: MDQ6VXNlcjI= + avatar_url: https://github.com/images/error/defunkt_happy.gif + gravatar_id: '' + url: https://api.github.com/users/defunkt + html_url: https://github.com/defunkt + followers_url: https://api.github.com/users/defunkt/followers + following_url: https://api.github.com/users/defunkt/following{/other_user} + gists_url: https://api.github.com/users/defunkt/gists{/gist_id} + starred_url: https://api.github.com/users/defunkt/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/defunkt/subscriptions + organizations_url: https://api.github.com/users/defunkt/orgs + repos_url: https://api.github.com/users/defunkt/repos + events_url: https://api.github.com/users/defunkt/events{/privacy} + received_events_url: https://api.github.com/users/defunkt/received_events + type: User + site_admin: true + created_at: '2023-02-15T08:30:00Z' + updated_at: '2023-02-15T14:45:00Z' + html_url: https://github.com/copilot/spaces/octo-org/3 + api_url: https://api.github.com/organizations/1/copilot-spaces/3 + base_role: no_access + resources_attributes: + - id: 123 + resource_type: github_file + metadata: + repository_id: 456 + file_path: docs/planning.md + - id: 124 + resource_type: free_text + metadata: + name: Team Guidelines + text: Our team follows agile methodology + copilot-spaces-user-list: + summary: Example response for listing user copilot spaces + value: + spaces: + - id: 42 + number: 1 + name: Personal Research Space + description: My personal space for research and development + owner: + login: octocat + id: 3 + node_id: MDQ6VXNlcjM= + 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 + creator: + login: octocat + id: 3 + node_id: MDQ6VXNlcjM= + 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: '2023-02-16T10:15:00Z' + updated_at: '2023-02-16T16:30:00Z' + html_url: https://github.com/copilot/spaces/octocat/1 + api_url: https://api.github.com/user/1/copilot-spaces/1 + - id: 43 + number: 2 + name: Learning Space + description: Space for learning new technologies + owner: + login: octocat + id: 3 + node_id: MDQ6VXNlcjM= + 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 + creator: + login: octocat + id: 3 + node_id: MDQ6VXNlcjM= + 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: '2023-02-17T08:20:00Z' + updated_at: '2023-02-17T14:45:00Z' + html_url: https://github.com/copilot/spaces/octocat/2 + api_url: https://api.github.com/user/1/copilot-spaces/2 + copilot-space-user: + summary: Example response for a user copilot space + value: + id: 42 + number: 5 + name: My Development Space + description: Personal space for React development patterns + general_instructions: >- + Focus on React functional components, hooks, and modern development + patterns + 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 + 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: '2023-02-15T08:30:00Z' + updated_at: '2023-02-15T14:45:00Z' + html_url: https://github.com/copilot/spaces/octocat/5 + api_url: https://api.github.com/user/1/copilot-spaces/5 + base_role: no_access + resources_attributes: + - id: 789 + resource_type: github_file + metadata: + repository_id: 1234 + file_path: src/components/App.tsx + - id: 790 + resource_type: free_text + metadata: + name: React Best Practices + text: Use functional components with hooks + headers: + link: + example: >- + ; rel="next", + ; rel="last" + schema: + type: string + x-stackQL-resources: + spaces: + id: github.copilot_spaces.spaces + name: spaces + title: Spaces + methods: + list_for_org: + operation: + $ref: '#/paths/~1orgs~1{org}~1copilot-spaces/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.spaces + create_for_org: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1orgs~1{org}~1copilot-spaces/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get_for_org: + operation: + $ref: '#/paths/~1orgs~1{org}~1copilot-spaces~1{space_number}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + update_for_org: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1orgs~1{org}~1copilot-spaces~1{space_number}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete_for_org: + operation: + $ref: '#/paths/~1orgs~1{org}~1copilot-spaces~1{space_number}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + list_for_user: + operation: + $ref: '#/paths/~1users~1{username}~1copilot-spaces/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.spaces + create_for_user: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1users~1{username}~1copilot-spaces/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get_for_user: + operation: + $ref: '#/paths/~1users~1{username}~1copilot-spaces~1{space_number}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + update_for_user: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1users~1{username}~1copilot-spaces~1{space_number}/put' + response: + mediaType: application/json + openAPIDocKey: '200' + delete_for_user: + operation: + $ref: '#/paths/~1users~1{username}~1copilot-spaces~1{space_number}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/spaces/methods/get_for_org' + - $ref: '#/components/x-stackQL-resources/spaces/methods/get_for_user' + - $ref: '#/components/x-stackQL-resources/spaces/methods/list_for_org' + - $ref: '#/components/x-stackQL-resources/spaces/methods/list_for_user' + insert: + - $ref: '#/components/x-stackQL-resources/spaces/methods/create_for_org' + - $ref: '#/components/x-stackQL-resources/spaces/methods/create_for_user' + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/spaces/methods/delete_for_org' + - $ref: '#/components/x-stackQL-resources/spaces/methods/delete_for_user' + replace: + - $ref: '#/components/x-stackQL-resources/spaces/methods/update_for_org' + - $ref: '#/components/x-stackQL-resources/spaces/methods/update_for_user' + collaborators: + id: github.copilot_spaces.collaborators + name: collaborators + title: Collaborators + methods: + list_collaborators_for_org: + operation: + $ref: >- + #/paths/~1orgs~1{org}~1copilot-spaces~1{space_number}~1collaborators/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.collaborators + add_collaborator_for_org: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: >- + #/paths/~1orgs~1{org}~1copilot-spaces~1{space_number}~1collaborators/post + response: + mediaType: application/json + openAPIDocKey: '201' + update_collaborator_for_org: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: >- + #/paths/~1orgs~1{org}~1copilot-spaces~1{space_number}~1collaborators~1{actor_type}~1{actor_identifier}/put + response: + mediaType: application/json + openAPIDocKey: '200' + remove_collaborator_for_org: + operation: + $ref: >- + #/paths/~1orgs~1{org}~1copilot-spaces~1{space_number}~1collaborators~1{actor_type}~1{actor_identifier}/delete + response: + mediaType: application/json + openAPIDocKey: '204' + list_collaborators_for_user: + operation: + $ref: >- + #/paths/~1users~1{username}~1copilot-spaces~1{space_number}~1collaborators/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.collaborators + add_collaborator_for_user: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: >- + #/paths/~1users~1{username}~1copilot-spaces~1{space_number}~1collaborators/post + response: + mediaType: application/json + openAPIDocKey: '201' + update_collaborator_for_user: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: >- + #/paths/~1users~1{username}~1copilot-spaces~1{space_number}~1collaborators~1{actor_type}~1{actor_identifier}/put + response: + mediaType: application/json + openAPIDocKey: '200' + remove_collaborator_for_user: + operation: + $ref: >- + #/paths/~1users~1{username}~1copilot-spaces~1{space_number}~1collaborators~1{actor_type}~1{actor_identifier}/delete + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/collaborators/methods/list_collaborators_for_org + - $ref: >- + #/components/x-stackQL-resources/collaborators/methods/list_collaborators_for_user + insert: + - $ref: >- + #/components/x-stackQL-resources/collaborators/methods/add_collaborator_for_org + - $ref: >- + #/components/x-stackQL-resources/collaborators/methods/add_collaborator_for_user + update: [] + delete: + - $ref: >- + #/components/x-stackQL-resources/collaborators/methods/remove_collaborator_for_org + - $ref: >- + #/components/x-stackQL-resources/collaborators/methods/remove_collaborator_for_user + replace: + - $ref: >- + #/components/x-stackQL-resources/collaborators/methods/update_collaborator_for_org + - $ref: >- + #/components/x-stackQL-resources/collaborators/methods/update_collaborator_for_user + resources: + id: github.copilot_spaces.resources + name: resources + title: Resources + methods: + list_resources_for_org: + operation: + $ref: >- + #/paths/~1orgs~1{org}~1copilot-spaces~1{space_number}~1resources/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.resources + create_resource_for_org: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: >- + #/paths/~1orgs~1{org}~1copilot-spaces~1{space_number}~1resources/post + response: + mediaType: application/json + openAPIDocKey: '200' + get_resource_for_org: + operation: + $ref: >- + #/paths/~1orgs~1{org}~1copilot-spaces~1{space_number}~1resources~1{space_resource_id}/get + response: + mediaType: application/json + openAPIDocKey: '200' + update_resource_for_org: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: >- + #/paths/~1orgs~1{org}~1copilot-spaces~1{space_number}~1resources~1{space_resource_id}/put + response: + mediaType: application/json + openAPIDocKey: '200' + delete_resource_for_org: + operation: + $ref: >- + #/paths/~1orgs~1{org}~1copilot-spaces~1{space_number}~1resources~1{space_resource_id}/delete + response: + mediaType: application/json + openAPIDocKey: '204' + list_resources_for_user: + operation: + $ref: >- + #/paths/~1users~1{username}~1copilot-spaces~1{space_number}~1resources/get + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.resources + create_resource_for_user: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: >- + #/paths/~1users~1{username}~1copilot-spaces~1{space_number}~1resources/post + response: + mediaType: application/json + openAPIDocKey: '200' + get_resource_for_user: + operation: + $ref: >- + #/paths/~1users~1{username}~1copilot-spaces~1{space_number}~1resources~1{space_resource_id}/get + response: + mediaType: application/json + openAPIDocKey: '200' + update_resource_for_user: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: >- + #/paths/~1users~1{username}~1copilot-spaces~1{space_number}~1resources~1{space_resource_id}/put + response: + mediaType: application/json + openAPIDocKey: '200' + delete_resource_for_user: + operation: + $ref: >- + #/paths/~1users~1{username}~1copilot-spaces~1{space_number}~1resources~1{space_resource_id}/delete + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/resources/methods/get_resource_for_org + - $ref: >- + #/components/x-stackQL-resources/resources/methods/get_resource_for_user + - $ref: >- + #/components/x-stackQL-resources/resources/methods/list_resources_for_org + - $ref: >- + #/components/x-stackQL-resources/resources/methods/list_resources_for_user + insert: + - $ref: >- + #/components/x-stackQL-resources/resources/methods/create_resource_for_org + - $ref: >- + #/components/x-stackQL-resources/resources/methods/create_resource_for_user + update: [] + delete: + - $ref: >- + #/components/x-stackQL-resources/resources/methods/delete_resource_for_org + - $ref: >- + #/components/x-stackQL-resources/resources/methods/delete_resource_for_user + replace: + - $ref: >- + #/components/x-stackQL-resources/resources/methods/update_resource_for_org + - $ref: >- + #/components/x-stackQL-resources/resources/methods/update_resource_for_user +servers: + - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/credentials.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/credentials.yaml index 151a35a..8a5f7b4 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/credentials.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/credentials.yaml @@ -168,3 +168,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/dependabot.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/dependabot.yaml index 05fe216..38ce7a9 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/dependabot.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/dependabot.yaml @@ -44,6 +44,7 @@ paths: - $ref: '#/components/parameters/dependabot-alert-comma-separated-has' - $ref: '#/components/parameters/dependabot-alert-comma-separated-assignees' - $ref: '#/components/parameters/dependabot-alert-scope' + - $ref: '#/components/parameters/dependabot-alert-relationship' - $ref: '#/components/parameters/dependabot-alert-sort' - $ref: '#/components/parameters/direction' - $ref: '#/components/parameters/pagination-before' @@ -76,28 +77,25 @@ paths: category: dependabot subcategory: alerts x-stackQL-resource: alerts - /organizations/{org}/dependabot/repository-access: + /enterprises/{enterprise}/dependabot/repository-access: get: - summary: Lists the repositories Dependabot can access in an organization + summary: Lists the repositories Dependabot can access in an enterprise description: >- - Lists repositories that organization admins have allowed Dependabot to - access when updating dependencies. - - > [!NOTE] + Lists repositories that enterprise admins have allowed Dependabot to + access when updating dependencies across organizations in the + enterprise. - > This operation supports both server-to-server and user-to-server - access. - Unauthorized users will not see the existence of this endpoint. + The authenticated user must be an enterprise owner to use this endpoint. tags: - dependabot - operationId: dependabot/repository-access-for-org + operationId: dependabot/repository-access-for-enterprise externalDocs: description: API method documentation url: >- - https://docs.github.com/rest/dependabot/repository-access#lists-the-repositories-dependabot-can-access-in-an-organization + https://docs.github.com/rest/dependabot/repository-access#lists-the-repositories-dependabot-can-access-in-an-enterprise parameters: - - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/enterprise' - name: page in: query description: The page number of results to fetch. @@ -131,24 +129,19 @@ paths: $ref: '#/components/responses/not_found' x-github: githubCloudOnly: false - enabledForGitHubApps: true + enabledForGitHubApps: false category: dependabot subcategory: repository-access x-stackQL-resource: repository_access patch: - summary: Updates Dependabot's repository access list for an organization + summary: Updates Dependabot's repository access list for an enterprise description: >- Updates repositories according to the list of repositories that - organization admins have given Dependabot access to when they've updated - dependencies. + enterprise admins have given Dependabot access to when they've updated + dependencies across organizations in the enterprise. - > [!NOTE] - - > This operation supports both server-to-server and user-to-server - access. - - Unauthorized users will not see the existence of this endpoint. + The authenticated user must be an enterprise owner to use this endpoint. **Example request body:** @@ -163,13 +156,13 @@ paths: ``` tags: - dependabot - operationId: dependabot/update-repository-access-for-org + operationId: dependabot/update-repository-access-for-enterprise externalDocs: description: API method documentation url: >- - https://docs.github.com/rest/dependabot/repository-access#updates-dependabots-repository-access-list-for-an-organization + https://docs.github.com/rest/dependabot/repository-access#updates-dependabots-repository-access-list-for-an-enterprise parameters: - - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/enterprise' requestBody: required: true content: @@ -216,16 +209,17 @@ paths: $ref: '#/components/responses/not_found' x-github: githubCloudOnly: false - enabledForGitHubApps: true + enabledForGitHubApps: false category: dependabot subcategory: repository-access x-stackQL-resource: repository_access - /organizations/{org}/dependabot/repository-access/default-level: + /enterprises/{enterprise}/dependabot/repository-access/default-level: put: - summary: Set the default repository access level for Dependabot + summary: Set the default repository access level for Dependabot in an enterprise description: >- Sets the default level of repository access Dependabot will have while - performing an update. Available values are: + performing an update across organizations in the enterprise. Available + values are: - 'public' - Dependabot will only have access to public repositories, unless access is explicitly granted to non-public repositories. @@ -235,19 +229,16 @@ paths: repositories. - Unauthorized users will not see the existence of this endpoint. - - - This operation supports both server-to-server and user-to-server access. + The authenticated user must be an enterprise owner to use this endpoint. tags: - dependabot - operationId: dependabot/set-repository-access-default-level + operationId: dependabot/set-repository-access-default-level-for-enterprise externalDocs: description: API method documentation url: >- - https://docs.github.com/rest/dependabot/repository-access#set-the-default-repository-access-level-for-dependabot + https://docs.github.com/rest/dependabot/repository-access#set-the-default-repository-access-level-for-dependabot-in-an-enterprise parameters: - - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/enterprise' requestBody: required: true content: @@ -278,7 +269,7 @@ paths: $ref: '#/components/responses/not_found' x-github: githubCloudOnly: false - enabledForGitHubApps: true + enabledForGitHubApps: false category: dependabot subcategory: repository-access x-stackQL-resource: repository_access @@ -323,6 +314,7 @@ paths: - $ref: >- #/components/parameters/dependabot-alert-comma-separated-runtime-risk - $ref: '#/components/parameters/dependabot-alert-scope' + - $ref: '#/components/parameters/dependabot-alert-relationship' - $ref: '#/components/parameters/dependabot-alert-sort' - $ref: '#/components/parameters/direction' - $ref: '#/components/parameters/pagination-before' @@ -356,6 +348,212 @@ paths: category: dependabot subcategory: alerts x-stackQL-resource: alerts + /orgs/{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. + + > [!NOTE] + + > This operation supports both server-to-server and user-to-server + access. + + Unauthorized 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 + x-stackQL-resource: 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. + + + > [!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] + } + + ``` + 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 + x-stackQL-resource: repository_access + /orgs/{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: + + - '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. + 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 + x-stackQL-resource: repository_access /orgs/{org}/dependabot/secrets: get: summary: List organization secrets @@ -838,6 +1036,7 @@ paths: - $ref: '#/components/parameters/dependabot-alert-comma-separated-has' - $ref: '#/components/parameters/dependabot-alert-comma-separated-assignees' - $ref: '#/components/parameters/dependabot-alert-scope' + - $ref: '#/components/parameters/dependabot-alert-relationship' - $ref: '#/components/parameters/dependabot-alert-sort' - $ref: '#/components/parameters/direction' - $ref: '#/components/parameters/pagination-before' @@ -979,8 +1178,30 @@ paths: Send an empty array (`[]`) to clear all assignees from the alert. + + To assign an AI agent, include the bot login (for example, + `copilot-swe-agent[bot]`). items: type: string + agent_assignment: + type: object + description: >- + Parameters for AI agent assignment. Only used when an agent + bot login is + + included in `assignees`. Ignored when no agent is being + assigned. + properties: + custom_instructions: + type: string + description: Custom instructions for the agent. + custom_agent: + type: string + description: A custom agent identifier. + model: + type: string + description: The model to use for the agent. + additionalProperties: false additionalProperties: false required: - state @@ -3578,6 +3799,22 @@ components: enum: - development - runtime + dependabot-alert-relationship: + name: relationship + in: query + description: >- + A comma-separated list of relationships of the vulnerable dependency to + your project. If specified, only alerts with these relationships will be + returned. + + + > [!NOTE] + + > We are rolling out support for dependency relationship across + ecosystems. This value will be "unknown" for all dependencies in + unsupported ecosystems. + schema: + type: string dependabot-alert-sort: name: sort in: query @@ -3769,6 +4006,7 @@ components: name: django manifest_path: path/to/requirements.txt scope: runtime + relationship: direct security_advisory: ghsa_id: GHSA-rf4j-j272-fj86 cve_id: CVE-2018-6188 @@ -3965,6 +4203,7 @@ components: name: ansible manifest_path: path/to/requirements.txt scope: runtime + relationship: direct security_advisory: ghsa_id: GHSA-8f4m-hccc-8qph cve_id: CVE-2021-20191 @@ -4317,6 +4556,7 @@ components: name: django manifest_path: path/to/requirements.txt scope: runtime + relationship: direct security_advisory: ghsa_id: GHSA-rf4j-j272-fj86 cve_id: CVE-2018-6188 @@ -4441,6 +4681,7 @@ components: name: ansible manifest_path: path/to/requirements.txt scope: runtime + relationship: direct security_advisory: ghsa_id: GHSA-8f4m-hccc-8qph cve_id: CVE-2021-20191 @@ -4528,6 +4769,7 @@ components: name: ansible manifest_path: path/to/requirements.txt scope: runtime + relationship: direct security_advisory: ghsa_id: GHSA-8f4m-hccc-8qph cve_id: CVE-2021-20191 @@ -4635,6 +4877,7 @@ components: name: django manifest_path: path/to/requirements.txt scope: runtime + relationship: direct security_advisory: ghsa_id: GHSA-rf4j-j272-fj86 cve_id: CVE-2018-6188 @@ -4806,6 +5049,50 @@ components: - $ref: '#/components/x-stackQL-resources/alerts/methods/update_alert' delete: [] replace: [] + enterprise_dependabot_repository_access: + id: github.dependabot.enterprise_dependabot_repository_access + name: enterprise_dependabot_repository_access + title: Enterprise Dependabot Repository Access + methods: + repository_access_for_enterprise: + operation: + $ref: >- + #/paths/~1enterprises~1{enterprise}~1dependabot~1repository-access/get + response: + mediaType: application/json + openAPIDocKey: '200' + update_repository_access_for_enterprise: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: >- + #/paths/~1enterprises~1{enterprise}~1dependabot~1repository-access/patch + response: + mediaType: application/json + openAPIDocKey: '204' + set_repository_access_default_level_for_enterprise: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: >- + #/paths/~1enterprises~1{enterprise}~1dependabot~1repository-access~1default-level/put + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/enterprise_dependabot_repository_access/methods/repository_access_for_enterprise + insert: [] + update: + - $ref: >- + #/components/x-stackQL-resources/enterprise_dependabot_repository_access/methods/update_repository_access_for_enterprise + delete: [] + replace: + - $ref: >- + #/components/x-stackQL-resources/enterprise_dependabot_repository_access/methods/set_repository_access_default_level_for_enterprise org_dependabot_repository_access: id: github.dependabot.org_dependabot_repository_access name: org_dependabot_repository_access @@ -4813,7 +5100,7 @@ components: methods: repository_access_for_org: operation: - $ref: '#/paths/~1organizations~1{org}~1dependabot~1repository-access/get' + $ref: '#/paths/~1orgs~1{org}~1dependabot~1repository-access/get' response: mediaType: application/json openAPIDocKey: '200' @@ -4822,8 +5109,7 @@ components: requestBodyTranslate: algorithm: naive operation: - $ref: >- - #/paths/~1organizations~1{org}~1dependabot~1repository-access/patch + $ref: '#/paths/~1orgs~1{org}~1dependabot~1repository-access/patch' response: mediaType: application/json openAPIDocKey: '204' @@ -4833,7 +5119,7 @@ components: algorithm: naive operation: $ref: >- - #/paths/~1organizations~1{org}~1dependabot~1repository-access~1default-level/put + #/paths/~1orgs~1{org}~1dependabot~1repository-access~1default-level/put response: mediaType: application/json openAPIDocKey: '204' @@ -5011,3 +5297,11 @@ components: #/components/x-stackQL-resources/repos_for_secret/methods/set_selected_repos_for_org_secret servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/dependency_graph.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/dependency_graph.yaml index 609472c..f95f090 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/dependency_graph.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/dependency_graph.yaml @@ -38,17 +38,99 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/dependency-graph-diff' + 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 examples: default: $ref: '#/components/examples/diff-range-response' headers: Link: $ref: '#/components/headers/link' + '400': + $ref: '#/components/responses/bad_request' '403': $ref: '#/components/responses/dependency_review_forbidden' '404': $ref: '#/components/responses/not_found' + '500': + $ref: '#/components/responses/internal_error' + '503': + $ref: '#/components/responses/service_unavailable' x-github: githubCloudOnly: false category: dependency-graph @@ -92,6 +174,96 @@ paths: category: dependency-graph subcategory: sboms x-stackQL-resource: sboms + /repos/{owner}/{repo}/dependency-graph/sbom/fetch-report/{sbom_uuid}: + get: + summary: Fetch a software bill of materials (SBOM) for a repository. + description: >- + Fetches a previously generated software bill of materials (SBOM) for a + repository. + + When the SBOM is ready, the response is a 302 redirect to a temporary + download URL for the SBOM in SPDX JSON format. + + The generated SBOM report may be retained for up to one week from the + original request. + + The temporary download URL returned by this endpoint expires separately, + and its expiry is set when the fetch request is made. + tags: + - dependency-graph + operationId: dependency-graph/fetch-sbom-report + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/dependency-graph/sboms#fetch-a-software-bill-of-materials-sbom-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - name: sbom_uuid + in: path + required: true + description: The unique identifier of the SBOM export. + schema: + type: string + responses: + '202': + description: SBOM is still being processed, no content is returned. + '302': + description: Redirects to a temporary download URL for the completed SBOM. + headers: + Location: + $ref: '#/components/headers/location' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + githubCloudOnly: false + category: dependency-graph + subcategory: sboms + x-stackQL-resource: sboms + /repos/{owner}/{repo}/dependency-graph/sbom/generate-report: + get: + summary: >- + Request generation of a software bill of materials (SBOM) for a + repository. + description: >- + Triggers a job to generate a software bill of materials (SBOM) for a + repository in SPDX JSON format. + tags: + - dependency-graph + operationId: dependency-graph/generate-sbom-report + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/dependency-graph/sboms#request-generation-of-a-software-bill-of-materials-sbom-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + responses: + '201': + description: Response + content: + application/json: + schema: + type: object + properties: + sbom_url: + type: string + description: URL to poll for the SBOM export result. + examples: + default: + $ref: >- + #/components/examples/dependency-graph-generate-sbom-report-response + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + githubCloudOnly: false + category: dependency-graph + subcategory: sboms + x-stackQL-resource: sboms /repos/{owner}/{repo}/dependency-graph/snapshots: post: summary: Create a snapshot of dependencies for a repository @@ -535,6 +707,29 @@ components: type: string status: type: string + 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 metadata: title: metadata description: >- @@ -614,6 +809,15 @@ components: type: string additionalProperties: false responses: + bad_request: + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + application/scim+json: + schema: + $ref: '#/components/schemas/scim-error' dependency_review_forbidden: description: >- Response for a private repository when GitHub Advanced Security is not @@ -628,6 +832,25 @@ components: application/json: schema: $ref: '#/components/schemas/basic-error' + internal_error: + description: Internal Error + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + service_unavailable: + description: Service unavailable + content: + application/json: + schema: + type: object + properties: + code: + type: string + message: + type: string + documentation_url: + type: string forbidden: description: Forbidden content: @@ -736,6 +959,10 @@ components: - relationshipType: DESCRIBES spdxElementId: SPDXRef-DOCUMENT relatedSpdxElement: SPDXRef-Repository + dependency-graph-generate-sbom-report-response: + value: + sbom_url: >- + https://api.github.com/repos/github/example/dependency-graph/sbom/fetch-report/4bab1a7e-da63-4828-9488-44e0e01a7c1b dependency-graph-create-snapshot-request: value: version: 0 @@ -778,6 +1005,11 @@ components: ; rel="last" schema: type: string + location: + example: >- + https://pipelines.actions.githubusercontent.com/OhgS4QRKqmgx7bKC27GKU83jnQjyeqG8oIMTge8eqtheppcmw8/_apis/pipelines/1/runs/176/signedlogcontent?urlExpires=2020-01-24T18%3A10%3A31.5729946Z&urlSigningMethod=HMACV1&urlSignature=agG73JakPYkHrh06seAkvmH7rBR4Ji4c2%2B6a2ejYh3E%3D + schema: + type: string x-stackQL-resources: dependency_review: id: github.dependency_graph.dependency_review @@ -818,6 +1050,31 @@ components: update: [] delete: [] replace: [] + sbom_reports: + id: github.dependency_graph.sbom_reports + name: sbom_reports + title: Sbom Reports + methods: + fetch_sbom_report: + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1dependency-graph~1sbom~1fetch-report~1{sbom_uuid}/get + response: + mediaType: application/json + openAPIDocKey: '202' + generate_sbom_report: + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1dependency-graph~1sbom~1generate-report/get + response: + mediaType: application/json + openAPIDocKey: '201' + sqlVerbs: + select: [] + insert: [] + update: [] + delete: [] + replace: [] dependency_submission: id: github.dependency_graph.dependency_submission name: dependency_submission @@ -842,3 +1099,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/discussions.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/discussions.yaml new file mode 100644 index 0000000..e2fe7b1 --- /dev/null +++ b/provider-dev/openapi/src/github/v00.00.00000/services/discussions.yaml @@ -0,0 +1,493 @@ +openapi: 3.0.3 +info: + title: discussions API + description: GitHub Discussions for a repository - discussions, categories and comments. GitHub exposes Discussions through the GraphQL API only; these resources are backed by GraphQL queries. + version: v00.00.00000 +servers: + - url: https://api.github.com +paths: + /graphql?resource=discussions: + post: + operationId: graphql/discussions/discussions/list + summary: Discussions + description: Discussions in a repository, newest first. Backed by the GitHub GraphQL API (`repository.discussions`); GitHub Discussions are not available through the REST API. Use `discussion_comments` for the comment thread of a single discussion. + x-stackQL-graphQL: + url: https://api.github.com/graphql + httpVerb: POST + responseSelection: + jsonPath: $.data.repository.discussions.nodes[*] + cursor: + strategy: page_info + jsonPath: $.data.repository.discussions.pageInfo.endCursor + terminateOnJsonPath: $.data.repository.discussions.pageInfo.hasNextPage + query: | + query { + repository(owner: "{{ .owner }}", name: "{{ .repo }}") { + discussions(first: 100, orderBy: {field: CREATED_AT, direction: DESC}{{ .cursor }}) { + pageInfo { endCursor hasNextPage } + nodes { + id + number + title + url + body + created_at: createdAt + updated_at: updatedAt + published_at: publishedAt + last_edited_at: lastEditedAt + locked + closed + closed_at: closedAt + is_answered: isAnswered + answer_chosen_at: answerChosenAt + upvote_count: upvoteCount + author { login } + category { id name slug } + comments { total_count: totalCount } + reactions { total_count: totalCount } + labels(first: 20) { nodes { name } } + answer { id url author { login } } + } + } + } + } + x-stackql-protocol: graphql + externalDocs: + description: GitHub GraphQL API documentation + url: https://docs.github.com/graphql + parameters: + - name: owner + in: query + required: true + schema: + type: string + description: The account owner of the repository. + - name: repo + in: query + required: true + schema: + type: string + description: The name of the repository. + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + repository: + type: object + properties: + discussions: + type: object + properties: + nodes: + type: array + items: + type: object + properties: + id: + type: string + description: The GraphQL node ID of the discussion. + number: + type: integer + description: The discussion number, unique within the repository. + title: + type: string + url: + type: string + description: The HTML URL of the discussion. + body: + type: string + description: The discussion body as Markdown. + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + published_at: + type: string + format: date-time + last_edited_at: + type: string + format: date-time + locked: + type: boolean + closed: + type: boolean + closed_at: + type: string + format: date-time + is_answered: + type: boolean + description: Whether an answer has been chosen (answerable categories only). + answer_chosen_at: + type: string + format: date-time + upvote_count: + type: integer + author: + type: object + description: The author of the discussion (`login`). + properties: + login: + type: string + category: + type: object + description: The discussion category (`id`, `name`, `slug`). + properties: + id: + type: string + name: + type: string + slug: + type: string + comments: + type: object + description: Comment counts (`total_count`). + properties: + total_count: + type: integer + reactions: + type: object + description: Reaction counts (`total_count`). + properties: + total_count: + type: integer + labels: + type: object + description: Up to 20 labels applied to the discussion (`nodes[].name`). + properties: + nodes: + type: array + items: + type: object + properties: + name: + type: string + answer: + type: object + description: The chosen answer comment, if any (`id`, `url`, `author.login`). + properties: + id: + type: string + url: + type: string + author: + type: object + properties: + login: + type: string + pageInfo: + type: object + properties: + endCursor: + type: string + hasNextPage: + type: boolean + /graphql?resource=discussion_categories: + post: + operationId: graphql/discussions/discussion_categories/list + summary: Discussion Categories + description: Discussion categories configured for a repository (for example Announcements, Q&A, Ideas). Backed by the GitHub GraphQL API (`repository.discussionCategories`). + x-stackQL-graphQL: + url: https://api.github.com/graphql + httpVerb: POST + responseSelection: + jsonPath: $.data.repository.discussionCategories.nodes[*] + cursor: + strategy: page_info + jsonPath: $.data.repository.discussionCategories.pageInfo.endCursor + terminateOnJsonPath: $.data.repository.discussionCategories.pageInfo.hasNextPage + query: | + query { + repository(owner: "{{ .owner }}", name: "{{ .repo }}") { + discussionCategories(first: 100{{ .cursor }}) { + pageInfo { endCursor hasNextPage } + nodes { + id + name + slug + emoji + description + is_answerable: isAnswerable + created_at: createdAt + updated_at: updatedAt + } + } + } + } + x-stackql-protocol: graphql + externalDocs: + description: GitHub GraphQL API documentation + url: https://docs.github.com/graphql + parameters: + - name: owner + in: query + required: true + schema: + type: string + description: The account owner of the repository. + - name: repo + in: query + required: true + schema: + type: string + description: The name of the repository. + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + repository: + type: object + properties: + discussionCategories: + type: object + properties: + nodes: + type: array + items: + type: object + properties: + id: + type: string + description: The GraphQL node ID of the category. + name: + type: string + slug: + type: string + emoji: + type: string + description: The emoji shortcode for the category. + description: + type: string + is_answerable: + type: boolean + description: Whether discussions in this category can be marked as answered. + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + pageInfo: + type: object + properties: + endCursor: + type: string + hasNextPage: + type: boolean + /graphql?resource=discussion_comments: + post: + operationId: graphql/discussions/discussion_comments/list + summary: Discussion Comments + description: Top-level comments on a discussion, with reply counts. Backed by the GitHub GraphQL API (`repository.discussion.comments`). + x-stackQL-graphQL: + url: https://api.github.com/graphql + httpVerb: POST + responseSelection: + jsonPath: $.data.repository.discussion.comments.nodes[*] + cursor: + strategy: page_info + jsonPath: $.data.repository.discussion.comments.pageInfo.endCursor + terminateOnJsonPath: $.data.repository.discussion.comments.pageInfo.hasNextPage + query: | + query { + repository(owner: "{{ .owner }}", name: "{{ .repo }}") { + discussion(number: {{ .discussion_number }}) { + comments(first: 100{{ .cursor }}) { + pageInfo { endCursor hasNextPage } + nodes { + id + url + body + created_at: createdAt + updated_at: updatedAt + published_at: publishedAt + is_answer: isAnswer + is_minimized: isMinimized + minimized_reason: minimizedReason + upvote_count: upvoteCount + author { login } + replies { total_count: totalCount } + reactions { total_count: totalCount } + } + } + } + } + } + x-stackql-protocol: graphql + externalDocs: + description: GitHub GraphQL API documentation + url: https://docs.github.com/graphql + parameters: + - name: owner + in: query + required: true + schema: + type: string + description: The account owner of the repository. + - name: repo + in: query + required: true + schema: + type: string + description: The name of the repository. + - name: discussion_number + in: query + required: true + schema: + type: integer + description: The number that identifies the discussion. + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + repository: + type: object + properties: + discussion: + type: object + properties: + comments: + type: object + properties: + nodes: + type: array + items: + type: object + properties: + id: + type: string + description: The GraphQL node ID of the comment. + url: + type: string + description: The HTML URL of the comment. + body: + type: string + description: The comment body as Markdown. + created_at: + type: string + format: date-time + updated_at: + type: string + format: date-time + published_at: + type: string + format: date-time + is_answer: + type: boolean + description: Whether this comment is the chosen answer. + is_minimized: + type: boolean + minimized_reason: + type: string + upvote_count: + type: integer + author: + type: object + description: The comment author (`login`). + properties: + login: + type: string + replies: + type: object + description: Reply counts (`total_count`). + properties: + total_count: + type: integer + reactions: + type: object + description: Reaction counts (`total_count`). + properties: + total_count: + type: integer + pageInfo: + type: object + properties: + endCursor: + type: string + hasNextPage: + type: boolean +components: + schemas: {} + x-stackQL-resources: + discussion_categories: + id: github.discussions.discussion_categories + name: discussion_categories + title: Discussion Categories + methods: + list: + operation: + $ref: '#/paths/~1graphql?resource=discussion_categories/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.repository.discussionCategories.nodes + x-stackql-protocol: graphql + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/discussion_categories/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + discussion_comments: + id: github.discussions.discussion_comments + name: discussion_comments + title: Discussion Comments + methods: + list: + operation: + $ref: '#/paths/~1graphql?resource=discussion_comments/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.repository.discussion.comments.nodes + x-stackql-protocol: graphql + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/discussion_comments/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + discussions: + id: github.discussions.discussions + name: discussions + title: Discussions + methods: + list: + operation: + $ref: '#/paths/~1graphql?resource=discussions/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.repository.discussions.nodes + x-stackql-protocol: graphql + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/discussions/methods/list' + insert: [] + update: [] + delete: [] + replace: [] diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/emojis.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/emojis.yaml index aa4234c..8770cb3 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/emojis.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/emojis.yaml @@ -3617,3 +3617,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/enterprise_team_memberships.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/enterprise_team_memberships.yaml index 7bd5ad1..cf163a4 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/enterprise_team_memberships.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/enterprise_team_memberships.yaml @@ -546,3 +546,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/enterprise_team_organizations.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/enterprise_team_organizations.yaml index f5eafdf..fa9ee04 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/enterprise_team_organizations.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/enterprise_team_organizations.yaml @@ -450,3 +450,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/enterprise_teams.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/enterprise_teams.yaml index f354fea..e4c73a1 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/enterprise_teams.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/enterprise_teams.yaml @@ -112,6 +112,23 @@ paths: 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). + notification_setting: + type: string + description: > + The notification setting the team is set to. The options + are: + + + * `notifications_enabled` - team members receive + notifications when the team is @mentioned. + + * `notifications_disabled` - no one receives notifications. + + + Default: `notifications_enabled` + enum: + - notifications_enabled + - notifications_disabled required: - name examples: @@ -245,6 +262,20 @@ paths: new IdP group will replace the existing one, or replace existing direct members if the team isn't currently linked to an IdP group. + notification_setting: + type: string + description: > + The notification setting the team is set to. The options + are: + + + * `notifications_enabled` - team members receive + notifications when the team is @mentioned. + + * `notifications_disabled` - no one receives notifications. + enum: + - notifications_enabled + - notifications_disabled examples: default: value: @@ -349,6 +380,15 @@ components: updated_at: type: string format: date-time + notification_setting: + type: string + description: >- + Whether team members will receive notifications when the team is + mentioned. + example: notifications_enabled + enum: + - notifications_enabled + - notifications_disabled required: - id - url @@ -503,3 +543,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/gists.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/gists.yaml index 2bc4d9a..7e54f55 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/gists.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/gists.yaml @@ -2347,6 +2347,12 @@ components: type: User site_admin: false truncated: false + x-github-breaking-changes: + - changeset: deprecate_beta_media_type + patch: + value: + user: null + version: '2026-03-10' headers: link: example: >- @@ -2584,3 +2590,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/git.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/git.yaml index 56d1063..2c8d400 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/git.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/git.yaml @@ -2185,3 +2185,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/gitignore.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/gitignore.yaml index ca21908..4b7b98c 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/gitignore.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/gitignore.yaml @@ -26,7 +26,10 @@ paths: schema: type: array items: - type: string + type: object + properties: + gitignore/get_all_template: + type: string examples: default: value: @@ -177,3 +180,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/hosted_compute.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/hosted_compute.yaml index 2d7c4d4..1f40f95 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/hosted_compute.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/hosted_compute.yaml @@ -587,3 +587,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/interactions.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/interactions.yaml index 89336f6..3c2d867 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/interactions.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/interactions.yaml @@ -123,6 +123,164 @@ paths: category: interactions subcategory: orgs x-stackQL-resource: orgs + /orgs/{org}/interaction-limits/pulls/creation-cap: + get: + summary: Get pull request creation cap for an org + description: >- + Gets the pull request creation cap configuration for an organization. + + The cap limits the total number of open pull requests a user can have + across all public + + repositories in the organization at one time. + + + Only users with admin access to the organization can view the cap + configuration. + tags: + - interactions + operationId: interactions/get-pull-request-creation-cap-for-org + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/interactions/orgs#get-pull-request-creation-cap-for-an-org + parameters: + - $ref: '#/components/parameters/org' + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + enabled: + type: boolean + description: Whether the pull request creation cap is enabled + max_open_pull_requests: + type: integer + description: >- + The maximum number of open pull requests a user can have + at one time + minimum: 1 + maximum: 1000 + required: + - enabled + - max_open_pull_requests + examples: + default: + summary: Response when cap is enabled + value: + enabled: true + max_open_pull_requests: 1 + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: interactions + subcategory: orgs + x-stackQL-resource: orgs + patch: + summary: Update pull request creation cap for an org + description: >- + Updates the pull request creation cap for an organization. The cap + limits the total number + + of open pull requests a user can have across all public repositories in + the organization + + at one time. + + + Only users with admin access to the organization can configure the cap. + tags: + - interactions + operationId: interactions/update-pull-request-creation-cap-for-org + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/interactions/orgs#update-pull-request-creation-cap-for-an-org + parameters: + - $ref: '#/components/parameters/org' + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + enabled: + type: boolean + description: Whether the pull request creation cap is enabled + max_open_pull_requests: + type: integer + description: >- + The maximum number of open pull requests a user can have at + one time + minimum: 1 + maximum: 1000 + required: + - enabled + examples: + default: + summary: Example request body + value: + enabled: true + max_open_pull_requests: 1 + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + enabled: + type: boolean + description: Whether the pull request creation cap is enabled + max_open_pull_requests: + type: integer + description: >- + The maximum number of open pull requests a user can have + at one time + minimum: 1 + maximum: 1000 + required: + - enabled + - max_open_pull_requests + examples: + default: + summary: Response + value: + enabled: true + max_open_pull_requests: 1 + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: interactions + subcategory: orgs + x-stackQL-resource: orgs /repos/{owner}/{repo}/interaction-limits: get: summary: Get interaction restrictions for a repository @@ -251,6 +409,313 @@ paths: category: interactions subcategory: repos x-stackQL-resource: repos + /repos/{owner}/{repo}/interaction-limits/pulls/bypass-list: + get: + summary: Get pull request creation cap bypass list for a repository + description: >- + Lists the users that are on the pull request creation cap bypass list + for a + + repository. Users on this list can create pull requests regardless of + any + + configured pull request creation cap. + + + Only users with maintainer permissions can view the bypass list. + tags: + - interactions + operationId: interactions/get-pull-request-bypass-list-for-repo + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/interactions/repos#get-pull-request-creation-cap-bypass-list-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/simple-user' + examples: + default: + $ref: '#/components/examples/pull-request-bypass-list-items' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: interactions + subcategory: repos + x-stackQL-resource: repos + put: + summary: Add users to the pull request creation cap bypass list for a repository + description: >- + Adds users to the pull request creation cap bypass list for a + repository. + + Users on this list can create pull requests regardless of any configured + + pull request creation cap. + + + Only users with maintainer permissions can modify the bypass list. + + You can add a maximum of 100 users per request. + + The bypass list can only hold a maximum of 100 users. + tags: + - interactions + operationId: interactions/set-pull-request-bypass-list-for-repo + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/interactions/repos#add-users-to-the-pull-request-creation-cap-bypass-list-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/interaction-limit-pull-request-bypass-list' + examples: + default: + summary: Example request body + value: + users: + - octocat + - monalisa + responses: + '204': + description: Response + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: interactions + subcategory: repos + x-stackQL-resource: repos + delete: + summary: >- + Remove users from the pull request creation cap bypass list for a + repository + description: >- + Removes users from the pull request creation cap bypass list for a + repository. + + Removed users will be subject to any configured pull request creation + cap. + + + Only users with maintainer permissions can modify the bypass list. + + You can remove a maximum of 100 users per request. + tags: + - interactions + operationId: interactions/remove-pull-request-bypass-list-for-repo + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/interactions/repos#remove-users-from-the-pull-request-creation-cap-bypass-list-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/interaction-limit-pull-request-bypass-list' + examples: + default: + summary: Example request body + value: + users: + - octocat + responses: + '204': + description: Response + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: interactions + subcategory: repos + x-stackQL-resource: repos + /repos/{owner}/{repo}/interaction-limits/pulls/creation-cap: + get: + summary: Get pull request creation cap for a repository + description: >- + Gets the pull request creation cap configuration for a repository. + + The cap limits the number of open pull requests a user can have at one + time. + + + Only users with admin access to the repository can view the cap + configuration. + tags: + - interactions + operationId: interactions/get-pull-request-creation-cap-for-repo + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/interactions/repos#get-pull-request-creation-cap-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + enabled: + type: boolean + description: Whether the pull request creation cap is enabled + max_open_pull_requests: + type: integer + description: >- + The maximum number of open pull requests a user can have + at one time + minimum: 1 + maximum: 1000 + required: + - enabled + - max_open_pull_requests + examples: + default: + summary: Response when cap is enabled + value: + enabled: true + max_open_pull_requests: 1 + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: interactions + subcategory: repos + x-stackQL-resource: repos + patch: + summary: Update pull request creation cap for a repository + description: >- + Updates the pull request creation cap for a repository. The cap limits + the number + + of open pull requests a user can have at one time. + + + Only users with admin access to the repository can configure the cap. + tags: + - interactions + operationId: interactions/update-pull-request-creation-cap-for-repo + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/interactions/repos#update-pull-request-creation-cap-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + enabled: + type: boolean + description: Whether the pull request creation cap is enabled + max_open_pull_requests: + type: integer + description: >- + The maximum number of open pull requests a user can have at + one time + minimum: 1 + maximum: 1000 + required: + - enabled + examples: + default: + summary: Example request body + value: + enabled: true + max_open_pull_requests: 1 + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + enabled: + type: boolean + description: Whether the pull request creation cap is enabled + max_open_pull_requests: + type: integer + description: >- + The maximum number of open pull requests a user can have + at one time + minimum: 1 + maximum: 1000 + required: + - enabled + - max_open_pull_requests + examples: + default: + summary: Response + value: + enabled: true + max_open_pull_requests: 1 + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: interactions + subcategory: repos + x-stackQL-resource: repos /user/interaction-limits: get: summary: Get interaction restrictions for your public repositories @@ -392,6 +857,135 @@ components: $ref: '#/components/schemas/interaction-expiry' required: - limit + basic-error: + title: Basic Error + description: Basic Error + type: object + properties: + message: + type: string + documentation_url: + type: string + url: + type: string + status: + type: string + 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 + interaction-limit-pull-request-bypass-list: + title: Interaction Limits Pull Request Bypass List + description: >- + A list of user logins to add or remove from the pull request creation + cap bypass list. + type: object + properties: + users: + description: A list of user logins to add or remove from the bypass list. + type: array + items: + type: string + example: + - octocat + - monalisa + required: + - users interaction-group: type: string description: >- @@ -458,6 +1052,18 @@ components: application/json: schema: $ref: '#/components/schemas/validation-error' + forbidden: + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + not_found: + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' parameters: org: name: org @@ -493,6 +1099,26 @@ components: limit: collaborators_only origin: repository expires_at: '2018-08-17T04:18:39Z' + pull-request-bypass-list-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 interaction-limit-user: value: limit: collaborators_only @@ -537,6 +1163,37 @@ components: replace: - $ref: >- #/components/x-stackQL-resources/orgs/methods/set_restrictions_for_org + org_pull_request_creation_caps: + id: github.interactions.org_pull_request_creation_caps + name: org_pull_request_creation_caps + title: Org Pull Request Creation Caps + methods: + get_pull_request_creation_cap_for_org: + operation: + $ref: '#/paths/~1orgs~1{org}~1interaction-limits~1pulls~1creation-cap/get' + response: + mediaType: application/json + openAPIDocKey: '200' + update_pull_request_creation_cap_for_org: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: >- + #/paths/~1orgs~1{org}~1interaction-limits~1pulls~1creation-cap/patch + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/org_pull_request_creation_caps/methods/get_pull_request_creation_cap_for_org + insert: [] + update: + - $ref: >- + #/components/x-stackQL-resources/org_pull_request_creation_caps/methods/update_pull_request_creation_cap_for_org + delete: [] + replace: [] repos: id: github.interactions.repos name: repos @@ -575,6 +1232,79 @@ components: replace: - $ref: >- #/components/x-stackQL-resources/repos/methods/set_restrictions_for_repo + repo_pull_request_bypass_lists: + id: github.interactions.repo_pull_request_bypass_lists + name: repo_pull_request_bypass_lists + title: Repo Pull Request Bypass Lists + methods: + get_pull_request_bypass_list_for_repo: + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1interaction-limits~1pulls~1bypass-list/get + response: + mediaType: application/json + openAPIDocKey: '200' + set_pull_request_bypass_list_for_repo: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1interaction-limits~1pulls~1bypass-list/put + response: + mediaType: application/json + openAPIDocKey: '204' + remove_pull_request_bypass_list_for_repo: + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1interaction-limits~1pulls~1bypass-list/delete + response: + mediaType: application/json + openAPIDocKey: '204' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/repo_pull_request_bypass_lists/methods/get_pull_request_bypass_list_for_repo + insert: [] + update: [] + delete: + - $ref: >- + #/components/x-stackQL-resources/repo_pull_request_bypass_lists/methods/remove_pull_request_bypass_list_for_repo + replace: + - $ref: >- + #/components/x-stackQL-resources/repo_pull_request_bypass_lists/methods/set_pull_request_bypass_list_for_repo + repo_pull_request_creation_caps: + id: github.interactions.repo_pull_request_creation_caps + name: repo_pull_request_creation_caps + title: Repo Pull Request Creation Caps + methods: + get_pull_request_creation_cap_for_repo: + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1interaction-limits~1pulls~1creation-cap/get + response: + mediaType: application/json + openAPIDocKey: '200' + update_pull_request_creation_cap_for_repo: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1interaction-limits~1pulls~1creation-cap/patch + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/repo_pull_request_creation_caps/methods/get_pull_request_creation_cap_for_repo + insert: [] + update: + - $ref: >- + #/components/x-stackQL-resources/repo_pull_request_creation_caps/methods/update_pull_request_creation_cap_for_repo + delete: [] + replace: [] user: id: github.interactions.user name: user @@ -615,3 +1345,11 @@ components: #/components/x-stackQL-resources/user/methods/set_restrictions_for_authenticated_user servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/issues.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/issues.yaml index cae0edd..455470f 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/issues.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/issues.yaml @@ -451,6 +451,32 @@ paths: required: false schema: type: string + - name: issue_field_values + description: >- + A comma-separated list of issue field filters in `field_slug:value` + format. + + Only issues matching all specified field values are returned. + + Requires issue fields to be enabled for the repository. Issue fields + are + + not available for user-owned repositories, and field availability + for + + organization-owned public repositories depends on the organization's + + visibility settings. For example, `priority:Urgent,severity:High` + filters + + issues where the `priority` field is `Urgent` AND the `severity` + field is + + `High`. + in: query + required: false + schema: + type: string - $ref: '#/components/parameters/labels' - name: sort description: What to sort results by. @@ -597,6 +623,34 @@ paths: are silently dropped otherwise._ items: type: string + issue_field_values: + type: array + description: >- + An array of issue field values to set on this issue. Each + field value must include the field ID and the value to set. + Issue fields are only available for organization-owned + repositories with the feature enabled. Field values are + silently dropped otherwise. + items: + type: object + properties: + field_id: + type: integer + description: The ID of the issue field to set + value: + oneOf: + - type: string + - type: number + - type: array + items: + type: string + description: >- + The value to set for the field. For multi-select + fields, provide an array of option names. + required: + - field_id + - value + additionalProperties: false type: type: string description: >- @@ -1228,6 +1282,13 @@ paths: The reason for the state change. Ignored unless `state` is changed. example: not_planned + duplicate_issue_id: + type: integer + description: >- + The ID of the issue to mark as the canonical duplicate when + `state_reason` is `duplicate`. The issue must exist and be + accessible to the authenticated user. Ignored when + `state_reason` is not `duplicate`. milestone: nullable: true type: string @@ -1261,6 +1322,22 @@ paths: color: type: string nullable: true + rationale: + type: string + description: Optional reasoning for selecting this label. + suggest: + type: boolean + description: >- + If `true`, the change is stored as a pending + suggestion for human review rather than applied + directly. + confidence: + type: string + description: The confidence level for this label choice. + enum: + - low + - medium + - high assignees: type: array description: >- @@ -1271,7 +1348,28 @@ paths: issues. Without push access to the repository, assignee changes are silently dropped. items: - type: string + oneOf: + - type: string + - type: object + properties: + login: + type: string + rationale: + type: string + description: Optional reasoning for selecting this assignee. + suggest: + type: boolean + description: >- + If `true`, the change is stored as a pending + suggestion for human review rather than applied + directly. + confidence: + type: string + description: The confidence level for this assignee choice. + enum: + - low + - medium + - high issue_field_values: type: array description: >- @@ -1288,20 +1386,63 @@ paths: oneOf: - type: string - type: number - description: The value to set for the field + - type: array + items: + type: string + description: >- + The value to set for the field. For multi-select + fields, provide an array of option names. + rationale: + type: string + description: Optional reasoning for setting this field value. + suggest: + type: boolean + description: >- + If `true`, the change is stored as a pending + suggestion for human review rather than applied + directly. + confidence: + type: string + description: The confidence level for this field value choice. + enum: + - low + - medium + - high required: - field_id - value additionalProperties: false 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 + The issue type to associate with this issue. Only users with push access can set the type for issues. Without push access to the repository, type changes are silently dropped. nullable: true + type: string example: Epic + properties: + value: + type: string + description: >- + The name of the issue type to associate with this issue, + or `null` to remove the current issue type. + nullable: true + example: Epic + rationale: + type: string + description: Optional reasoning for selecting this type. + suggest: + type: boolean + description: >- + If `true`, the change is stored as a pending suggestion + for human review rather than applied directly. + confidence: + type: string + description: The confidence level for this type choice. + enum: + - low + - medium + - high examples: default: value: @@ -1319,7 +1460,402 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/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' + 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 + pinned_comment: + $ref: '#/components/schemas/nullable-issue-comment' + issue_dependencies_summary: + $ref: '#/components/schemas/issue-dependencies-summary' + issue_field_values: + type: array + items: + $ref: '#/components/schemas/issue-field-value' + suggestions: + type: object + description: | + Pending suggestions for each suggestible field (`type`, + `issue_field_values`, `labels`, `assignees`, `state`) the + request touched. Omitted for fields not in the request or + with no pending or ignored suggestions. Items tagged + `ignored` are echoes of the current request's inputs that + were not persisted as pending suggestions. + properties: + type: + type: array + items: + type: object + properties: + value: + type: string + rationale: + type: string + suggest: + type: boolean + confidence: + type: string + enum: + - low + - medium + - high + ignored: + type: boolean + ignored_reason: + type: string + enum: + - already_applied + - issue_already_closed + issue_field_values: + type: array + items: + type: object + properties: + field_id: + type: integer + value: + oneOf: + - type: string + - type: number + - type: array + items: + type: string + rationale: + type: string + suggest: + type: boolean + confidence: + type: string + enum: + - low + - medium + - high + ignored: + type: boolean + ignored_reason: + type: string + enum: + - already_applied + - issue_already_closed + labels: + type: array + items: + type: object + properties: + name: + type: string + rationale: + type: string + suggest: + type: boolean + confidence: + type: string + enum: + - low + - medium + - high + ignored: + type: boolean + ignored_reason: + type: string + enum: + - already_applied + - issue_already_closed + assignees: + type: array + items: + type: object + properties: + login: + type: string + rationale: + type: string + suggest: + type: boolean + confidence: + type: string + enum: + - low + - medium + - high + ignored: + type: boolean + ignored_reason: + type: string + enum: + - already_applied + - issue_already_closed + state: + type: array + items: + type: object + properties: + value: + type: string + state_reason: + type: string + duplicate_issue_id: + type: integer + rationale: + type: string + suggest: + type: boolean + confidence: + type: string + enum: + - low + - medium + - high + ignored: + type: boolean + ignored_reason: + type: string + enum: + - already_applied + - issue_already_closed + 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 + x-github-breaking-changes: + - changeset: deprecate_beta_media_type + patch: + properties: + pull_request: + type: object + properties: + merged_at: + nullable: false + diff_url: + nullable: false + html_url: + nullable: false + patch_url: + nullable: false + url: + nullable: false + type: object + version: '2026-03-10' + - changeset: remove_singular_assignee_from_issues_and_pull_requests + patch: + properties: + assignee: null + required: + - 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 + type: object + version: '2026-03-10' examples: default: $ref: '#/components/examples/issue' @@ -1383,7 +1919,31 @@ paths: users with push access can add assignees to an issue. Assignees are silently ignored otherwise._ items: - type: string + oneOf: + - type: string + - type: object + properties: + login: + type: string + description: The login of the user to assign. + rationale: + type: string + description: Optional reasoning for adding this assignee. + suggest: + type: boolean + description: >- + If `true`, the assignee is stored as a pending + suggestion for human review rather than applied + directly. + confidence: + type: string + description: The confidence level for this assignee choice. + enum: + - low + - medium + - high + required: + - login examples: default: value: @@ -2050,22 +2610,124 @@ paths: category: issues subcategory: issue-field-values x-stackQL-resource: issue_field_values - /repos/{owner}/{repo}/issues/{issue_number}/labels: - get: - summary: List labels for an issue - description: Lists all labels for an issue. + post: + summary: Add issue field values to an issue + description: >- + Add custom field values to an issue. You can set values for + organization-level issue fields that have been defined for the + repository's organization. + + Adding an empty array will clear all existing field values for the + issue. + + + This endpoint supports the following field data types: + + - **`text`**: String values for text fields + + - **`single_select`**: Option names for single-select fields (must match + an existing option name) + + - **`number`**: Numeric values for number fields + + - **`date`**: ISO 8601 date strings for date fields + + + Only users with push access to the repository can add issue field + values. If you don't have the proper permissions, you'll receive a `403 + Forbidden` response. + + + 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)." tags: - issues - operationId: issues/list-labels-on-issue + operationId: issues/add-issue-field-values externalDocs: description: API method documentation - url: https://docs.github.com/rest/issues/labels#list-labels-for-an-issue + url: >- + https://docs.github.com/rest/issues/issue-field-values#add-issue-field-values-to-an-issue parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' - $ref: '#/components/parameters/issue-number' - - $ref: '#/components/parameters/per-page' - - $ref: '#/components/parameters/page' + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + issue_field_values: + type: array + description: >- + An array of issue field values to add to this issue. Each + field value must include the field ID and the value to set. + items: + type: object + properties: + field_id: + type: integer + description: The ID of the issue field to set + example: 123 + value: + oneOf: + - type: string + description: >- + The value to set for text, single_select, or date + fields + - type: number + description: The value to set for number fields + - type: array + items: + type: string + description: >- + The value to set for multi_select fields (array of + option names) + description: >- + The value to set for the field. The type depends on + the field's data type: + + - For text fields: provide a string value + + - For single_select fields: provide the option name as + a string (must match an existing option) + + - For number fields: provide a numeric value + + - For multi_select fields: provide an array of option + names (must match existing options) + + - For date fields: provide an ISO 8601 date string + example: Critical + required: + - field_id + - value + additionalProperties: false + maxItems: 25 + examples: + default: + summary: Add multiple field values + value: + issue_field_values: + - field_id: 123 + value: Critical + - field_id: 456 + value: 5 + - field_id: 789 + value: '2024-12-31' + single-field: + summary: Add a single field value + value: + issue_field_values: + - field_id: 123 + value: High Priority responses: '200': description: Response @@ -2074,70 +2736,238 @@ paths: schema: type: array items: - $ref: '#/components/schemas/label' + $ref: '#/components/schemas/issue-field-value' examples: default: - $ref: '#/components/examples/label-items' - headers: - Link: - $ref: '#/components/headers/link' - '301': - $ref: '#/components/responses/moved_permanently' + $ref: '#/components/examples/issue-field-value-items' + '400': + $ref: '#/components/responses/bad_request' + '403': + $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/not_found' - '410': - $ref: '#/components/responses/gone' + '422': + $ref: '#/components/responses/validation_failed' + '503': + $ref: '#/components/responses/service_unavailable' x-github: + triggersNotification: true githubCloudOnly: false enabledForGitHubApps: true category: issues - subcategory: labels - x-stackQL-resource: labels - post: - summary: Add labels to an issue - description: Adds labels to an issue. - tags: + subcategory: issue-field-values + x-stackQL-resource: issue_field_values + put: + summary: Set issue field values for an issue + description: >- + Set custom field values for an issue, replacing any existing values. You + can set values for organization-level issue fields that have been + defined for the repository's organization. + + + This endpoint supports the following field data types: + + - **`text`**: String values for text fields + + - **`single_select`**: Option names for single-select fields (must match + an existing option name) + + - **`number`**: Numeric values for number fields + + - **`date`**: ISO 8601 date strings for date fields + + + This operation will replace all existing field values with the provided + ones. If you want to add field values without replacing existing ones, + use the `POST` endpoint instead. + + + Only users with push access to the repository can set issue field + values. If you don't have the proper permissions, you'll receive a `403 + Forbidden` response. + + + 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)." + tags: - issues - operationId: issues/add-labels + operationId: issues/set-issue-field-values externalDocs: description: API method documentation - url: https://docs.github.com/rest/issues/labels#add-labels-to-an-issue + url: >- + https://docs.github.com/rest/issues/issue-field-values#set-issue-field-values-for-an-issue parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' - $ref: '#/components/parameters/issue-number' requestBody: - required: false + required: true content: application/json: schema: type: object properties: - labels: + issue_field_values: type: array - minItems: 1 description: >- - The names of the labels to add to the issue's existing - labels. You can also pass an `array` of labels directly, but - GitHub recommends passing an object with the `labels` key. - To replace all of the labels for an issue, use "[Set labels - for an - issue](https://docs.github.com/rest/issues/labels#set-labels-for-an-issue)." + An array of issue field values to set for this issue. Each + field value must include the field ID and the value to set. + All existing field values will be replaced. items: - type: string - items: - type: string - properties: - name: - type: string - required: - - name + type: object + properties: + field_id: + type: integer + description: The ID of the issue field to set + example: 123 + value: + oneOf: + - type: string + description: >- + The value to set for text, single_select, or date + fields + - type: number + description: The value to set for number fields + description: >- + The value to set for the field. The type depends on + the field's data type: + + - For text fields: provide a string value + + - For single_select fields: provide the option name as + a string (must match an existing option) + + - For number fields: provide a numeric value + + - For date fields: provide an ISO 8601 date string + example: Critical + required: + - field_id + - value + additionalProperties: false + maxItems: 25 examples: default: + summary: Set multiple field values value: - labels: - - bug - - enhancement + issue_field_values: + - field_id: 123 + value: Critical + - field_id: 456 + value: 5 + - field_id: 789 + value: '2024-12-31' + single-field: + summary: Set a single field value + value: + issue_field_values: + - field_id: 123 + value: High Priority + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/issue-field-value' + examples: + default: + $ref: '#/components/examples/issue-field-value-items' + '400': + $ref: '#/components/responses/bad_request' + '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: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: issue-field-values + x-stackQL-resource: issue_field_values + /repos/{owner}/{repo}/issues/{issue_number}/issue-field-values/{issue_field_id}: + delete: + summary: Delete an issue field value from an issue + description: >- + Remove a specific custom field value from an issue. + + + Only users with push access to the repository can delete issue field + values. If you don't have the proper permissions, you'll receive a `403 + Forbidden` response. + + + If the specified field does not have a value set on the issue, this + operation will return a `404` error. + + + 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)." + tags: + - issues + operationId: issues/delete-issue-field-value + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/issues/issue-field-values#delete-an-issue-field-value-from-an-issue + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/issue-number' + - $ref: '#/components/parameters/issue-field-id' + responses: + '204': + description: Issue field value deleted successfully + '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: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: issue-field-values + x-stackQL-resource: issue_field_values + /repos/{owner}/{repo}/issues/{issue_number}/labels: + get: + summary: List labels for an issue + description: Lists all labels for an issue. + tags: + - issues + operationId: issues/list-labels-on-issue + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/labels#list-labels-for-an-issue + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/issue-number' + - $ref: '#/components/parameters/per-page' + - $ref: '#/components/parameters/page' responses: '200': description: Response @@ -2150,29 +2980,30 @@ paths: examples: default: $ref: '#/components/examples/label-items' + headers: + Link: + $ref: '#/components/headers/link' '301': $ref: '#/components/responses/moved_permanently' '404': $ref: '#/components/responses/not_found' '410': $ref: '#/components/responses/gone' - '422': - $ref: '#/components/responses/validation_failed' x-github: githubCloudOnly: false enabledForGitHubApps: true category: issues subcategory: labels x-stackQL-resource: labels - put: - summary: Set labels for an issue - description: Removes any previous labels and sets the new labels for an issue. + post: + summary: Add labels to an issue + description: Adds labels to an issue. tags: - issues - operationId: issues/set-labels + operationId: issues/add-labels externalDocs: description: API method documentation - url: https://docs.github.com/rest/issues/labels#set-labels-for-an-issue + url: https://docs.github.com/rest/issues/labels#add-labels-to-an-issue parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -2188,22 +3019,58 @@ paths: 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)." + The labels to add to the issue's existing labels. You can + also pass an `array` of labels directly, but GitHub + recommends passing an object with the `labels` key. To + replace all of the labels for an issue, use "[Set labels for + an + issue](https://docs.github.com/rest/issues/labels#set-labels-for-an-issue)." items: - type: string - minItems: 1 + oneOf: + - type: string + - type: object + properties: + name: + type: string + description: The name of the label to add. + rationale: + type: string + description: Optional reasoning for adding this label. + suggest: + type: boolean + description: >- + If `true`, the label is stored as a pending + suggestion for human review rather than applied + directly. + confidence: + type: string + description: The confidence level for this label choice. + enum: + - low + - medium + - high + required: + - name items: type: string properties: name: type: string + rationale: + type: string + description: Optional reasoning for adding this label. + suggest: + type: boolean + description: >- + If `true`, the label is stored as a pending suggestion for + human review rather than applied directly. + confidence: + type: string + description: The confidence level for this label choice. + enum: + - low + - medium + - high required: - name examples: @@ -2238,12 +3105,86 @@ paths: category: issues subcategory: labels x-stackQL-resource: labels - delete: - summary: Remove all labels from an issue - description: Removes all labels from an issue. + put: + summary: Set labels for an issue + description: Removes any previous labels and sets the new labels for an issue. tags: - issues - operationId: issues/remove-all-labels + operationId: issues/set-labels + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/labels#set-labels-for-an-issue + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/issue-number' + requestBody: + required: false + content: + application/json: + schema: + 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 + minItems: 1 + items: + type: string + properties: + name: + type: string + required: + - name + examples: + default: + value: + labels: + - bug + - enhancement + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/label' + examples: + default: + $ref: '#/components/examples/label-items' + '301': + $ref: '#/components/responses/moved_permanently' + '404': + $ref: '#/components/responses/not_found' + '410': + $ref: '#/components/responses/gone' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: labels + x-stackQL-resource: labels + delete: + summary: Remove all labels from an issue + description: Removes all labels from an issue. + tags: + - issues + operationId: issues/remove-all-labels externalDocs: description: API method documentation url: >- @@ -2539,6 +3480,8 @@ paths: type: string '400': $ref: '#/components/responses/bad_request' + '403': + $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/not_found' x-github: @@ -2775,6 +3718,192 @@ paths: category: issues subcategory: sub-issues x-stackQL-resource: sub_issues + /repos/{owner}/{repo}/issues/{issue_number}/suggestions: + get: + summary: List issue suggestions + description: >- + Lists the suggestions on an issue. A suggestion is an agent-proposed + change to an issue's type, labels, fields, assignees, or closed state + that a maintainer can approve or dismiss. + + + By default only pending suggestions are returned. Use `state=all` to + return suggestions in every state, or `state=` to filter to a + single state. Use `action=` to return only suggestions for a + specific change. + + + This endpoint is only available while the issue suggestions feature is + enabled for the repository, and only supports issues, not pull requests. + + + Requires triage access to the repository. + tags: + - issues + operationId: issues/list-suggestions + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/issues#list-issue-suggestions + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/issue-number' + - name: state + in: query + required: false + description: Filter suggestions by their state. + schema: + type: string + enum: + - pending + - applied + - approved + - dismissed + - replaced + - invalidated + - all + default: pending + - name: action + in: query + required: false + description: Filter suggestions by the change they propose. + schema: + type: string + enum: + - set_type + - add_label + - add_field + - add_assignee + - close_issue + - $ref: '#/components/parameters/per-page' + - $ref: '#/components/parameters/page' + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/issue-suggestion' + examples: + default: + $ref: '#/components/examples/issue-suggestions' + headers: + Link: + $ref: '#/components/headers/link' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: issues + x-stackQL-resource: issues + /repos/{owner}/{repo}/issues/{issue_number}/suggestions/{suggestion_id}/approve: + post: + summary: Approve an issue suggestion + description: >- + Approves a pending suggestion on an issue. Applies the proposed change + (creating the corresponding timeline event), transitions the suggestion + to `approved`, and dismisses any competing pending suggestions for the + same change. + + + Requires triage access to the repository. Approving a suggestion also + requires permission to perform the change it applies (for example, + setting the issue type, adding a label or assignee, or closing the + issue); this only affects fine-grained access tokens and GitHub Apps + whose permissions are narrower than the triage role. This endpoint only + supports issues, not pull requests. + tags: + - issues + operationId: issues/approve-suggestion + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/issues#approve-an-issue-suggestion + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/issue-number' + - name: suggestion_id + in: path + required: true + description: The unique identifier of the suggestion. + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/issue-suggestion' + examples: + default: + $ref: '#/components/examples/issue-suggestion' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: issues + x-stackQL-resource: issues + /repos/{owner}/{repo}/issues/{issue_number}/suggestions/{suggestion_id}/dismiss: + post: + summary: Dismiss an issue suggestion + description: >- + Dismisses a pending suggestion on an issue. Transitions the suggestion + to `dismissed` without applying any change or creating a timeline event. + + + Requires triage access to the repository. This endpoint only supports + issues, not pull requests. + tags: + - issues + operationId: issues/dismiss-suggestion + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/issues#dismiss-an-issue-suggestion + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/issue-number' + - name: suggestion_id + in: path + required: true + description: The unique identifier of the suggestion. + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/issue-suggestion' + examples: + default: + $ref: '#/components/examples/issue-suggestion' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: issues + x-stackQL-resource: issues /repos/{owner}/{repo}/issues/{issue_number}/timeline: get: summary: List timeline events for an issue @@ -2792,6 +3921,7 @@ paths: - $ref: '#/components/parameters/issue-number' - $ref: '#/components/parameters/per-page' - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/issue-timeline-exclude' responses: '200': description: Response @@ -2807,6 +3937,8 @@ paths: headers: Link: $ref: '#/components/headers/link' + '400': + $ref: '#/components/responses/bad_request' '404': $ref: '#/components/responses/not_found' '410': @@ -3358,115 +4490,98 @@ paths: category: issues subcategory: labels x-stackQL-resource: labels - /repositories/{repository_id}/issues/{issue_number}/issue-field-values: - post: - summary: Add issue field values to an issue + /user/issues: + get: + summary: List user account issues assigned to the authenticated user description: >- - Add custom field values to an issue. You can set values for - organization-level issue fields that have been defined for the - repository's organization. - - Adding an empty array will clear all existing field values for the - issue. - + List issues across owned and member repositories assigned to the + authenticated user. - This endpoint supports the following field data types: - - **`text`**: String values for text fields + > [!NOTE] - - **`single_select`**: Option names for single-select fields (must match - an existing option name) + > 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. - - **`number`**: Numeric values for number fields - - **`date`**: ISO 8601 date strings for date fields + 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)." - Only users with push access to the repository can add issue field - values. If you don't have the proper permissions, you'll receive a `403 - Forbidden` response. + - **`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`. - 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)" + - **`application/vnd.github.html+json`**: Returns HTML rendered from the + body's markdown. Response will include `body_html`. - and "[Best practices for using the REST - API](https://docs.github.com/rest/guides/best-practices-for-using-the-rest-api)." + - **`application/vnd.github.full+json`**: Returns raw, text, and HTML + representations. Response will include `body`, `body_text`, and + `body_html`. tags: - issues - operationId: issues/add-issue-field-values + operationId: issues/list-for-authenticated-user externalDocs: description: API method documentation url: >- - https://docs.github.com/rest/issues/issue-field-values#add-issue-field-values-to-an-issue + https://docs.github.com/rest/issues/issues#list-user-account-issues-assigned-to-the-authenticated-user parameters: - - $ref: '#/components/parameters/repository-id' - - $ref: '#/components/parameters/issue-number' - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - issue_field_values: - type: array - description: >- - An array of issue field values to add to this issue. Each - field value must include the field ID and the value to set. - items: - type: object - properties: - field_id: - type: integer - description: The ID of the issue field to set - example: 123 - value: - oneOf: - - type: string - description: >- - The value to set for text, single_select, or date - fields - - type: number - description: The value to set for number fields - description: >- - The value to set for the field. The type depends on - the field's data type: - - - For text fields: provide a string value - - - For single_select fields: provide the option name as - a string (must match an existing option) - - - For number fields: provide a numeric value - - - For date fields: provide an ISO 8601 date string - example: Critical - required: - - field_id - - value - additionalProperties: false - maxItems: 25 - examples: - default: - summary: Add multiple field values - value: - issue_field_values: - - field_id: 123 - value: Critical - - field_id: 456 - value: 5 - - field_id: 789 - value: '2024-12-31' - single-field: - summary: Add a single field value - value: - issue_field_values: - - field_id: 123 - value: High Priority + - 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 + - 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: 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: '200': description: Response @@ -3474,348 +4589,28 @@ paths: application/json: schema: type: array - description: >- - The current issue field values for this issue after adding the - new values items: - $ref: '#/components/schemas/issue-field-value' + $ref: '#/components/schemas/issue' examples: default: - $ref: '#/components/examples/issue-field-value-items' - '400': - $ref: '#/components/responses/bad_request' - '403': - $ref: '#/components/responses/forbidden' + $ref: '#/components/examples/issue-with-repo-items' + headers: + Link: + $ref: '#/components/headers/link' + '304': + $ref: '#/components/responses/not_modified' '404': $ref: '#/components/responses/not_found' - '422': - $ref: '#/components/responses/validation_failed' - '503': - $ref: '#/components/responses/service_unavailable' x-github: - triggersNotification: true githubCloudOnly: false - enabledForGitHubApps: true + enabledForGitHubApps: false category: issues - subcategory: issue-field-values - x-stackQL-resource: issue_field_values - put: - summary: Set issue field values for an issue - description: >- - Set custom field values for an issue, replacing any existing values. You - can set values for organization-level issue fields that have been - defined for the repository's organization. - - - This endpoint supports the following field data types: - - - **`text`**: String values for text fields - - - **`single_select`**: Option names for single-select fields (must match - an existing option name) - - - **`number`**: Numeric values for number fields - - - **`date`**: ISO 8601 date strings for date fields - - - This operation will replace all existing field values with the provided - ones. If you want to add field values without replacing existing ones, - use the `POST` endpoint instead. - - - Only users with push access to the repository can set issue field - values. If you don't have the proper permissions, you'll receive a `403 - Forbidden` response. - - - 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)." - tags: - - issues - operationId: issues/set-issue-field-values - externalDocs: - description: API method documentation - url: >- - https://docs.github.com/rest/issues/issue-field-values#set-issue-field-values-for-an-issue - parameters: - - $ref: '#/components/parameters/repository-id' - - $ref: '#/components/parameters/issue-number' - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - issue_field_values: - type: array - description: >- - An array of issue field values to set for this issue. Each - field value must include the field ID and the value to set. - All existing field values will be replaced. - items: - type: object - properties: - field_id: - type: integer - description: The ID of the issue field to set - example: 123 - value: - oneOf: - - type: string - description: >- - The value to set for text, single_select, or date - fields - - type: number - description: The value to set for number fields - description: >- - The value to set for the field. The type depends on - the field's data type: - - - For text fields: provide a string value - - - For single_select fields: provide the option name as - a string (must match an existing option) - - - For number fields: provide a numeric value - - - For date fields: provide an ISO 8601 date string - example: Critical - required: - - field_id - - value - additionalProperties: false - maxItems: 25 - examples: - default: - summary: Set multiple field values - value: - issue_field_values: - - field_id: 123 - value: Critical - - field_id: 456 - value: 5 - - field_id: 789 - value: '2024-12-31' - single-field: - summary: Set a single field value - value: - issue_field_values: - - field_id: 123 - value: High Priority - responses: - '200': - description: Response - content: - application/json: - schema: - type: array - description: >- - The current issue field values for this issue after setting - the new values - items: - $ref: '#/components/schemas/issue-field-value' - examples: - default: - $ref: '#/components/examples/issue-field-value-items' - '400': - $ref: '#/components/responses/bad_request' - '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: - triggersNotification: true - githubCloudOnly: false - enabledForGitHubApps: true - category: issues - subcategory: issue-field-values - x-stackQL-resource: issue_field_values - /repositories/{repository_id}/issues/{issue_number}/issue-field-values/{issue_field_id}: - delete: - summary: Delete an issue field value from an issue - description: >- - Remove a specific custom field value from an issue. - - - Only users with push access to the repository can delete issue field - values. If you don't have the proper permissions, you'll receive a `403 - Forbidden` response. - - - If the specified field does not have a value set on the issue, this - operation will return a `404` error. - - - 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)." - tags: - - issues - operationId: issues/delete-issue-field-value - externalDocs: - description: API method documentation - url: >- - https://docs.github.com/rest/issues/issue-field-values#delete-an-issue-field-value-from-an-issue - parameters: - - $ref: '#/components/parameters/repository-id' - - $ref: '#/components/parameters/issue-number' - - $ref: '#/components/parameters/issue-field-id' - responses: - '204': - description: Issue field value deleted successfully - '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: - triggersNotification: true - githubCloudOnly: false - enabledForGitHubApps: true - category: issues - subcategory: issue-field-values - x-stackQL-resource: issue_field_values - /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. - - - > [!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`. - 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 - - 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: 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: - '200': - description: Response - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/issue' - examples: - default: - $ref: '#/components/examples/issue-with-repo-items' - headers: - Link: - $ref: '#/components/headers/link' - '304': - $ref: '#/components/responses/not_modified' - '404': - $ref: '#/components/responses/not_found' - x-github: - githubCloudOnly: false - enabledForGitHubApps: false - category: issues - subcategory: issues - x-stackQL-resource: issues -components: - schemas: - issue: - title: Issue + subcategory: issues + x-stackQL-resource: issues +components: + schemas: + issue: + title: Issue description: >- Issues are a great way to keep track of tasks, enhancements, and bugs for your projects. @@ -4226,6 +5021,8 @@ components: $ref: '#/components/schemas/reaction-rollup' pin: $ref: '#/components/schemas/nullable-pinned-issue-comment' + minimized: + $ref: '#/components/schemas/nullable-issue-comment-minimized' required: - id - node_id @@ -4291,6 +5088,20 @@ components: $ref: '#/components/schemas/issue-event-project-card' rename: $ref: '#/components/schemas/issue-event-rename' + issue_type: + $ref: '#/components/schemas/issue-type-webhook' + prev_issue_type: + $ref: '#/components/schemas/issue-type-webhook' + sub_issue: + $ref: '#/components/schemas/nullable-issue-reference' + parent_issue: + $ref: '#/components/schemas/nullable-issue-reference' + blocked_by: + $ref: '#/components/schemas/nullable-issue-reference' + blocking: + $ref: '#/components/schemas/nullable-issue-reference' + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' author_association: $ref: '#/components/schemas/author-association' lock_reason: @@ -4342,6 +5153,8 @@ components: required: - name - color + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' assignee: $ref: '#/components/schemas/simple-user' assigner: @@ -4412,6 +5225,18 @@ components: - project_id - project_url - column_name + issue_type: + $ref: '#/components/schemas/issue-type-webhook' + prev_issue_type: + $ref: '#/components/schemas/issue-type-webhook' + sub_issue: + $ref: '#/components/schemas/nullable-issue-reference' + parent_issue: + $ref: '#/components/schemas/nullable-issue-reference' + blocked_by: + $ref: '#/components/schemas/nullable-issue-reference' + blocking: + $ref: '#/components/schemas/nullable-issue-reference' required: - label - id @@ -4430,6 +5255,12 @@ components: - review_requester - dismissed_review - lock_reason + - issue_type + - prev_issue_type + - sub_issue + - parent_issue + - blocked_by + - blocking issue-field-value: title: Issue Field Value description: A value assigned to an issue field @@ -4440,6 +5271,10 @@ components: type: integer format: int64 example: 1 + issue_field_name: + description: The human-readable name of the issue field. + type: string + example: Priority node_id: type: string example: IFT_GDKND @@ -4449,6 +5284,7 @@ components: enum: - text - single_select + - multi_select - number - date example: text @@ -4481,6 +5317,30 @@ components: - name - color nullable: true + multi_select_options: + description: Details about the selected options + type: array + items: + 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 @@ -4489,2138 +5349,2878 @@ components: label: title: Label description: >- - Color-coded labels help you categorize and filter your issues (just like - labels in Gmail). + 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 + issue-suggestion: + title: Issue Suggestion + description: >- + An agent-proposed change to an issue that a maintainer can approve or + dismiss. + type: object + properties: + id: + type: integer + description: The unique identifier of the suggestion. + issue_id: + type: integer + description: The unique identifier of the issue the suggestion applies to. + action: + type: string + description: The kind of change proposed. + enum: + - set_type + - add_label + - add_field + - add_assignee + - close_issue + state: + type: string + description: The suggestion's lifecycle state. + enum: + - pending + - applied + - approved + - dismissed + - replaced + - invalidated + target_id: + type: integer + description: >- + The identifier of the target the change applies to (issue type, + label, field, assignee, or duplicate issue), when applicable. + nullable: true + target_value: + description: >- + The proposed value, when applicable. An array for multi-select field + suggestions. + nullable: true + type: string + items: + type: string + rationale: + type: string + description: The rationale the actor provided for the suggestion. + nullable: true + confidence: + type: string + description: The actor's confidence level in the suggestion. + enum: + - LOW + - MEDIUM + - HIGH + nullable: true + actor_id: + type: integer + description: The unique identifier of the actor that proposed the suggestion. + nullable: true + issue_event_id: + type: integer + description: >- + The identifier of the timeline event created when the suggestion was + approved, when applicable. + nullable: true + resolved_by: + type: integer + description: >- + The unique identifier of the user who approved or dismissed the + suggestion. + nullable: true + created_at: + type: string + description: The time the suggestion was created. + format: date-time + updated_at: + type: string + description: The time the suggestion was last updated. + format: date-time + required: + - id + - issue_id + - action + - state + - target_id + - target_value + - rationale + - confidence + - actor_id + - issue_event_id + - resolved_by + - created_at + - updated_at + timeline-issue-events: + title: Timeline Event + description: Timeline 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 + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' + milestone: + type: object + properties: + title: + type: string + required: + - title + rename: + type: object + properties: + from: + type: string + to: + type: string + required: + - from + - to + review_requester: + $ref: '#/components/schemas/simple-user' + requested_team: + $ref: '#/components/schemas/team' + requested_reviewer: + $ref: '#/components/schemas/simple-user' + 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 + lock_reason: + type: string + example: '"off-topic"' + nullable: true + 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 + 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' + 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' + reactions: + $ref: '#/components/schemas/reaction-rollup' + pin: + $ref: '#/components/schemas/nullable-pinned-issue-comment' + minimized: + $ref: '#/components/schemas/nullable-issue-comment-minimized' + source: + type: object + properties: + type: + type: string + issue: + $ref: '#/components/schemas/issue' + sha: + description: SHA for the commit + example: 7638417db6d59f3c431d3e1f261cc637155684cd + 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: + 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 + state: + type: string + example: CHANGES_REQUESTED + 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 + comments: + type: array + items: + $ref: '#/components/schemas/pull-request-review-comment' + assignee: + $ref: '#/components/schemas/simple-user' + state_reason: + type: string + nullable: true + issue_type: + $ref: '#/components/schemas/issue-type-webhook' + prev_issue_type: + $ref: '#/components/schemas/issue-type-webhook' + sub_issue: + $ref: '#/components/schemas/nullable-issue-reference' + parent_issue: + $ref: '#/components/schemas/nullable-issue-reference' + blocked_by: + $ref: '#/components/schemas/nullable-issue-reference' + blocking: + $ref: '#/components/schemas/nullable-issue-reference' + required: + - label + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + - milestone + - rename + - review_requester + - dismissed_review + - lock_reason + - html_url + - issue_url + - author_association + - user + - updated_at + - source + - sha + - author + - committer + - tree + - message + - parents + - verification + - body + - state + - pull_request_url + - _links + - assignee + - issue_type + - prev_issue_type + - sub_issue + - parent_issue + - blocked_by + - blocking + 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-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 + 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 assigned to the issue. This is only present for issues in + repositories where issue types are supported. + 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 + 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 + pull_request_creation_policy: + description: >- + The policy controlling who can create pull requests: all or + collaborators_only. + type: string + enum: + - all + - collaborators_only + example: all + 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: + + + - `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). + squash_merge_commit_message: + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + description: |- + 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. + merge_commit_title: + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + description: >- + 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). + merge_commit_message: + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + description: |- + 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. + 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 + x-github-breaking-changes: + - changeset: remove_use_squash_pr_title_as_default + patch: + properties: + use_squash_pr_title_as_default: null + type: object + version: '2026-03-10' + - changeset: deprecate_beta_media_type + patch: + properties: + master_branch: null + type: object + version: '2026-03-10' + - changeset: remove_has_downloads + patch: + properties: + has_downloads: null + 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 + - 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 + type: object + version: '2026-03-10' + 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 for the label. + description: Unique identifier of the GitHub app + example: 37 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 + slug: + description: The slug name of the GitHub app + example: probot-owners 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 - timeline-issue-events: - title: Timeline Event - description: Timeline 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: + example: MDExOkludGVncmF0aW9uMQ== + client_id: type: string - performed_via_github_app: - $ref: '#/components/schemas/nullable-integration' - label: + example: '"Iv1.25b5d1e65ffc4022"' + owner: + title: Simple User + description: A GitHub user. type: object properties: name: + nullable: true type: string - color: - type: string - required: - - name - - color - milestone: - type: object - properties: - title: - type: string - required: - - title - rename: - type: object - properties: - from: - type: string - to: - type: string - required: - - from - - to - review_requester: - $ref: '#/components/schemas/simple-user' - requested_team: - $ref: '#/components/schemas/team' - requested_reviewer: - $ref: '#/components/schemas/simple-user' - dismissed_review: - type: object - properties: - state: - type: string - review_id: - type: integer - dismissal_message: + email: nullable: true type: string - dismissal_commit_id: + login: type: string - required: - - state - - review_id - - dismissal_message - lock_reason: - type: string - example: '"off-topic"' - nullable: true - project_card: - type: object - properties: + example: octocat id: type: integer - url: + format: int64 + example: 1 + node_id: type: string - format: uri - project_id: - type: integer - project_url: + example: MDQ6VXNlcjE= + avatar_url: type: string format: uri - column_name: - type: string - previous_column_name: - type: string - required: - - id - - url - - project_id - - project_url - - column_name - 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' - 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' - reactions: - $ref: '#/components/schemas/reaction-rollup' - pin: - $ref: '#/components/schemas/nullable-pinned-issue-comment' - source: - type: object - properties: - type: + example: https://github.com/images/error/octocat_happy.gif + gravatar_id: type: string - issue: - $ref: '#/components/schemas/issue' - sha: - description: SHA for the commit - example: 7638417db6d59f3c431d3e1f261cc637155684cd - 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 + example: 41d064eb2195891e12d0413f63227ea7 + nullable: true + url: type: string - email: + format: uri + example: https://api.github.com/users/octocat + html_url: type: string - description: Git email address of the user - example: monalisa.octocat@example.com - name: - description: Name of the git user - example: Monalisa Octocat + format: uri + example: https://github.com/octocat + followers_url: 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 + format: uri + example: https://api.github.com/users/octocat/followers + following_url: type: string - email: + example: https://api.github.com/users/octocat/following{/other_user} + gists_url: type: string - description: Git email address of the user - example: monalisa.octocat@example.com - name: - description: Name of the git user - example: Monalisa Octocat + example: https://api.github.com/users/octocat/gists{/gist_id} + starred_url: 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 + example: https://api.github.com/users/octocat/starred{/owner}{/repo} + subscriptions_url: type: string - url: + format: uri + example: https://api.github.com/users/octocat/subscriptions + organizations_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: + 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 - reason: + starred_at: type: string - signature: + example: '"2020-07-09T00:17:55Z"' + user_view_type: + type: string + example: public + description: + description: A short description of the enterprise. type: string nullable: true - payload: + website_url: + description: The enterprise's website URL. type: string nullable: true - verified_at: + format: uri + 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' required: - - verified - - reason - - signature - - payload - - verified_at - state: - type: string - example: CHANGES_REQUESTED - 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 - comments: - type: array - items: - $ref: '#/components/schemas/pull-request-review-comment' - assignee: - $ref: '#/components/schemas/simple-user' - state_reason: - type: string - nullable: true - required: - - label - - id - - node_id - - url - - actor - - event - - commit_id - - commit_url - - created_at - - performed_via_github_app - - milestone - - rename - - review_requester - - dismissed_review - - lock_reason - - html_url - - issue_url - - author_association - - user - - updated_at - - source - - sha - - author - - committer - - tree - - message - - parents - - verification - - body - - state - - pull_request_url - - _links - - assignee - 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 + - 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 + - name + - slug + - created_at + - updated_at + name: + description: The name of the GitHub app + example: Probot Owners type: string description: type: string - example: Tracking milestone for version 1.0 + example: The description of the app. nullable: true - creator: - $ref: '#/components/schemas/nullable-simple-user' - open_issues: - type: integer - example: 4 - closed_issues: - type: integer - example: 8 - created_at: + external_url: type: string - format: date-time - example: '2011-04-10T20:09:31Z' - updated_at: + format: uri + example: https://example.com + html_url: type: string - format: date-time - example: '2014-03-03T18:58:10Z' - closed_at: + format: uri + example: https://github.com/apps/super-ci + created_at: type: string format: date-time - example: '2013-02-12T13:22:01Z' - nullable: true - due_on: + example: '2017-07-08T16:18:44-04:00' + updated_at: type: string format: date-time - example: '2012-10-09T23:39:01Z' - nullable: true + 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: - - closed_issues - - creator - - description - - due_on - - closed_at - id - node_id - - labels_url + - owner + - name + - description + - external_url - html_url - - number - - open_issues - - state - - title - - url - created_at - updated_at - 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 - nullable-milestone: - title: Milestone - description: A collection of related issues and pull requests. + - 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 - 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: + total_count: type: integer - example: 1002604 - node_id: - type: string - example: MDk6TWlsZXN0b25lMTAwMjYwNA== - number: - description: The number of the milestone. + '+1': 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: + '-1': type: integer - example: 4 - closed_issues: + laugh: + type: integer + confused: + type: integer + heart: + type: integer + hooray: + type: integer + eyes: + type: integer + rocket: 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. + - total_count + - '+1' + - '-1' + - laugh + - confused + - heart + - hooray + - eyes + - rocket + sub-issues-summary: + title: Sub-issues Summary type: object - nullable: true properties: - id: + total: + type: integer + completed: + type: integer + percent_completed: 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 - repository: - title: Repository - description: A repository on GitHub. + - total + - completed + - percent_completed + nullable-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 repository + description: Unique identifier of the issue comment 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: + description: URL for the issue comment + example: https://api.github.com/repositories/42/issues/comments/1 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: + body: + description: Contents of the issue comment + example: What version of Safari were you using when you observed this bug? type: string - format: uri - example: http://api.github.com/repos/octocat/Hello-World/deployments - downloads_url: + body_text: type: string - format: uri - example: http://api.github.com/repos/octocat/Hello-World/downloads - events_url: + body_html: type: string - format: uri - example: http://api.github.com/repos/octocat/Hello-World/events - forks_url: + html_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: + user: + $ref: '#/components/schemas/nullable-simple-user' + created_at: type: string - example: http://api.github.com/repos/octocat/Hello-World/labels{/name} - languages_url: + format: date-time + example: '2011-04-14T16:00:49Z' + updated_at: type: string - format: uri - example: http://api.github.com/repos/octocat/Hello-World/languages - merges_url: + format: date-time + example: '2011-04-14T16:00:49Z' + issue_url: type: string format: uri - example: http://api.github.com/repos/octocat/Hello-World/merges - milestones_url: + 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' + minimized: + $ref: '#/components/schemas/nullable-issue-comment-minimized' + required: + - id + - node_id + - html_url + - issue_url + - user + - url + - created_at + - updated_at + nullable: true + 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 + validation-error: + title: Validation Error + description: Validation Error + type: object + required: + - message + - documentation_url + properties: + message: type: string - example: http://api.github.com/repos/octocat/Hello-World/milestones{/number} - notifications_url: + documentation_url: type: string - example: >- - http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating} - pulls_url: + 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 + scim-error: + title: Scim Error + description: Scim Error + type: object + properties: + message: type: string - example: http://api.github.com/repos/octocat/Hello-World/pulls{/number} - releases_url: + nullable: true + documentation_url: type: string - example: http://api.github.com/repos/octocat/Hello-World/releases{/id} - ssh_url: + nullable: true + detail: type: string - example: git@github.com:octocat/Hello-World.git - stargazers_url: + nullable: true + status: + type: integer + scimType: type: string - format: uri - example: http://api.github.com/repos/octocat/Hello-World/stargazers - statuses_url: + nullable: true + schemas: + type: array + items: + type: string + 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 - example: http://api.github.com/repos/octocat/Hello-World/statuses/{sha} - subscribers_url: + format: date-time + example: '2011-04-14T16:00:49Z' + pinned_by: + $ref: '#/components/schemas/nullable-simple-user' + required: + - pinned_at + - pinned_by + nullable: true + nullable-issue-comment-minimized: + title: Minimized Issue Comment + description: Details about why an issue comment was minimized. + type: object + properties: + reason: + description: The reason the comment was minimized. type: string - format: uri - example: http://api.github.com/repos/octocat/Hello-World/subscribers - subscription_url: + nullable: true + example: low-quality + required: + - reason + nullable: true + 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 - format: uri - example: http://api.github.com/repos/octocat/Hello-World/subscription - tags_url: + url: + description: URL for the issue + example: https://api.github.com/repositories/42/issues/1 type: string format: uri - example: http://api.github.com/repos/octocat/Hello-World/tags - teams_url: + repository_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: + labels_url: type: string - format: uri - example: git:git.example.com/octocat/Hello-World - nullable: true - hooks_url: + comments_url: type: string format: uri - example: http://api.github.com/repos/octocat/Hello-World/hooks - svn_url: + events_url: type: string format: uri - example: https://svn.github.com/octocat/Hello-World - homepage: + html_url: 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. + number: + description: Number uniquely identifying the issue within its repository + example: 42 type: integer - example: 108 - default_branch: - description: The default branch of the repository. + state: + description: State of the issue; either 'open' or 'closed' + example: open 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 - pull_request_creation_policy: - description: >- - The policy controlling who can create pull requests: all or - collaborators_only. + state_reason: + description: The reason for the current state + example: not_planned type: string + nullable: true enum: - - all - - collaborators_only - example: all - archived: - description: Whether the repository is archived. - default: false - type: boolean - disabled: + - 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' + milestone: + $ref: '#/components/schemas/nullable-milestone' + locked: type: boolean - description: Returns whether or not this repository disabled. - visibility: - description: 'The repository visibility: public, private, or internal.' - default: public + active_lock_reason: type: string - pushed_at: + 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 - 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: + draft: 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: - - - - `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). - squash_merge_commit_message: - type: string - enum: - - PR_BODY - - COMMIT_MESSAGES - - BLANK - description: |- - 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. - merge_commit_title: + closed_by: + $ref: '#/components/schemas/nullable-simple-user' + body_html: type: string - enum: - - PR_TITLE - - MERGE_MESSAGE - description: >- - 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). - merge_commit_message: + body_text: type: string - enum: - - PR_BODY - - PR_TITLE - - BLANK - description: |- - 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. - 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: + timeline_url: type: string - starred_at: + 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 - 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 + format: uri + nullable: true + pinned_comment: + $ref: '#/components/schemas/nullable-issue-comment' + issue_dependencies_summary: + $ref: '#/components/schemas/issue-dependencies-summary' + issue_field_values: + type: array + items: + $ref: '#/components/schemas/issue-field-value' required: - - archive_url - - assignees_url - - blobs_url - - branches_url - - collaborators_url + - assignee + - closed_at + - comments - 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 - 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 + - milestone + - number + - repository_url + - state + - locked + - title - 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 + - user - created_at - updated_at x-github-breaking-changes: - - changeset: remove_use_squash_pr_title_as_default - patch: - properties: - use_squash_pr_title_as_default: null - type: object - version: '2026-03-10' - changeset: deprecate_beta_media_type patch: properties: - master_branch: null + pull_request: + type: object + properties: + merged_at: + nullable: false + diff_url: + nullable: false + html_url: + nullable: false + patch_url: + nullable: false + url: + nullable: false type: object version: '2026-03-10' - - changeset: remove_has_downloads + - changeset: remove_singular_assignee_from_issues_and_pull_requests patch: properties: - has_downloads: null + assignee: null required: - - archive_url - - assignees_url - - blobs_url - - branches_url - - collaborators_url + - closed_at + - comments - 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 - 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 + - milestone + - number + - repository_url + - state + - locked + - title - url - - clone_url - - default_branch - - forks - - forks_count - - git_url - - 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 + - user - created_at - updated_at type: object version: '2026-03-10' - nullable-integration: - title: GitHub app + 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 + team: + title: Team 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. + 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 + access_source: + description: >- + How the team's access to the repository was granted. This property + is only + + present when the team is returned in a repository context, such as + + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct + 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 + 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-type-webhook: + title: Issue Type + description: The type of issue. 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 + description: The unique identifier of the issue type. + name: type: string - node_id: + description: The name of the issue type. + color: type: string - example: MDExOkludGVncmF0aW9uMQ== - client_id: + description: The color of the issue type. + enum: + - gray + - blue + - green + - yellow + - orange + - red + - pink + - purple + nullable: true + required: + - id + - name + nullable-issue-reference: + title: Issue Reference + description: >- + A minimal reference to an issue linked from a timeline event (e.g. + sub-issue, parent-issue, or dependency events). + type: object + nullable: true + properties: + number: + type: integer + description: The number of the referenced issue. + title: type: string - example: '"Iv1.25b5d1e65ffc4022"' - owner: - title: Simple User - description: A GitHub user. + description: The title of the referenced issue. + state: + type: string + description: The state of the referenced issue. + state_reason: + type: string + description: The reason for the referenced issue's state. + nullable: true + repository: + $ref: '#/components/schemas/simple-repository' + issue_type: + title: Issue Type + description: The type of the referenced issue. type: object + nullable: true properties: - name: - nullable: true - type: string - email: - nullable: true - type: string - login: - type: string - example: octocat id: type: integer - format: int64 - example: 1 + description: The unique identifier of the issue type. 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 - description: - description: A short description of the enterprise. - type: string - nullable: true - website_url: - description: The enterprise's website URL. - type: string - nullable: true - format: uri - slug: - description: The slug url identifier for the enterprise. - type: string - example: octo-business - created_at: + description: The node identifier of the issue type. + name: type: string - nullable: true - format: date-time - example: '2019-01-26T19:01:12Z' - updated_at: + description: The name of the issue type. + color: type: string + description: The color of the issue type. nullable: true - format: date-time - example: '2019-01-26T19:14:43Z' 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 - - name - - slug - - created_at - - updated_at - name: - description: The name of the GitHub app - example: Probot Owners + - node_id + - name + required: + - number + - title + - state + - repository + - issue_type + nullable-issue-event-intent: + title: Issue Event Intent + description: >- + The intent behind an agent's action on an issue, including the rationale + and confidence. Present (and `null` when the event carried no agent + intent) on supported event types while the issue suggestions feature is + enabled for the repository; the property is omitted entirely when the + feature is disabled or the event type does not support intent. + type: object + nullable: true + properties: + rationale: type: string - description: + description: The reasoning the agent provided for the change. + nullable: true + confidence: type: string - example: The description of the app. + description: The confidence level the agent had when performing this action. + enum: + - LOW + - MEDIUM + - HIGH nullable: true - external_url: + labeled-issue-event: + title: Labeled Issue Event + description: Labeled Issue Event + type: object + properties: + id: + type: integer + node_id: type: string - format: uri - example: https://example.com - html_url: + url: type: string - format: uri - example: https://github.com/apps/super-ci - created_at: + actor: + $ref: '#/components/schemas/simple-user' + event: type: string - format: date-time - example: '2017-07-08T16:18:44-04:00' - updated_at: + commit_id: type: string - format: date-time - example: '2017-07-08T16:18:44-04:00' - permissions: - description: The set of permissions for the GitHub app + 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: - issues: - type: string - checks: - type: string - metadata: - type: string - contents: + name: type: string - deployments: + color: 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: + - name + - color + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' required: + - label - id - node_id - - owner - - name - - description - - external_url - - html_url + - url + - actor + - event + - commit_id + - commit_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 + - 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 - 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 + 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 + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' required: + - label + - id + - node_id - url - - total_count - - '+1' - - '-1' - - laugh - - confused - - heart - - hooray - - eyes - - rocket - sub-issues-summary: - title: Sub-issues Summary + - 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: - total: - type: integer - completed: - type: integer - percent_completed: + 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' + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' required: - - total - - completed - - percent_completed - nullable-issue-comment: - title: Issue Comment - description: Comments provide a way for people to collaborate on an issue. + - 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: - 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: + actor: + $ref: '#/components/schemas/simple-user' + event: type: string - format: uri - user: - $ref: '#/components/schemas/nullable-simple-user' - created_at: + commit_id: type: string - format: date-time - example: '2011-04-14T16:00:49Z' - updated_at: + nullable: true + commit_url: type: string - format: date-time - example: '2011-04-14T16:00:49Z' - issue_url: + nullable: true + created_at: 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' + assignee: + $ref: '#/components/schemas/simple-user' + assigner: + $ref: '#/components/schemas/simple-user' required: - id - node_id - - html_url - - issue_url - - user - url + - actor + - event + - commit_id + - commit_url - created_at - - updated_at - nullable: true - issue-dependencies-summary: - title: Issue Dependencies Summary + - performed_via_github_app + - assignee + - assigner + milestoned-issue-event: + title: Milestoned Issue Event + description: Milestoned Issue Event type: object properties: - blocked_by: - type: integer - blocking: - type: integer - total_blocked_by: - type: integer - total_blocking: + id: type: integer - required: - - blocked_by - - blocking - - total_blocked_by - - total_blocking - validation-error: - title: Validation Error - description: Validation Error - type: object - required: - - message - - documentation_url - properties: - message: - type: string - documentation_url: + node_id: 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 - scim-error: - title: Scim Error - description: Scim Error - type: object - properties: - message: + url: type: string - nullable: true - documentation_url: + actor: + $ref: '#/components/schemas/simple-user' + event: type: string - nullable: true - detail: + commit_id: type: string nullable: true - status: - type: integer - scimType: + commit_url: type: string nullable: true - schemas: - type: array - items: - type: string - 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: + created_at: type: string - format: date-time - example: '2011-04-14T16:00:49Z' - pinned_by: - $ref: '#/components/schemas/nullable-simple-user' + performed_via_github_app: + $ref: '#/components/schemas/nullable-integration' + milestone: + type: object + properties: + title: + type: string + required: + - title required: - - pinned_at - - pinned_by - nullable: true - nullable-issue: - title: Issue - description: >- - Issues are a great way to keep track of tasks, enhancements, and bugs - for your projects. + - 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 - 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 + actor: + $ref: '#/components/schemas/simple-user' + event: type: string - state_reason: - description: The reason for the current state - example: not_planned + commit_id: 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? + commit_url: 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' + created_at: + type: string + performed_via_github_app: + $ref: '#/components/schemas/nullable-integration' milestone: - $ref: '#/components/schemas/nullable-milestone' - locked: - type: boolean - active_lock_reason: + 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 - comments: - type: integer - pull_request: + commit_url: + type: string + nullable: true + created_at: + type: string + performed_via_github_app: + $ref: '#/components/schemas/nullable-integration' + rename: 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: + from: type: string - format: uri - nullable: true - url: + to: type: string - format: uri - nullable: true required: - - diff_url - - html_url - - patch_url - - url - closed_at: + - 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 - format: date-time - nullable: true - created_at: + url: type: string - format: date-time - updated_at: + actor: + $ref: '#/components/schemas/simple-user' + event: type: string - format: date-time - draft: - type: boolean - closed_by: - $ref: '#/components/schemas/nullable-simple-user' - body_html: + commit_id: type: string - body_text: + nullable: true + commit_url: type: string - timeline_url: + nullable: true + created_at: 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 - pinned_comment: - $ref: '#/components/schemas/nullable-issue-comment' - issue_dependencies_summary: - $ref: '#/components/schemas/issue-dependencies-summary' - issue_field_values: - type: array - items: - $ref: '#/components/schemas/issue-field-value' + review_requester: + $ref: '#/components/schemas/simple-user' + requested_team: + $ref: '#/components/schemas/team' + requested_reviewer: + $ref: '#/components/schemas/simple-user' required: - - assignee - - closed_at - - comments - - comments_url - - events_url - - html_url + - review_requester - id - node_id - - labels - - labels_url - - milestone - - number - - repository_url - - state - - locked - - title - url - - user + - actor + - event + - commit_id + - commit_url - created_at - - updated_at - x-github-breaking-changes: - - changeset: deprecate_beta_media_type - patch: - properties: - pull_request: - type: object - properties: - merged_at: - nullable: false - diff_url: - nullable: false - html_url: - nullable: false - patch_url: - nullable: false - url: - nullable: false - type: object - version: '2026-03-10' - - changeset: remove_singular_assignee_from_issues_and_pull_requests - patch: - properties: - assignee: null - required: - - 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 - type: object - version: '2026-03-10' - nullable: true - issue-event-label: - title: Issue Event Label - description: Issue Event Label + - performed_via_github_app + review-request-removed-issue-event: + title: Review Request Removed Issue Event + description: Review Request Removed Issue Event type: object properties: - name: + 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 - color: + 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: - - name - - color - team: - title: Team - description: >- - Groups of organization members that gives permissions on specified - repositories. + - 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 - name: + url: type: string - slug: + actor: + $ref: '#/components/schemas/simple-user' + event: type: string - description: + commit_id: type: string nullable: true - privacy: - type: string - notification_setting: + commit_url: type: string - permission: + nullable: true + created_at: type: string - permissions: + performed_via_github_app: + $ref: '#/components/schemas/nullable-integration' + dismissed_review: type: object properties: - pull: - type: boolean - triage: - type: boolean - push: - type: boolean - maintain: - type: boolean - admin: - type: boolean + state: + type: string + review_id: + type: integer + dismissal_message: + nullable: true + type: string + dismissal_commit_id: + type: string 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' + - state + - review_id + - dismissal_message required: + - dismissed_review - id - node_id - url - - members_url - - name - - description - - permission - - html_url - - repositories_url - - slug - - parent - - type - issue-event-dismissed-review: - title: Issue Event Dismissed Review + - 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: - state: - type: string - review_id: + 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: + node_id: 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: + actor: + $ref: '#/components/schemas/simple-user' + event: type: string - format: uri - project_id: - type: integer - column_name: + commit_id: type: string - previous_column_name: + nullable: true + commit_url: 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: + nullable: true + created_at: type: string - to: + performed_via_github_app: + $ref: '#/components/schemas/nullable-integration' + lock_reason: type: string + example: '"off-topic"' + nullable: true required: - - from - - to - labeled-issue-event: - title: Labeled Issue Event - description: Labeled Issue Event + - 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: @@ -6643,18 +8243,30 @@ components: type: string performed_via_github_app: $ref: '#/components/schemas/nullable-integration' - label: + project_card: type: object properties: - name: + id: + type: integer + url: type: string - color: + format: uri + project_id: + type: integer + project_url: + type: string + format: uri + column_name: + type: string + previous_column_name: type: string required: - - name - - color + - id + - url + - project_id + - project_url + - column_name required: - - label - id - node_id - url @@ -6664,9 +8276,9 @@ components: - commit_url - created_at - performed_via_github_app - unlabeled-issue-event: - title: Unlabeled Issue Event - description: Unlabeled Issue Event + moved-column-in-project-issue-event: + title: Moved Column in Project Issue Event + description: Moved Column in Project Issue Event type: object properties: id: @@ -6689,18 +8301,30 @@ components: type: string performed_via_github_app: $ref: '#/components/schemas/nullable-integration' - label: + project_card: type: object properties: - name: + id: + type: integer + url: type: string - color: + format: uri + project_id: + type: integer + project_url: + type: string + format: uri + column_name: + type: string + previous_column_name: type: string required: - - name - - color + - id + - url + - project_id + - project_url + - column_name required: - - label - id - node_id - url @@ -6710,9 +8334,9 @@ components: - commit_url - created_at - performed_via_github_app - assigned-issue-event: - title: Assigned Issue Event - description: Assigned Issue Event + removed-from-project-issue-event: + title: Removed from Project Issue Event + description: Removed from Project Issue Event type: object properties: id: @@ -6734,11 +8358,30 @@ components: created_at: type: string performed_via_github_app: - $ref: '#/components/schemas/integration' - assignee: - $ref: '#/components/schemas/simple-user' - assigner: - $ref: '#/components/schemas/simple-user' + $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 @@ -6749,11 +8392,9 @@ components: - commit_url - created_at - performed_via_github_app - - assignee - - assigner - unassigned-issue-event: - title: Unassigned Issue Event - description: Unassigned Issue Event + converted-note-to-issue-issue-event: + title: Converted Note to Issue Issue Event + description: Converted Note to Issue Issue Event type: object properties: id: @@ -6775,11 +8416,30 @@ components: 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' + $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 @@ -6790,11 +8450,9 @@ components: - commit_url - created_at - performed_via_github_app - - assignee - - assigner - milestoned-issue-event: - title: Milestoned Issue Event - description: Milestoned Issue Event + issue-type-added-issue-event: + title: Issue Type Added Issue Event + description: Issue Type Added Issue Event type: object properties: id: @@ -6817,15 +8475,12 @@ components: type: string performed_via_github_app: $ref: '#/components/schemas/nullable-integration' - milestone: - type: object - properties: - title: - type: string - required: - - title + issue_type: + $ref: '#/components/schemas/issue-type-webhook' + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' required: - - milestone + - issue_type - id - node_id - url @@ -6835,9 +8490,9 @@ components: - commit_url - created_at - performed_via_github_app - demilestoned-issue-event: - title: Demilestoned Issue Event - description: Demilestoned Issue Event + issue-type-removed-issue-event: + title: Issue Type Removed Issue Event + description: Issue Type Removed Issue Event type: object properties: id: @@ -6860,15 +8515,12 @@ components: type: string performed_via_github_app: $ref: '#/components/schemas/nullable-integration' - milestone: - type: object - properties: - title: - type: string - required: - - title + prev_issue_type: + $ref: '#/components/schemas/issue-type-webhook' + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' required: - - milestone + - prev_issue_type - id - node_id - url @@ -6878,9 +8530,9 @@ components: - commit_url - created_at - performed_via_github_app - renamed-issue-event: - title: Renamed Issue Event - description: Renamed Issue Event + issue-type-changed-issue-event: + title: Issue Type Changed Issue Event + description: Issue Type Changed Issue Event type: object properties: id: @@ -6903,18 +8555,15 @@ components: type: string performed_via_github_app: $ref: '#/components/schemas/nullable-integration' - rename: - type: object - properties: - from: - type: string - to: - type: string - required: - - from - - to + issue_type: + $ref: '#/components/schemas/issue-type-webhook' + prev_issue_type: + $ref: '#/components/schemas/issue-type-webhook' + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' required: - - rename + - issue_type + - prev_issue_type - id - node_id - url @@ -6924,9 +8573,9 @@ components: - commit_url - created_at - performed_via_github_app - review-requested-issue-event: - title: Review Requested Issue Event - description: Review Requested Issue Event + sub-issue-added-issue-event: + title: Sub-issue Added Issue Event + description: Sub-issue Added Issue Event type: object properties: id: @@ -6949,14 +8598,10 @@ components: 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' + sub_issue: + $ref: '#/components/schemas/nullable-issue-reference' required: - - review_requester + - sub_issue - id - node_id - url @@ -6966,9 +8611,9 @@ components: - 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 + sub-issue-removed-issue-event: + title: Sub-issue Removed Issue Event + description: Sub-issue Removed Issue Event type: object properties: id: @@ -6991,14 +8636,10 @@ components: 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' + sub_issue: + $ref: '#/components/schemas/nullable-issue-reference' required: - - review_requester + - sub_issue - id - node_id - url @@ -7008,9 +8649,9 @@ components: - commit_url - created_at - performed_via_github_app - review-dismissed-issue-event: - title: Review Dismissed Issue Event - description: Review Dismissed Issue Event + parent-issue-added-issue-event: + title: Parent-issue Added Issue Event + description: Parent-issue Added Issue Event type: object properties: id: @@ -7033,24 +8674,10 @@ components: 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 + parent_issue: + $ref: '#/components/schemas/nullable-issue-reference' required: - - dismissed_review + - parent_issue - id - node_id - url @@ -7060,9 +8687,9 @@ components: - commit_url - created_at - performed_via_github_app - locked-issue-event: - title: Locked Issue Event - description: Locked Issue Event + parent-issue-removed-issue-event: + title: Parent-issue Removed Issue Event + description: Parent-issue Removed Issue Event type: object properties: id: @@ -7085,12 +8712,10 @@ components: type: string performed_via_github_app: $ref: '#/components/schemas/nullable-integration' - lock_reason: - type: string - example: '"off-topic"' - nullable: true + parent_issue: + $ref: '#/components/schemas/nullable-issue-reference' required: - - lock_reason + - parent_issue - id - node_id - url @@ -7100,9 +8725,9 @@ components: - 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 + blocked-by-added-issue-event: + title: Blocked-by Added Issue Event + description: Blocked-by Added Issue Event type: object properties: id: @@ -7125,30 +8750,10 @@ components: 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 + blocked_by: + $ref: '#/components/schemas/nullable-issue-reference' required: + - blocked_by - id - node_id - url @@ -7158,9 +8763,9 @@ components: - 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 + blocked-by-removed-issue-event: + title: Blocked-by Removed Issue Event + description: Blocked-by Removed Issue Event type: object properties: id: @@ -7183,30 +8788,10 @@ components: 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 + blocked_by: + $ref: '#/components/schemas/nullable-issue-reference' required: + - blocked_by - id - node_id - url @@ -7216,9 +8801,9 @@ components: - 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 + blocking-added-issue-event: + title: Blocking Added Issue Event + description: Blocking Added Issue Event type: object properties: id: @@ -7241,30 +8826,10 @@ components: 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 + blocking: + $ref: '#/components/schemas/nullable-issue-reference' required: + - blocking - id - node_id - url @@ -7274,9 +8839,9 @@ components: - 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 + blocking-removed-issue-event: + title: Blocking Removed Issue Event + description: Blocking Removed Issue Event type: object properties: id: @@ -7289,40 +8854,20 @@ components: $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 + 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' + blocking: + $ref: '#/components/schemas/nullable-issue-reference' required: + - blocking - id - node_id - url @@ -7400,6 +8945,8 @@ components: $ref: '#/components/schemas/reaction-rollup' pin: $ref: '#/components/schemas/nullable-pinned-issue-comment' + minimized: + $ref: '#/components/schemas/nullable-issue-comment-minimized' required: - event - actor @@ -7705,6 +9252,8 @@ components: $ref: '#/components/schemas/nullable-integration' assignee: $ref: '#/components/schemas/simple-user' + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' required: - id - node_id @@ -7782,6 +9331,8 @@ components: state_reason: type: string nullable: true + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' required: - id - node_id @@ -7965,6 +9516,307 @@ components: - slug - type nullable: true + 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 integration: title: GitHub app description: >- @@ -8600,23 +10452,24 @@ components: required: true schema: type: integer - milestone-number: - name: milestone_number - description: The number that identifies the milestone. + issue-field-id: + name: issue_field_id + description: The unique identifier of the issue field. in: path required: true schema: type: integer - repository-id: - name: repository_id - description: The unique identifier of the repository. - in: path - required: true + issue-timeline-exclude: + name: exclude + in: query + description: >- + A comma-separated list of timeline event names to exclude from the + response. schema: - type: integer - issue-field-id: - name: issue_field_id - description: The unique identifier of the issue field. + type: string + milestone-number: + name: milestone_number + description: The number that identifies the milestone. in: path required: true schema: @@ -9194,6 +11047,12 @@ components: site_admin: false author_association: COLLABORATOR state_reason: completed + x-github-breaking-changes: + - changeset: remove_singular_assignee_from_issues_and_pull_requests + patch: + - op: remove + path: /value/assignee + version: '2026-03-10' issue-comment-items: value: - id: 1 @@ -9224,6 +11083,7 @@ components: updated_at: '2011-04-14T16:00:49Z' issue_url: https://api.github.com/repos/octocat/Hello-World/issues/1347 author_association: COLLABORATOR + minimized: null issue-comment: value: id: 1 @@ -9255,6 +11115,7 @@ components: issue_url: https://api.github.com/repos/octocat/Hello-World/issues/1347 author_association: COLLABORATOR pin: null + minimized: null issue-comment-pinned: value: id: 1 @@ -9857,6 +11718,12 @@ components: site_admin: false author_association: COLLABORATOR state_reason: completed + x-github-breaking-changes: + - changeset: remove_singular_assignee_from_issues_and_pull_requests + patch: + - op: remove + path: /value/assignee + version: '2026-03-10' issue-event-for-issue-items: value: - id: 1 @@ -9893,10 +11760,12 @@ components: issue-field-value-items: value: - issue_field_id: 1 + issue_field_name: DRI node_id: IFT_GDKND data_type: text value: DRI - issue_field_id: 2 + issue_field_name: Priority node_id: IFSS_SADMS data_type: single_select value: 1 @@ -9905,13 +11774,27 @@ components: name: High color: red - issue_field_id: 3 + issue_field_name: Points node_id: IFN_POINTS data_type: number value: 42 - issue_field_id: 4 + issue_field_name: Due Date node_id: IFD_DUEDATE data_type: date value: '2025-12-25' + - issue_field_id: 5 + issue_field_name: Labels + node_id: IFMS_LABELS + data_type: multi_select + value: Frontend,Backend + multi_select_options: + - id: 1 + name: Frontend + color: blue + - id: 2 + name: Backend + color: green label-items: value: - id: 208045946 @@ -9937,6 +11820,53 @@ components: description: Something isn't working color: f29513 default: true + issue-suggestions: + value: + - id: 12 + issue_id: 4567 + action: add_label + state: pending + target_id: 208045946 + target_value: null + rationale: >- + This looks like a bug report based on the stack trace in the + description. + confidence: HIGH + actor_id: 41898282 + issue_event_id: null + resolved_by: null + created_at: '2026-06-01T14:20:00Z' + updated_at: '2026-06-01T14:20:00Z' + - id: 13 + issue_id: 4567 + action: set_type + state: pending + target_id: 3 + target_value: Bug + rationale: The report describes unexpected behaviour with reproduction steps. + confidence: MEDIUM + actor_id: 41898282 + issue_event_id: null + resolved_by: null + created_at: '2026-06-01T14:21:00Z' + updated_at: '2026-06-01T14:21:00Z' + issue-suggestion: + value: + id: 12 + issue_id: 4567 + action: add_label + state: approved + target_id: 208045946 + target_value: null + rationale: >- + This looks like a bug report based on the stack trace in the + description. + confidence: HIGH + actor_id: 41898282 + issue_event_id: 6430295168 + resolved_by: 583231 + created_at: '2026-06-01T14:20:00Z' + updated_at: '2026-06-01T15:05:00Z' timeline-issue-events: value: - id: 6430295168 @@ -10534,7 +12464,7 @@ components: algorithm: naive operation: $ref: >- - #/paths/~1repositories~1{repository_id}~1issues~1{issue_number}~1issue-field-values/post + #/paths/~1repos~1{owner}~1{repo}~1issues~1{issue_number}~1issue-field-values/post response: mediaType: application/json openAPIDocKey: '200' @@ -10544,14 +12474,14 @@ components: algorithm: naive operation: $ref: >- - #/paths/~1repositories~1{repository_id}~1issues~1{issue_number}~1issue-field-values/put + #/paths/~1repos~1{owner}~1{repo}~1issues~1{issue_number}~1issue-field-values/put response: mediaType: application/json openAPIDocKey: '200' delete_issue_field_value: operation: $ref: >- - #/paths/~1repositories~1{repository_id}~1issues~1{issue_number}~1issue-field-values~1{issue_field_id}/delete + #/paths/~1repos~1{owner}~1{repo}~1issues~1{issue_number}~1issue-field-values~1{issue_field_id}/delete response: mediaType: application/json openAPIDocKey: '204' @@ -10750,6 +12680,40 @@ components: - $ref: >- #/components/x-stackQL-resources/issue_sub_issues/methods/remove_sub_issue replace: [] + issue_suggestions: + id: github.issues.issue_suggestions + name: issue_suggestions + title: Issue Suggestions + methods: + list_suggestions: + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1issues~1{issue_number}~1suggestions/get + response: + mediaType: application/json + openAPIDocKey: '200' + approve_suggestion: + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1issues~1{issue_number}~1suggestions~1{suggestion_id}~1approve/post + response: + mediaType: application/json + openAPIDocKey: '200' + dismiss_suggestion: + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1issues~1{issue_number}~1suggestions~1{suggestion_id}~1dismiss/post + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/issue_suggestions/methods/list_suggestions + insert: [] + update: [] + delete: [] + replace: [] timeline: id: github.issues.timeline name: timeline @@ -10850,3 +12814,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/licenses.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/licenses.yaml index be6d6d8..4042955 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/licenses.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/licenses.yaml @@ -689,3 +689,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/markdown.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/markdown.yaml index cc528e4..b24355d 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/markdown.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/markdown.yaml @@ -196,3 +196,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/meta.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/meta.yaml index 760bfa5..e4221d4 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/meta.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/meta.yaml @@ -39,7 +39,8 @@ paths: addresses](https://docs.github.com/articles/about-github-s-ip-addresses/)." - The API's response also includes a list of GitHub's domain names. + The API's response also includes a list of GitHub's domain names, and + the public keys used by GitHub to sign commits made through the web UI. The values shown in the documentation's response are example values. You @@ -127,9 +128,10 @@ paths: schema: type: array items: - type: string - format: date - example: '2021-01-01' + type: object + properties: + meta/get_all_version: + type: string examples: default: value: @@ -425,6 +427,12 @@ components: type: string example: - 192.0.2.1 + commit_signing_keys: + type: array + items: + type: string + example: + - ABCDEFGHIJKLMNOPQRSTUVWXYZ domains: type: object properties: @@ -452,6 +460,12 @@ components: type: string example: - example.com + storage: + type: array + items: + type: string + example: + - example.com actions: type: array items: @@ -599,6 +613,8 @@ components: - 192.0.2.1 copilot: - 192.0.2.1 + commit_signing_keys: + - ABCDEFGHIJKLMNOPQRSTUVWXYZ domains: website: - '*.example.com' @@ -722,3 +738,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/migrations.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/migrations.yaml index 40c449d..e0cd652 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/migrations.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/migrations.yaml @@ -581,7 +581,7 @@ paths: default: value: vcs: subversion - vcs_url: http://svn.mycompany.com/svn/myproject + vcs_url: http://svn.example.com/svn/myproject vcs_username: octocat vcs_password: secret responses: @@ -4162,7 +4162,7 @@ components: value: vcs: subversion use_lfs: true - vcs_url: http://svn.mycompany.com/svn/myproject + vcs_url: http://svn.example.com/svn/myproject status: complete status_text: Done has_large_files: true @@ -4177,7 +4177,7 @@ components: value: vcs: subversion use_lfs: true - vcs_url: http://svn.mycompany.com/svn/myproject + vcs_url: http://svn.example.com/svn/myproject status: importing status_text: Importing... has_large_files: false @@ -4194,7 +4194,7 @@ components: value: vcs: subversion use_lfs: true - vcs_url: http://svn.mycompany.com/svn/myproject + vcs_url: http://svn.example.com/svn/myproject status: detecting url: https://api.github.com/repos/octocat/socm/import html_url: https://import.github.com/octocat/socm/import @@ -4205,7 +4205,7 @@ components: value: vcs: tfvc use_lfs: true - vcs_url: http://tfs.mycompany.com/tfs/myproject + vcs_url: http://tfs.example.com/tfs/myproject tfvc_project: project1 status: importing status_text: Importing... @@ -4223,7 +4223,7 @@ components: value: vcs: subversion use_lfs: true - vcs_url: http://svn.mycompany.com/svn/myproject + vcs_url: http://svn.example.com/svn/myproject status: importing status_text: Importing... has_large_files: false @@ -5014,3 +5014,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/oidc.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/oidc.yaml index 65172e9..f2ea417 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/oidc.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/oidc.yaml @@ -339,6 +339,13 @@ paths: type: array items: type: string + use_immutable_subject: + description: >- + Whether to opt in to the immutable OIDC subject claim format + for the organization. When `true`, new OIDC tokens will use + a stable, repository-ID-based `sub` claim instead of the + name-based format. + type: boolean examples: default: $ref: '#/components/examples/oidc-custom-sub' @@ -406,6 +413,12 @@ components: type: array items: type: string + use_immutable_subject: + description: >- + Whether to opt in to the immutable OIDC subject claim format for the + organization. When `true`, new OIDC tokens will use a stable, + repository-ID-based `sub` claim instead of the name-based format. + type: boolean required: - include_claim_keys empty-object: @@ -580,3 +593,11 @@ components: #/components/x-stackQL-resources/oidc/methods/update_oidc_custom_sub_template_for_org servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/orgs.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/orgs.yaml index 549b197..49a736c 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/orgs.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/orgs.yaml @@ -7,16 +7,11 @@ paths: /organizations: get: summary: List organizations - description: >- + description: |- 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/guides/using-pagination-in-the-rest-api#using-link-headers) - to get the URL for the next page of organizations. + > 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 @@ -54,28 +49,16 @@ paths: /orgs/{org}: get: summary: Get an organization - description: >- + description: |- Gets information about an organization. + 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/). - 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/). - - - 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 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. + To see information about an organization's GitHub plan, GitHub Apps need the `Organization plan` permission. tags: - orgs operationId: orgs/get @@ -104,40 +87,18 @@ paths: x-stackQL-resource: orgs patch: summary: Update an organization - description: >- + description: |- > [!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). - + > **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/). - + > **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/). Updates the organization's profile and member privileges. + The authenticated user must be an organization owner to use this endpoint. - 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. + OAuth app tokens and personal access tokens (classic) need the `admin:org` or `repo` scope to use this endpoint. tags: - orgs operationId: orgs/update @@ -173,22 +134,16 @@ paths: description: The shorthand name of the company. description: type: string - description: >- - The description of the company. The maximum size is 160 - characters. + description: The description of the company. The maximum size is 160 characters. has_organization_projects: type: boolean description: Whether an organization can use organization projects. has_repository_projects: type: boolean - description: >- - 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. + description: Default permission level members have for organization repositories. enum: - read - write @@ -197,246 +152,124 @@ paths: default: read members_can_create_repositories: type: boolean - 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. + 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: >- - 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. + 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: >- - 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. + 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: >- - 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. + 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. `private` is only available to - repositories that are part of an organization on GitHub - Enterprise Cloud. - - **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. + 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. + **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 - none members_can_create_pages: type: boolean - description: >- - Whether 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: >- - Whether 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: >- - Whether 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. + 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. + 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. - - - Whether GitHub Advanced Security is automatically enabled - for new repositories and repositories transferred to this - organization. - + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. - To 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)." + Whether GitHub Advanced Security is automatically enabled for new repositories and repositories transferred to this organization. + To 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)." - You can check which security and analysis features are - currently enabled by using a `GET /orgs/{org}` request. + You 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. - - - Whether Dependabot alerts are automatically enabled for new - repositories and repositories transferred to this - organization. - + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. - To 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)." + Whether Dependabot alerts are automatically enabled for new repositories and repositories transferred to this organization. + To 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)." - You can check which security and analysis features are - currently enabled by using a `GET /orgs/{org}` request. + You 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. - - - Whether Dependabot security updates are automatically - enabled for new repositories and repositories transferred to - this organization. - + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. - To 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)." + Whether Dependabot security updates are automatically enabled for new repositories and repositories transferred to this organization. + To 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)." - You can check which security and analysis features are - currently enabled by using a `GET /orgs/{org}` request. + You 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. - - - Whether dependency graph is automatically enabled for new - repositories and repositories transferred to this - organization. - + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. - To 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)." + Whether dependency graph is automatically enabled for new repositories and repositories transferred to this organization. + To 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)." - You can check which security and analysis features are - currently enabled by using a `GET /orgs/{org}` request. + You 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. - - - Whether secret scanning is automatically enabled for new - repositories and repositories transferred to this - organization. - + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. - To 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)." + Whether secret scanning is automatically enabled for new repositories and repositories transferred to this organization. + To 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)." - You can check which security and analysis features are - currently enabled by using a `GET /orgs/{org}` request. + You 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. - - - Whether secret scanning push protection is automatically - enabled for new repositories and repositories transferred to - this organization. - + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. - To 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)." + Whether secret scanning push protection is automatically enabled for new repositories and repositories transferred to this organization. + To 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)." - You can check which security and analysis features are - currently enabled by using a `GET /orgs/{org}` request. + You 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. + 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. + 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. + description: Controls whether or not deploy keys may be added and used for repositories in the organization. examples: default: value: @@ -524,16 +357,12 @@ paths: x-stackQL-resource: orgs delete: summary: Delete an organization - description: >- + description: |- 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: - + 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 operationId: orgs/delete @@ -586,8 +415,7 @@ paths: operationId: orgs/create-artifact-deployment-record externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/artifact-metadata#create-an-artifact-deployment-record + url: https://docs.github.com/rest/orgs/artifact-metadata#create-an-artifact-deployment-record parameters: - $ref: '#/components/parameters/org' requestBody: @@ -618,9 +446,7 @@ paths: example: 1.2.3 status: type: string - description: >- - The status of the artifact. Can be either deployed or - decommissioned. + description: The status of the artifact. Can be either deployed or decommissioned. enum: - deployed - decommissioned @@ -639,13 +465,9 @@ paths: maxLength: 128 deployment_name: type: string - description: > - The unique identifier for the deployment represented by the - new record. To accommodate differing - - containers and namespaces within a cluster, the following - format is recommended: - + description: | + The unique identifier for the deployment represented by the new record. To accommodate differing + containers and namespaces within a cluster, the following format is recommended: {namespaceName}-{deploymentName}-{containerName}. maxLength: 256 tags: @@ -668,22 +490,13 @@ paths: - sensitive-data github_repository: type: string - description: >- - The name of the GitHub repository associated with the - artifact. This should be used - - when there are no provenance attestations available for the - artifact. The repository - - must belong to the organization specified in the path - parameter. - - - If a provenance attestation is available for the artifact, - the API will use + description: |- + The name of the GitHub repository associated with the artifact. This should be used + when there are no provenance attestations available for the artifact. The repository + must belong to the organization specified in the path parameter. - the repository information from the attestation instead of - this parameter. + If a provenance attestation is available for the artifact, the API will use + the repository information from the attestation instead of this parameter. minLength: 1 maxLength: 100 pattern: ^[A-Za-z0-9.\-_]+$ @@ -691,9 +504,8 @@ paths: return_records: type: boolean default: true - description: > - If true, the endpoint will return the created or updated - record in the response body. + description: | + If true, the endpoint will return the created or updated record in the response body. required: - name - digest @@ -704,8 +516,7 @@ paths: default: value: name: awesome-image - digest: >- - sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + digest: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 status: deployed logical_environment: prod physical_environment: pacific-east @@ -746,23 +557,21 @@ paths: /orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}: post: summary: Set cluster deployment records - description: >- + description: |- 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 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. + Note: Artifacts are uniquely identified by the combination of their repository and digest fields. If two entries in the deployments + array resolve to the same repository and have identical digest fields but differing name and version fields, the endpoint will use + the artifact name and version from the record processed first, since a single artifact (identified by repository and digest) can + only have one name and version. 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 + url: https://docs.github.com/rest/orgs/artifact-metadata#set-cluster-deployment-records parameters: - $ref: '#/components/parameters/org' - name: cluster @@ -799,34 +608,18 @@ paths: properties: name: type: string - description: > - The name of the artifact. Note that if multiple - deployments have identical 'digest' parameter values, - - the name parameter must also be identical across all - entries. + description: The name of the artifact. 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, - - the name and version parameters must also be identical - across all entries. + 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. Note that if multiple - deployments have identical 'digest' parameter values, - - the version parameter must also be identical across - all entries. + description: The artifact version. maxLength: 100 x-multi-segment: true example: 1.2.3 @@ -839,37 +632,22 @@ paths: - decommissioned deployment_name: type: string - description: > - The unique identifier for the deployment represented - by the new record. To accommodate differing - - containers and namespaces within a record set, the - following format is recommended: - + description: | + The unique identifier for the deployment represented by the new record. To accommodate differing + containers and namespaces within a record set, the following format is recommended: {namespaceName}-{deploymentName}-{containerName}. - - The deployment_name must be unique across all entries - in the deployments array. + The deployment_name must be unique across all entries in the deployments array. minLength: 1 maxLength: 256 github_repository: type: string - description: >- - The name of the GitHub repository associated with the - artifact. This should be used - - when there are no provenance attestations available - for the artifact. The repository - - must belong to the organization specified in the path - parameter. - + description: |- + The name of the GitHub repository associated with the artifact. This should be used + when there are no provenance attestations available for the artifact. The repository + must belong to the organization specified in the path parameter. - If a provenance attestation is available for the - artifact, the API will use - - the repository information from the attestation - instead of this parameter. + If a provenance attestation is available for the artifact, the API will use + the repository information from the attestation instead of this parameter. maxLength: 100 pattern: ^[A-Za-z0-9.\-_]+$ example: my-github-repo @@ -880,9 +658,7 @@ paths: type: string runtime_risks: type: array - description: >- - A list of runtime risks associated with the - deployment. + description: A list of runtime risks associated with the deployment. maxItems: 4 uniqueItems: true items: @@ -896,12 +672,19 @@ paths: - name - deployment_name - digest + partial_success: + type: boolean + default: false + description: | + When enabled, deployments associated with repositories the actor can write to are processed + while deployments associated with repositories that cannot be resolved or written to by the actor + are skipped and reported in the `errors` array. When false (the default), the endpoint returns + an error if any targeted repository cannot be resolved, the actor lacks write access, or no matching attestation can be found. return_records: type: boolean default: true - description: > - If true, the endpoint will return the set records in the - response body + description: | + If true, the endpoint will return the set records in the response body required: - logical_environment - deployments @@ -912,13 +695,14 @@ paths: physical_environment: pacific-east deployments: - name: awesome-image - digest: >- - sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + digest: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 version: 2.1.0 status: deployed deployment_name: deployment-pod tags: - runtime-risk: sensitive-data + owning-team: platform + runtime_risks: + - sensitive-data responses: '200': description: | @@ -940,6 +724,103 @@ paths: examples: default: $ref: '#/components/examples/artifact-deployment-record-list' + '207': + description: | + This response format is only returned when `partial_success` is set to true in the request body. + Successfully processed deployments are included in the `deployment_records` field. Records that could + not be processed and were skipped because of unresolvable repositories, missing actor permissions, or lack of a matching attestation are + included in the `errors` field. + content: + application/json: + schema: + type: object + properties: + total_count: + description: The number of deployment records created or updated. + type: integer + deployment_records: + type: array + items: + $ref: '#/components/schemas/artifact-deployment-record' + errors: + type: array + description: A list of errors for deployments that could not be processed. + items: + type: object + properties: + cause: + type: string + description: The reason the deployment failed processing. + enum: + - unauthorized + - not_found + deployment: + type: object + description: The deployment payload that could not be processed. + properties: + name: + type: string + description: The name of the artifact. + digest: + type: string + description: The digest of the artifact. + deployment_name: + type: string + description: The name of the deployment that failed processing. + version: + type: string + nullable: true + description: The version of the deployment. + status: + type: string + description: The deployment status. + github_repository: + type: string + nullable: true + description: The repository associated with the deployment. + tags: + type: object + additionalProperties: + type: string + description: Custom metadata tags for the deployment. + runtime_risks: + type: array + items: + type: string + description: Runtime risk classifications for the deployment. + required: + - total_count + examples: + partial_success: + value: + total_count: 1 + deployment_records: + - id: 42 + digest: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + logical_environment: prod + physical_environment: us-east-1a + cluster: production-cluster + deployment_name: deployment-pod + tags: + owning-team: platform + runtime_risks: + - sensitive-data + created_at: '2024-01-01T12:00:00Z' + updated_at: '2024-01-01T12:30:00Z' + attestation_id: 777 + errors: + - cause: unauthorized + deployment: + name: my-image + digest: sha256:5aa19f9a13f67a644f6d8528e2eb5cf64431e236df5dbbd44ff9b9e3f6fc6cb2 + deployment_name: restricted-deployment + version: 2.1.1 + status: deployed + github_repository: private-repo + tags: + owning-team: platform + runtime_risks: + - sensitive-data '403': description: Forbidden content: @@ -950,40 +831,55 @@ paths: insufficient_repo_permissions: value: message: - cause: >- - artifact metadata write permission required on one or - more repositories + cause: artifact metadata write permission required on one or more repositories repositories: - 123 - 345 '404': - $ref: '#/components/responses/not_found' + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + examples: + not_found: + value: + message: + cause: One or more repositories do not exist + repositories: + - repoA + - repoB x-github: githubCloudOnly: false enabledForGitHubApps: true category: orgs subcategory: artifact-metadata x-stackQL-resource: artifact_metadata - /orgs/{org}/artifacts/metadata/storage-record: + /orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs: post: - summary: Create artifact metadata storage record - description: >- - 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. + summary: Create a cluster deployment records job + description: |- + Create a background job to set deployment records for a given cluster. + Performs validation and permission checks synchronously, returning rejected + deployments immediately, then enqueues a background job for the actual + deployment updates. Use the companion GET endpoint to poll for job status. tags: - orgs - operationId: orgs/create-artifact-storage-record + operationId: orgs/create-cluster-deployment-records-job externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/artifact-metadata#create-artifact-metadata-storage-record + url: https://docs.github.com/rest/orgs/artifact-metadata#create-a-cluster-deployment-records-job parameters: - $ref: '#/components/parameters/org' + - name: cluster + in: path + description: The cluster name. + required: true + schema: + type: string + minLength: 1 + maxLength: 128 + pattern: ^[a-zA-Z0-9._-]+$ requestBody: required: true content: @@ -991,85 +887,328 @@ paths: schema: type: object properties: - name: - type: string - description: The name of the artifact. - example: libfoo - minLength: 1 - maxLength: 256 - 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: + logical_environment: type: string - format: uri - pattern: ^https:// - description: The base URL of the artifact registry. - example: https://reg.example.com/artifactory/ + description: The stage of the deployment. 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: + maxLength: 128 + physical_environment: type: string - description: >- - The name of the GitHub repository associated with the - artifact. This should be used - - when there are no provenance attestations available for the - artifact. The repository - - must belong to the organization specified in the path - parameter. - - - If a provenance attestation is available for the artifact, - the API will use - - the repository information from the attestation instead of - this parameter. - minLength: 1 - maxLength: 100 - pattern: ^[A-Za-z0-9.\-_]+$ - example: my-github-repo - return_records: - type: boolean - default: true - description: > - If true, the endpoint will return the created record in the - response body. + description: The physical region of the deployment. + maxLength: 128 + deployments: + type: array + description: The list of deployments to record. + maxItems: 5000 + items: + type: object + properties: + name: + type: string + description: The name of the artifact. + minLength: 1 + maxLength: 256 + 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. + maxLength: 100 + x-multi-segment: true + example: 1.2.3 + status: + type: string + description: The deployment status of the artifact. + default: deployed + enum: + - deployed + - decommissioned + deployment_name: + type: string + description: | + The unique identifier for the deployment represented by the new record. + minLength: 1 + maxLength: 256 + github_repository: + type: string + description: The name of the GitHub repository associated with the artifact. + 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: + owning-team: platform + runtime_risks: + - sensitive-data + responses: + '202': + description: | + Job created successfully. Authorized deployments will be processed in the background. + content: + application/json: + schema: + type: object + properties: + job_id: + description: The ID of the created job. + type: integer + errors: + description: Deployments that were rejected during authorization. + type: array + items: + type: string + description: (opaque JSON object) + required: + - job_id + examples: + default: + value: + job_id: 123 + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + '404': + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + '409': + description: A job is already in progress for this cluster. + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata + x-stackQL-resource: artifact_metadata + /orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs/{job_id}: + get: + summary: Get cluster deployment records job status + description: Get the status and results of a previously created cluster deployment records job. + tags: + - orgs + operationId: orgs/get-cluster-deployment-records-job + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#get-cluster-deployment-records-job-status + parameters: + - $ref: '#/components/parameters/org' + - name: cluster + in: path + description: The cluster name. + required: true + schema: + type: string + minLength: 1 + maxLength: 128 + pattern: ^[a-zA-Z0-9._-]+$ + - name: job_id + in: path + description: The ID of the job. + required: true + schema: + type: integer + responses: + '200': + description: | + Job status retrieved successfully. + content: + application/json: + schema: + type: object + properties: + job_id: + description: The ID of the job. + type: integer + status: + description: The current status of the job. + type: string + enum: + - pending + - processing + - completed + - failed + started_at: + description: When the job started processing (only present when processing, completed, or failed). + type: string + format: date-time + total_count: + description: The number of records successfully mutated (only present when completed). + type: integer + errors: + description: Processing errors (only present when completed or failed). + type: array + items: + type: string + description: (opaque JSON object) + required: + - job_id + - status + examples: + default: + value: + job_id: 123 + status: completed + started_at: '2026-06-10T12:00:00Z' + total_count: 5 + '404': + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata + x-stackQL-resource: artifact_metadata + /orgs/{org}/artifacts/metadata/storage-record: + post: + summary: Create artifact metadata storage record + description: |- + 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. + tags: + - orgs + operationId: orgs/create-artifact-storage-record + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#create-artifact-metadata-storage-record + parameters: + - $ref: '#/components/parameters/org' + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the artifact. + example: libfoo + minLength: 1 + maxLength: 256 + 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 + maxLength: 152 + path: + type: string + format: uri + description: The path of the artifact. + example: com/github/bar/libfoo-1.2.3 + maxLength: 512 + registry_url: + type: string + format: uri + pattern: ^https:// + description: The base URL of the artifact registry. + example: https://reg.example.com/artifactory/ + minLength: 1 + maxLength: 256 + repository: + type: string + description: The repository name within the registry. + example: bar + maxLength: 128 + 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 name of the GitHub repository associated with the artifact. This should be used + when there are no provenance attestations available for the artifact. The repository + must belong to the organization specified in the path parameter. + + If a provenance attestation is available for the artifact, the API will use + the repository information from the attestation instead of this parameter. + minLength: 1 + maxLength: 100 + pattern: ^[A-Za-z0-9.\-_]+$ + example: my-github-repo + return_records: + type: boolean + default: true + description: | + If true, the endpoint will return the created record in the response body. required: - name - digest @@ -1079,8 +1218,7 @@ paths: value: name: libfoo version: 1.2.3 - digest: >- - sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + digest: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 artifact_url: https://reg.example.com/artifactory/bar/libfoo-1.2.3 registry_url: https://reg.example.com/artifactory/ repository: bar @@ -1129,8 +1267,7 @@ paths: total_count: 1 storage_records: - name: libfoo - digest: >- - sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + digest: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 artifact_url: https://reg.example.com/artifactory/bar/libfoo-1.2.3 registry_url: https://reg.example.com/artifactory/ repository: bar @@ -1150,16 +1287,13 @@ paths: /orgs/{org}/artifacts/{subject_digest}/metadata/deployment-records: get: summary: List artifact deployment records - description: >- - List deployment records for an artifact metadata associated with an - organization. + description: List deployment records for an artifact metadata associated with an organization. tags: - orgs operationId: orgs/list-artifact-deployment-records externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/artifact-metadata#list-artifact-deployment-records + url: https://docs.github.com/rest/orgs/artifact-metadata#list-artifact-deployment-records parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/subject-digest' @@ -1172,9 +1306,7 @@ paths: type: object properties: total_count: - description: >- - The number of deployment records for this digest and - organization + description: The number of deployment records for this digest and organization example: 3 type: integer deployment_records: @@ -1193,33 +1325,23 @@ paths: /orgs/{org}/artifacts/{subject_digest}/metadata/storage-records: get: 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. - + description: |- + List artifact storage records with a given subject digest for 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. + Results are filtered by the authenticated user's permissions; records for repositories the user cannot read are omitted. Fine-grained access tokens require the `artifact-metadata:read` permission. tags: - orgs operationId: orgs/list-artifact-storage-records externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/artifact-metadata#list-artifact-storage-records + url: https://docs.github.com/rest/orgs/artifact-metadata#list-artifact-storage-records parameters: - $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`. + 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 + example: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 schema: type: string minLength: 71 @@ -1235,9 +1357,7 @@ paths: type: object properties: total_count: - description: >- - The number of storage records for this digest and - organization + description: The number of storage records for this digest and organization example: 3 type: integer storage_records: @@ -1268,8 +1388,7 @@ paths: value: storage_records: - name: libfoo-1.2.3 - digest: >- - sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + digest: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 artifact_url: https://reg.example.com/artifactory/bar/libfoo-1.2.3 registry_url: https://reg.example.com/artifactory/ repository: bar @@ -1285,35 +1404,18 @@ paths: /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. - - - 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). + description: |- + 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). tags: - orgs operationId: orgs/list-attestations-bulk externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/attestations#list-attestations-by-bulk-subject-digests + url: https://docs.github.com/rest/orgs/attestations#list-attestations-by-bulk-subject-digests parameters: - $ref: '#/components/parameters/per-page' - $ref: '#/components/parameters/pagination-before' @@ -1335,13 +1437,9 @@ paths: maxItems: 1024 predicate_type: type: string - description: >- - Optional filter for fetching attestations with a given - predicate type. - - This option accepts `provenance`, `sbom`, `release`, or - freeform text - + description: |- + Optional filter for fetching attestations with a given predicate type. + This option accepts `provenance`, `sbom`, `release`, or freeform text for custom predicate types. required: - subject_digests @@ -1349,8 +1447,7 @@ paths: default: $ref: '#/components/examples/bulk-subject-digest-body' withPredicateType: - $ref: >- - #/components/examples/bulk-subject-digest-body-with-predicate-type + $ref: '#/components/examples/bulk-subject-digest-body-with-predicate-type' responses: '200': description: Response @@ -1431,16 +1528,13 @@ paths: /orgs/{org}/attestations/delete-request: post: summary: Delete attestations in bulk - description: >- - Delete artifact attestations in bulk by either subject digests or unique - ID. + 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 + url: https://docs.github.com/rest/orgs/attestations#delete-attestations-in-bulk parameters: - $ref: '#/components/parameters/org' requestBody: @@ -1449,26 +1543,20 @@ paths: application/json: schema: type: object - description: >- - The request body must include either `subject_digests` or - `attestation_ids`, but not both. + description: The request body must include either `subject_digests` or `attestation_ids`, but not both. properties: subject_digests: type: array items: type: string - description: >- - List of subject digests associated with the artifact - attestations to delete. + description: List of subject digests associated with the artifact attestations to delete. minItems: 1 maxItems: 1024 attestation_ids: type: array items: type: integer - description: >- - List of unique IDs associated with the artifact attestations - to delete. + description: List of unique IDs associated with the artifact attestations to delete. minItems: 1 maxItems: 1024 required: @@ -1507,8 +1595,7 @@ paths: operationId: orgs/delete-attestations-by-subject-digest externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/attestations#delete-attestations-by-subject-digest + url: https://docs.github.com/rest/orgs/attestations#delete-attestations-by-subject-digest parameters: - $ref: '#/components/parameters/org' - name: subject_digest @@ -1534,31 +1621,24 @@ paths: /orgs/{org}/attestations/repositories: get: summary: List attestation repositories - description: >- - List repositories owned by the provided organization that have created - at least one attested artifact - + description: |- + 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 tags: - orgs operationId: orgs/list-attestation-repositories externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/attestations#list-attestation-repositories + url: https://docs.github.com/rest/orgs/attestations#list-attestation-repositories parameters: - $ref: '#/components/parameters/per-page' - $ref: '#/components/parameters/pagination-before' - $ref: '#/components/parameters/pagination-after' - $ref: '#/components/parameters/org' - name: predicate_type - description: >- - Optional filter for fetching attestations with a given predicate - type. - - This option accepts `provenance`, `sbom`, `release`, or freeform - text - + description: |- + Optional filter for fetching attestations with a given predicate type. + This option accepts `provenance`, `sbom`, `release`, or freeform text for custom predicate types. in: query required: false @@ -1590,16 +1670,13 @@ paths: /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. + description: Delete an artifact attestation by unique ID that is associated with a repository owned by an org. tags: - orgs operationId: orgs/delete-attestations-by-id externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/attestations#delete-attestations-by-id + url: https://docs.github.com/rest/orgs/attestations#delete-attestations-by-id parameters: - $ref: '#/components/parameters/org' - name: attestation_id @@ -1626,28 +1703,12 @@ paths: /orgs/{org}/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 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). + description: |- + 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). tags: - orgs operationId: orgs/list-attestations @@ -1660,22 +1721,16 @@ paths: - $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`. + 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. - - This option accepts `provenance`, `sbom`, `release`, or freeform - text - + description: |- + Optional filter for fetching attestations with a given predicate type. + This option accepts `provenance`, `sbom`, `release`, or freeform text for custom predicate types. in: query required: false @@ -1708,12 +1763,9 @@ paths: type: object properties: {} additionalProperties: true - description: >- + description: |- The attestation's Sigstore Bundle. - - Refer to the [Sigstore Bundle - Specification](https://github.com/sigstore/protobuf-specs/blob/main/protos/sigstore_bundle.proto) - for more information. + Refer 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: @@ -1754,8 +1806,7 @@ paths: operationId: orgs/list-blocked-users externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/blocking#list-users-blocked-by-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' @@ -1781,17 +1832,13 @@ paths: /orgs/{org}/blocks/{username}: get: 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. + 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: - orgs operationId: orgs/check-blocked-user externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/blocking#check-if-a-user-is-blocked-by-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' @@ -1812,17 +1859,13 @@ paths: x-stackQL-resource: blocking 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. + 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: - orgs operationId: orgs/block-user externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/blocking#block-a-user-from-an-organization + url: https://docs.github.com/rest/orgs/blocking#block-a-user-from-an-organization parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/username' @@ -1845,8 +1888,7 @@ paths: operationId: orgs/unblock-user externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/blocking#unblock-a-user-from-an-organization + url: https://docs.github.com/rest/orgs/blocking#unblock-a-user-from-an-organization parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/username' @@ -1862,17 +1904,13 @@ paths: /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. + 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: - orgs operationId: orgs/list-failed-invitations externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/members#list-failed-organization-invitations + url: https://docs.github.com/rest/orgs/members#list-failed-organization-invitations parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/per-page' @@ -1903,19 +1941,13 @@ paths: /orgs/{org}/hooks: get: summary: List organization webhooks - description: >- + description: |- List webhooks for an organization. + The authenticated user must be an organization owner to use this endpoint. - 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. + 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. tags: - orgs operationId: orgs/list-webhooks @@ -1951,25 +1983,19 @@ paths: x-stackQL-resource: webhooks post: summary: Create an organization webhook - description: >- + description: |- 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. + 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. tags: - orgs operationId: orgs/create-webhook externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/webhooks#create-an-organization-webhook + url: https://docs.github.com/rest/orgs/webhooks#create-an-organization-webhook parameters: - $ref: '#/components/parameters/org' requestBody: @@ -2004,20 +2030,14 @@ paths: - 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. + 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 items: type: string active: type: boolean - description: >- - Determines if notifications are sent when the webhook is - triggered. Set to `true` to send notifications. + description: Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. default: true required: - name @@ -2061,21 +2081,14 @@ paths: /orgs/{org}/hooks/{hook_id}: get: summary: Get an organization webhook - description: >- + description: |- 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). - + `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. + 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. tags: - orgs operationId: orgs/get-webhook @@ -2105,38 +2118,23 @@ paths: x-stackQL-resource: webhooks 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/orgs/webhooks#update-a-webhook-configuration-for-an-organization)". - + 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/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. + 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. tags: - orgs operationId: orgs/update-webhook externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/webhooks#update-an-organization-webhook + url: https://docs.github.com/rest/orgs/webhooks#update-an-organization-webhook parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/hook-id' @@ -2163,19 +2161,14 @@ paths: - url events: type: array - description: >- - Determines what - [events](https://docs.github.com/webhooks/event-payloads) - the hook is triggered for. + 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. + description: Determines if notifications are sent when the webhook is triggered. Set to `true` to send notifications. default: true name: type: string @@ -2208,26 +2201,19 @@ paths: x-stackQL-resource: webhooks delete: summary: Delete an organization webhook - description: >- + description: |- Delete a webhook for an organization. + The authenticated user must be an organization owner to use this endpoint. - 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. + 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. tags: - orgs operationId: orgs/delete-webhook externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/webhooks#delete-an-organization-webhook + url: https://docs.github.com/rest/orgs/webhooks#delete-an-organization-webhook parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/hook-id' @@ -2245,28 +2231,19 @@ paths: /orgs/{org}/hooks/{hook_id}/config: 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/orgs/webhooks#get-an-organization-webhook)." - + 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)." 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. + 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. tags: - orgs operationId: orgs/get-webhook-config-for-org externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization + url: https://docs.github.com/rest/orgs/webhooks#get-a-webhook-configuration-for-an-organization parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/hook-id' @@ -2288,28 +2265,19 @@ paths: x-stackQL-resource: 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/orgs/webhooks#update-an-organization-webhook)." - + 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)." 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. + 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. tags: - orgs operationId: orgs/update-webhook-config-for-org externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization + url: https://docs.github.com/rest/orgs/webhooks#update-a-webhook-configuration-for-an-organization parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/hook-id' @@ -2355,26 +2323,19 @@ paths: /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. - + description: |- + 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. + 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. tags: - orgs operationId: orgs/list-webhook-deliveries externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/webhooks#list-deliveries-for-an-organization-webhook + url: https://docs.github.com/rest/orgs/webhooks#list-deliveries-for-an-organization-webhook parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/hook-id' @@ -2406,25 +2367,19 @@ paths: /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}: get: summary: Get a webhook delivery for an organization webhook - description: >- + description: |- 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. + 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. tags: - orgs operationId: orgs/get-webhook-delivery externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/webhooks#get-a-webhook-delivery-for-an-organization-webhook + url: https://docs.github.com/rest/orgs/webhooks#get-a-webhook-delivery-for-an-organization-webhook parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/hook-id' @@ -2452,25 +2407,19 @@ paths: /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts: post: summary: Redeliver a delivery for an organization webhook - description: >- + description: |- 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. + 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. tags: - orgs operationId: orgs/redeliver-webhook-delivery externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/webhooks#redeliver-a-delivery-for-an-organization-webhook + url: https://docs.github.com/rest/orgs/webhooks#redeliver-a-delivery-for-an-organization-webhook parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/hook-id' @@ -2491,28 +2440,20 @@ paths: /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) - + description: |- + 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. + 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. tags: - orgs operationId: orgs/ping-webhook externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/webhooks#ping-an-organization-webhook + url: https://docs.github.com/rest/orgs/webhooks#ping-an-organization-webhook parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/hook-id' @@ -2530,16 +2471,16 @@ paths: /orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}: get: summary: Get route stats by actor - description: >- - Get API request count statistics for an actor broken down by route - within a specified time frame. + description: |- + Get API request count statistics for an actor broken down by route within a specified time frame. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-route-stats-by-actor externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/api-insights#get-route-stats-by-actor + url: https://docs.github.com/rest/orgs/api-insights#get-route-stats-by-actor parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/api-insights-actor-type' @@ -2557,7 +2498,29 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/api-insights-route-stats' + 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 examples: default: $ref: '#/components/examples/api-insights-route-stats' @@ -2569,9 +2532,10 @@ paths: /orgs/{org}/insights/api/subject-stats: get: 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. + description: |- + Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-subject-stats @@ -2593,7 +2557,26 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/api-insights-subject-stats' + 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 examples: default: $ref: '#/components/examples/api-insights-subject-stats' @@ -2605,9 +2588,10 @@ paths: /orgs/{org}/insights/api/summary-stats: get: 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. + description: |- + Get overall statistics of API requests made within an organization by all users and apps within a specified time frame. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats @@ -2636,16 +2620,16 @@ paths: /orgs/{org}/insights/api/summary-stats/users/{user_id}: get: summary: Get summary stats by user - description: >- - Get overall statistics of API requests within the organization for a - user. + description: |- + Get overall statistics of API requests within the organization for a user. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats-by-user externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/api-insights#get-summary-stats-by-user + url: https://docs.github.com/rest/orgs/api-insights#get-summary-stats-by-user parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/api-insights-user-id' @@ -2669,17 +2653,16 @@ paths: /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. + 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. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats-by-actor externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/api-insights#get-summary-stats-by-actor + url: https://docs.github.com/rest/orgs/api-insights#get-summary-stats-by-actor parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/api-insights-min-timestamp' @@ -2704,9 +2687,10 @@ paths: /orgs/{org}/insights/api/time-stats: get: summary: Get time stats - description: >- - Get the number of API requests and rate-limited requests made within an - organization over a specified time period. + description: |- + Get the number of API requests and rate-limited requests made within an organization over a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats @@ -2724,7 +2708,18 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/api-insights-time-stats' + type: array + items: + type: object + properties: + timestamp: + type: string + total_request_count: + type: integer + format: int64 + rate_limited_request_count: + type: integer + format: int64 examples: default: $ref: '#/components/examples/api-insights-time-stats' @@ -2736,9 +2731,10 @@ paths: /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. + description: |- + Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats-by-user @@ -2757,7 +2753,18 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/api-insights-time-stats' + type: array + items: + type: object + properties: + timestamp: + type: string + total_request_count: + type: integer + format: int64 + rate_limited_request_count: + type: integer + format: int64 examples: default: $ref: '#/components/examples/api-insights-time-stats' @@ -2769,9 +2776,10 @@ paths: /orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id}: get: 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. + description: |- + Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats-by-actor @@ -2791,7 +2799,18 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/api-insights-time-stats' + type: array + items: + type: object + properties: + timestamp: + type: string + total_request_count: + type: integer + format: int64 + rate_limited_request_count: + type: integer + format: int64 examples: default: $ref: '#/components/examples/api-insights-time-stats' @@ -2803,9 +2822,10 @@ paths: /orgs/{org}/insights/api/user-stats/{user_id}: get: summary: Get user stats - description: >- - Get API usage statistics within an organization for a user broken down - by the type of access. + description: |- + Get API usage statistics within an organization for a user broken down by the type of access. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-user-stats @@ -2828,7 +2848,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/api-insights-user-stats' + 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 examples: default: $ref: '#/components/examples/api-insights-user-stats' @@ -2840,26 +2887,19 @@ paths: /orgs/{org}/installations: get: summary: List app installations for an organization - description: >- - Lists all GitHub Apps in an organization. The installation count - includes - + description: |- + 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. - 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. + OAuth app tokens and personal access tokens (classic) need the `admin:read` scope to use this endpoint. tags: - orgs operationId: orgs/list-app-installations externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/orgs#list-app-installations-for-an-organization + url: https://docs.github.com/rest/orgs/orgs#list-app-installations-for-an-organization parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/per-page' @@ -2896,22 +2936,17 @@ paths: /orgs/{org}/invitations: get: summary: List pending organization invitations - description: >- + 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`, - + 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`. tags: - orgs operationId: orgs/list-pending-invitations externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/members#list-pending-organization-invitations + url: https://docs.github.com/rest/orgs/members#list-pending-organization-invitations parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/per-page' @@ -2965,27 +3000,17 @@ paths: x-stackQL-resource: members 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. - - - 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)" + 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. - 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/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: - orgs operationId: orgs/create-invitation externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/members#create-an-organization-invitation + url: https://docs.github.com/rest/orgs/members#create-an-organization-invitation parameters: - $ref: '#/components/parameters/org' requestBody: @@ -2997,15 +3022,10 @@ paths: properties: invitee_id: type: integer - description: >- - **Required unless you provide `email`**. GitHub user ID for - the person you are inviting. + 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. + 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: |- @@ -3057,20 +3077,16 @@ paths: /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. - + description: |- + 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). + This endpoint triggers [notifications](https://docs.github.com/github/managing-subscriptions-and-notifications-on-github/about-notifications). tags: - orgs operationId: orgs/cancel-invitation externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/members#cancel-an-organization-invitation + url: https://docs.github.com/rest/orgs/members#cancel-an-organization-invitation parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/invitation-id' @@ -3091,17 +3107,13 @@ paths: /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. + 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: - orgs operationId: orgs/list-invitation-teams externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/members#list-organization-invitation-teams + url: https://docs.github.com/rest/orgs/members#list-organization-invitation-teams parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/invitation-id' @@ -3133,17 +3145,13 @@ paths: /orgs/{org}/issue-fields: get: summary: List issue fields for an organization - description: >- - Lists all issue fields for an organization. OAuth app tokens and - personal access tokens (classic) need the read:org scope to use this - endpoint. + description: Lists all issue fields for an organization. OAuth app tokens and personal access tokens (classic) need the read:org scope to use this endpoint. tags: - orgs operationId: orgs/list-issue-fields externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/issue-fields#list-issue-fields-for-an-organization + url: https://docs.github.com/rest/orgs/issue-fields#list-issue-fields-for-an-organization parameters: - $ref: '#/components/parameters/org' responses: @@ -3168,26 +3176,19 @@ paths: x-stackQL-resource: issue_fields post: summary: Create issue field for an organization - description: >- + description: |- Creates a new issue field for an organization. + You can find out more about issue fields in [Managing issue fields in an organization](https://docs.github.com/issues/tracking-your-work-with-issues/using-issues/managing-issue-fields-in-an-organization). - You can find out more about issue fields in [Managing issue fields in an - organization](https://docs.github.com/issues/tracking-your-work-with-issues/using-issues/managing-issue-fields-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. + 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. tags: - orgs operationId: orgs/create-issue-field externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/issue-fields#create-issue-field-for-an-organization + url: https://docs.github.com/rest/orgs/issue-fields#create-issue-field-for-an-organization parameters: - $ref: '#/components/parameters/org' requestBody: @@ -3235,26 +3236,19 @@ paths: /orgs/{org}/issue-fields/{issue_field_id}: patch: summary: Update issue field for an organization - description: >- + description: |- Updates an issue field for an organization. + You can find out more about issue fields in [Managing issue fields in an organization](https://docs.github.com/issues/tracking-your-work-with-issues/using-issues/managing-issue-fields-in-an-organization). - You can find out more about issue fields in [Managing issue fields in an - organization](https://docs.github.com/issues/tracking-your-work-with-issues/using-issues/managing-issue-fields-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. + 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. tags: - orgs operationId: orgs/update-issue-field externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/issue-fields#update-issue-field-for-an-organization + url: https://docs.github.com/rest/orgs/issue-fields#update-issue-field-for-an-organization parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/issue-field-id' @@ -3317,26 +3311,19 @@ paths: x-stackQL-resource: issue_fields delete: summary: Delete issue field for an organization - description: >- + description: |- Deletes an issue field for an organization. + You can find out more about issue fields in [Managing issue fields in an organization](https://docs.github.com/issues/tracking-your-work-with-issues/using-issues/managing-issue-fields-in-an-organization). - You can find out more about issue fields in [Managing issue fields in an - organization](https://docs.github.com/issues/tracking-your-work-with-issues/using-issues/managing-issue-fields-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. + 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. tags: - orgs operationId: orgs/delete-issue-field externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/issue-fields#delete-issue-field-for-an-organization + url: https://docs.github.com/rest/orgs/issue-fields#delete-issue-field-for-an-organization parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/issue-field-id' @@ -3356,16 +3343,13 @@ paths: /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. + 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: - orgs operationId: orgs/list-issue-types externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/issue-types#list-issue-types-for-an-organization + url: https://docs.github.com/rest/orgs/issue-types#list-issue-types-for-an-organization parameters: - $ref: '#/components/parameters/org' responses: @@ -3390,26 +3374,19 @@ paths: x-stackQL-resource: issue_types post: summary: Create issue type for an organization - description: >- + description: |- 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). - 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. + 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. 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 + url: https://docs.github.com/rest/orgs/issue-types#create-issue-type-for-an-organization parameters: - $ref: '#/components/parameters/org' requestBody: @@ -3448,26 +3425,19 @@ paths: /orgs/{org}/issue-types/{issue_type_id}: put: summary: Update issue type for an organization - description: >- + description: |- 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). - 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. + 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. tags: - orgs operationId: orgs/update-issue-type externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/issue-types#update-issue-type-for-an-organization + url: https://docs.github.com/rest/orgs/issue-types#update-issue-type-for-an-organization parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/issue-type-id' @@ -3506,26 +3476,19 @@ paths: x-stackQL-resource: issue_types delete: summary: Delete issue type for an organization - description: >- + description: |- 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). - 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. + 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. 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 + 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' @@ -3545,10 +3508,7 @@ paths: /orgs/{org}/members: 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. + 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: - orgs operationId: orgs/list-members @@ -3558,15 +3518,7 @@ paths: parameters: - $ref: '#/components/parameters/org' - name: filter - 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. + 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: @@ -3621,8 +3573,7 @@ paths: operationId: orgs/check-membership-for-user externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/members#check-organization-membership-for-a-user + url: https://docs.github.com/rest/orgs/members#check-organization-membership-for-a-user parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/username' @@ -3637,9 +3588,7 @@ paths: schema: type: string '404': - description: >- - Not Found if requester is an organization member and user is not a - member + description: Not Found if requester is an organization member and user is not a member x-github: githubCloudOnly: false enabledForGitHubApps: true @@ -3648,24 +3597,17 @@ paths: x-stackQL-resource: members 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. - + 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. > [!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. + > 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-member externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/members#remove-an-organization-member + url: https://docs.github.com/rest/orgs/members#remove-an-organization-member parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/username' @@ -3690,17 +3632,13 @@ paths: /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. + 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: - orgs operationId: orgs/get-membership-for-user externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/members#get-organization-membership-for-a-user + url: https://docs.github.com/rest/orgs/members#get-organization-membership-for-a-user parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/username' @@ -3713,8 +3651,7 @@ paths: $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 + $ref: '#/components/examples/org-membership-response-if-user-has-an-active-admin-membership-with-organization' '403': $ref: '#/components/responses/forbidden' '404': @@ -3727,38 +3664,22 @@ paths: x-stackQL-resource: 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. - + description: |- + 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. + * 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. - + * 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. + 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. 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 + url: https://docs.github.com/rest/orgs/members#set-organization-membership-for-a-user parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/username' @@ -3771,9 +3692,8 @@ paths: properties: role: type: string - description: >- - The role to give the user in the organization. Can be one - of: + description: |- + The role to give the user in the organization. Can be one of: * `admin` - The user will become an owner of the organization. * `member` - The user will become a non-owner member of the organization. enum: @@ -3794,8 +3714,7 @@ paths: $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/examples/org-membership-response-if-user-has-an-active-admin-membership-with-organization' '403': $ref: '#/components/responses/forbidden' '422': @@ -3815,30 +3734,19 @@ paths: x-stackQL-resource: 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. - - - 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. + description: |- + 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. + > 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 + url: https://docs.github.com/rest/orgs/members#remove-organization-membership-for-a-user parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/username' @@ -3858,33 +3766,21 @@ paths: /orgs/{org}/organization-roles: get: 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)." - + 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)." To use this endpoint, the authenticated user must be one of: - - An administrator for the organization. + - An organization member (or a member of a team) assigned a custom organization role that includes the **View organization roles** (`read_organization_custom_org_role`) permission. For more information, see "[Permissions for organization access](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/permissions-of-custom-organization-roles#permissions-for-organization-access)." - - An organization member (or a member of a team) assigned a custom - organization role that includes the **View organization roles** - (`read_organization_custom_org_role`) permission. For more information, - see "[Permissions for organization - access](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/permissions-of-custom-organization-roles#permissions-for-organization-access)." - - - OAuth app tokens and personal access tokens (classic) need the - `admin:org` scope to use this endpoint. + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. tags: - orgs operationId: orgs/list-org-roles externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/organization-roles#get-all-organization-roles-for-an-organization + url: https://docs.github.com/rest/orgs/organization-roles#get-all-organization-roles-for-an-organization parameters: - $ref: '#/components/parameters/org' responses: @@ -3897,14 +3793,10 @@ paths: properties: total_count: type: integer - description: >- - The total number of organization roles available to the - organization. + description: The total number of organization roles available to the organization. roles: type: array - description: >- - The list of organization roles available to the - organization. + description: The list of organization roles available to the organization. items: $ref: '#/components/schemas/organization-role' examples: @@ -3923,25 +3815,18 @@ paths: /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)." - - - The authenticated user must be an administrator for the organization to - use this endpoint. + 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)." + 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. + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. tags: - orgs operationId: orgs/revoke-all-org-roles-team externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/organization-roles#remove-all-organization-roles-for-a-team + url: https://docs.github.com/rest/orgs/organization-roles#remove-all-organization-roles-for-a-team parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/team-slug' @@ -3957,25 +3842,18 @@ paths: /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)." - - - The authenticated user must be an administrator for the organization to - use this endpoint. + 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)." + 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. + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. tags: - orgs operationId: orgs/assign-team-to-org-role externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/organization-roles#assign-an-organization-role-to-a-team + url: https://docs.github.com/rest/orgs/organization-roles#assign-an-organization-role-to-a-team parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/team-slug' @@ -3986,9 +3864,7 @@ paths: '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. + description: Response if the organization roles feature is not enabled for the organization, or validation failed. x-github: githubCloudOnly: false enabledForGitHubApps: true @@ -3997,25 +3873,18 @@ paths: x-stackQL-resource: organization_roles 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)." - - - The authenticated user must be an administrator for the organization to - use this endpoint. + 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)." + 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. + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. tags: - orgs operationId: orgs/revoke-org-role-team externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/organization-roles#remove-an-organization-role-from-a-team + url: https://docs.github.com/rest/orgs/organization-roles#remove-an-organization-role-from-a-team parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/team-slug' @@ -4032,25 +3901,18 @@ paths: /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)." - - - The authenticated user must be an administrator for the organization to - use this endpoint. + 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)." + 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. + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. tags: - orgs operationId: orgs/revoke-all-org-roles-user externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/organization-roles#remove-all-organization-roles-for-a-user + url: https://docs.github.com/rest/orgs/organization-roles#remove-all-organization-roles-for-a-user parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/username' @@ -4066,25 +3928,18 @@ paths: /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)." - - - The authenticated user must be an administrator for the organization to - use this endpoint. + 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)." + 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. + OAuth 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 + url: https://docs.github.com/rest/orgs/organization-roles#assign-an-organization-role-to-a-user parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/username' @@ -4095,10 +3950,7 @@ paths: '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. + 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 @@ -4107,25 +3959,18 @@ paths: x-stackQL-resource: 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)." - - - The authenticated user must be an administrator for the organization to - use this endpoint. + 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)." + 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. + OAuth 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 + url: https://docs.github.com/rest/orgs/organization-roles#remove-an-organization-role-from-a-user parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/username' @@ -4142,33 +3987,21 @@ paths: /orgs/{org}/organization-roles/{role_id}: get: 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)." - + 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)." To use this endpoint, the authenticated user must be one of: - - An administrator for the organization. + - An organization member (or a member of a team) assigned a custom organization role that includes the **View organization roles** (`read_organization_custom_org_role`) permission. For more information, see "[Permissions for organization access](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/permissions-of-custom-organization-roles#permissions-for-organization-access)." - - An organization member (or a member of a team) assigned a custom - organization role that includes the **View organization roles** - (`read_organization_custom_org_role`) permission. For more information, - see "[Permissions for organization - access](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/permissions-of-custom-organization-roles#permissions-for-organization-access)." - - - OAuth app tokens and personal access tokens (classic) need the - `admin:org` scope to use this endpoint. + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. tags: - orgs operationId: orgs/get-org-role externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/organization-roles#get-an-organization-role + url: https://docs.github.com/rest/orgs/organization-roles#get-an-organization-role parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/role-id' @@ -4195,24 +4028,18 @@ paths: /orgs/{org}/organization-roles/{role_id}/teams: get: 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)." - + 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)." 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. + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. tags: - orgs operationId: orgs/list-org-role-teams externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/organization-roles#list-teams-that-are-assigned-to-an-organization-role + url: https://docs.github.com/rest/orgs/organization-roles#list-teams-that-are-assigned-to-an-organization-role parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/role-id' @@ -4225,7 +4052,6 @@ paths: application/json: schema: type: array - description: List of teams assigned to the organization role items: $ref: '#/components/schemas/team-role-assignment' examples: @@ -4237,9 +4063,7 @@ paths: '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. + description: Response if the organization roles feature is not enabled or validation failed. x-github: githubCloudOnly: false enabledForGitHubApps: true @@ -4249,24 +4073,18 @@ paths: /orgs/{org}/organization-roles/{role_id}/users: get: 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)." - + 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)." 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. + OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. tags: - orgs operationId: orgs/list-org-role-users externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/organization-roles#list-users-that-are-assigned-to-an-organization-role + url: https://docs.github.com/rest/orgs/organization-roles#list-users-that-are-assigned-to-an-organization-role parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/role-id' @@ -4279,7 +4097,6 @@ paths: application/json: schema: type: array - description: List of users assigned to the organization role items: $ref: '#/components/schemas/user-role-assignment' examples: @@ -4291,9 +4108,7 @@ paths: '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. + description: Response if the organization roles feature is not enabled or validation failed. x-github: githubCloudOnly: false enabledForGitHubApps: true @@ -4309,19 +4124,11 @@ paths: operationId: orgs/list-outside-collaborators externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/outside-collaborators#list-outside-collaborators-for-an-organization + url: https://docs.github.com/rest/orgs/outside-collaborators#list-outside-collaborators-for-an-organization parameters: - $ref: '#/components/parameters/org' - 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. + 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: @@ -4357,24 +4164,13 @@ paths: /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)." + 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: - orgs operationId: orgs/convert-member-to-outside-collaborator externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/outside-collaborators#convert-an-organization-member-to-outside-collaborator + url: https://docs.github.com/rest/orgs/outside-collaborators#convert-an-organization-member-to-outside-collaborator parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/username' @@ -4387,10 +4183,7 @@ paths: properties: 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. + description: When set to `true`, the request will be performed asynchronously. Returns a 202 status code when the job is successfully queued. default: false examples: '202': @@ -4415,12 +4208,7 @@ paths: '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)." + 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: @@ -4431,16 +4219,13 @@ paths: x-stackQL-resource: 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. + 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/orgs/outside-collaborators#remove-outside-collaborator-from-an-organization + url: https://docs.github.com/rest/orgs/outside-collaborators#remove-outside-collaborator-from-an-organization parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/username' @@ -4461,11 +4246,8 @@ paths: 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/orgs/outside-collaborators#remove-outside-collaborator-from-an-organization + 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 x-github: githubCloudOnly: false enabledForGitHubApps: true @@ -4474,13 +4256,9 @@ paths: x-stackQL-resource: outside_collaborators /orgs/{org}/personal-access-token-requests: get: - 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. - + 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. Only GitHub Apps can use this endpoint. tags: @@ -4488,8 +4266,7 @@ paths: operationId: orgs/list-pat-grant-requests externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/personal-access-tokens#list-requests-to-access-organization-resources-with-fine-grained-personal-access-tokens + 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/org' - $ref: '#/components/parameters/per-page' @@ -4510,8 +4287,7 @@ paths: schema: type: array items: - $ref: >- - #/components/schemas/organization-programmatic-access-grant-request + $ref: '#/components/schemas/organization-programmatic-access-grant-request' examples: default: $ref: '#/components/examples/org-pat-grant-request-paginated' @@ -4533,13 +4309,9 @@ paths: subcategory: personal-access-tokens x-stackQL-resource: personal_access_tokens post: - 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. - + 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. Only GitHub Apps can use this endpoint. tags: @@ -4547,8 +4319,7 @@ paths: operationId: orgs/review-pat-grant-requests-in-bulk externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/personal-access-tokens#review-requests-to-access-organization-resources-with-fine-grained-personal-access-tokens + 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/org' requestBody: @@ -4560,10 +4331,7 @@ paths: 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. + 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 @@ -4576,9 +4344,7 @@ paths: - deny reason: type: string - description: >- - Reason for approving or denying the requests. Max 1024 - characters. + description: Reason for approving or denying the requests. Max 1024 characters. maxLength: 1024 nullable: true required: @@ -4611,13 +4377,9 @@ paths: x-stackQL-resource: 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. - + 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. Only GitHub Apps can use this endpoint. tags: @@ -4625,15 +4387,12 @@ paths: 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 + 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/org' - name: pat_request_id in: path - description: >- - Unique identifier of the request for access via fine-grained - personal access token. + description: Unique identifier of the request for access via fine-grained personal access token. required: true schema: type: integer @@ -4652,9 +4411,7 @@ paths: - deny reason: type: string - description: >- - Reason for approving or denying the request. Max 1024 - characters. + description: Reason for approving or denying the request. Max 1024 characters. maxLength: 1024 nullable: true required: @@ -4684,13 +4441,9 @@ paths: x-stackQL-resource: personal_access_tokens /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. - + 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. Only GitHub Apps can use this endpoint. tags: @@ -4698,15 +4451,12 @@ paths: operationId: orgs/list-pat-grant-request-repositories externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/personal-access-tokens#list-repositories-requested-to-be-accessed-by-a-fine-grained-personal-access-token + 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/org' - name: pat_request_id in: path - description: >- - Unique identifier of the request for access via fine-grained - personal access token. + description: Unique identifier of the request for access via fine-grained personal access token. required: true schema: type: integer @@ -4741,13 +4491,9 @@ paths: x-stackQL-resource: personal_access_tokens /orgs/{org}/personal-access-tokens: get: - 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. - + 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. Only GitHub Apps can use this endpoint. tags: @@ -4755,8 +4501,7 @@ paths: operationId: orgs/list-pat-grants externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/personal-access-tokens#list-fine-grained-personal-access-tokens-with-access-to-organization-resources + 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/org' - $ref: '#/components/parameters/per-page' @@ -4799,14 +4544,9 @@ paths: subcategory: personal-access-tokens x-stackQL-resource: personal_access_tokens 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. - + 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. Only GitHub Apps can use this endpoint. tags: @@ -4814,8 +4554,7 @@ paths: operationId: orgs/update-pat-accesses externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/personal-access-tokens#update-the-access-to-organization-resources-via-fine-grained-personal-access-tokens + 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/org' requestBody: @@ -4835,9 +4574,7 @@ paths: type: array items: type: integer - description: >- - Unique identifier of the fine-grained personal access - token. + description: Unique identifier of the fine-grained personal access token. minItems: 1 maxItems: 100 required: @@ -4870,14 +4607,9 @@ paths: x-stackQL-resource: personal_access_tokens /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. - + 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. Only GitHub Apps can use this endpoint. tags: @@ -4885,8 +4617,7 @@ paths: operationId: orgs/update-pat-access externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/personal-access-tokens#update-the-access-a-fine-grained-personal-access-token-has-to-organization-resources + 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/org' - $ref: '#/components/parameters/fine-grained-personal-access-token-id' @@ -4929,10 +4660,8 @@ paths: /orgs/{org}/personal-access-tokens/{pat_id}/repositories: get: 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. - + description: |- + Lists the repositories a fine-grained personal access token has access to. Only GitHub Apps can use this endpoint. tags: @@ -4940,8 +4669,7 @@ paths: operationId: orgs/list-pat-grant-repositories externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/personal-access-tokens#list-repositories-a-fine-grained-personal-access-token-has-access-to + 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/org' - name: pat_id @@ -4990,8 +4718,7 @@ paths: operationId: orgs/custom-properties-for-repos-get-organization-definitions externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/custom-properties#get-all-custom-properties-for-an-organization + url: https://docs.github.com/rest/orgs/custom-properties#get-all-custom-properties-for-an-organization parameters: - $ref: '#/components/parameters/org' responses: @@ -5018,33 +4745,22 @@ paths: x-stackQL-resource: custom_properties 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. - - - 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`. + description: |- + 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`. 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. tags: - orgs - operationId: >- - orgs/custom-properties-for-repos-create-or-update-organization-definitions + operationId: orgs/custom-properties-for-repos-create-or-update-organization-definitions externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/custom-properties#create-or-update-custom-properties-for-an-organization + url: https://docs.github.com/rest/orgs/custom-properties#create-or-update-custom-properties-for-an-organization parameters: - $ref: '#/components/parameters/org' requestBody: @@ -5115,8 +4831,7 @@ paths: operationId: orgs/custom-properties-for-repos-get-organization-definition externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/custom-properties#get-a-custom-property-for-an-organization + url: https://docs.github.com/rest/orgs/custom-properties#get-a-custom-property-for-an-organization parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/custom-property-name' @@ -5142,25 +4857,18 @@ paths: x-stackQL-resource: custom_properties 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. - + description: |- + Creates a new or updates an existing custom property that is defined for 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 permission of - `custom_properties_org_definitions_manager` in the organization. + - 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-create-or-update-organization-definition + operationId: orgs/custom-properties-for-repos-create-or-update-organization-definition externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/custom-properties#create-or-update-a-custom-property-for-an-organization + url: https://docs.github.com/rest/orgs/custom-properties#create-or-update-a-custom-property-for-an-organization parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/custom-property-name' @@ -5213,8 +4921,7 @@ paths: 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 + 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' @@ -5234,33 +4941,21 @@ paths: /orgs/{org}/properties/values: get: summary: List custom property values for organization repositories - description: >- - Lists organization repositories with all of their custom property - values. - + description: |- + Lists organization repositories with all of their custom property values. Organization members can read these properties. tags: - orgs operationId: orgs/custom-properties-for-repos-get-organization-values externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/custom-properties#list-custom-property-values-for-organization-repositories + url: https://docs.github.com/rest/orgs/custom-properties#list-custom-property-values-for-organization-repositories parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/per-page' - $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. + 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: @@ -5292,20 +4987,13 @@ paths: x-stackQL-resource: custom_properties 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. - - Each target repository will have its custom property values updated to - match the values provided in the request. - + description: |- + 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. - + Using a value of `null` for a custom property will remove or 'unset' the property value from the repository. To use this endpoint, the authenticated user must be one of: - An administrator for the organization. @@ -5315,8 +5003,7 @@ paths: operationId: orgs/custom-properties-for-repos-create-or-update-organization-values externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/custom-properties#create-or-update-custom-property-values-for-organization-repositories + url: https://docs.github.com/rest/orgs/custom-properties#create-or-update-custom-property-values-for-organization-repositories parameters: - $ref: '#/components/parameters/org' requestBody: @@ -5328,18 +5015,14 @@ paths: properties: repository_names: type: array - description: >- - The names of repositories that the custom property values - will be applied to. + description: The names of repositories that the custom property values will be applied to. items: type: string minItems: 1 maxItems: 30 properties: type: array - description: >- - List of custom property names and associated values to apply - to the repositories. + description: List of custom property names and associated values to apply to the repositories. items: $ref: '#/components/schemas/custom-property-value' required: @@ -5350,9 +5033,7 @@ paths: $ref: '#/components/examples/org-repo-update-custom-property-values' responses: '204': - description: >- - No Content when custom property values are successfully created or - updated + description: No Content when custom property values are successfully created or updated '403': $ref: '#/components/responses/forbidden' '404': @@ -5368,16 +5049,13 @@ paths: /orgs/{org}/public_members: get: summary: List public organization members - description: >- - Members of an organization can choose to have their membership - publicized or not. + description: Members of an organization can choose to have their membership publicized or not. tags: - orgs operationId: orgs/list-public-members externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/members#list-public-organization-members + url: https://docs.github.com/rest/orgs/members#list-public-organization-members parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/per-page' @@ -5412,8 +5090,7 @@ paths: operationId: orgs/check-public-membership-for-user externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/members#check-public-organization-membership-for-a-user + url: https://docs.github.com/rest/orgs/members#check-public-organization-membership-for-a-user parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/username' @@ -5430,21 +5107,16 @@ paths: x-stackQL-resource: 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.) - + description: |- + The user can publicize their own membership. (A user cannot publicize the membership for another user.) - 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)." + 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: - 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 + url: https://docs.github.com/rest/orgs/members#set-public-organization-membership-for-the-authenticated-user parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/username' @@ -5461,16 +5133,13 @@ paths: x-stackQL-resource: 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. + 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 + 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' @@ -5492,8 +5161,7 @@ paths: operationId: orgs/get-org-ruleset-history externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/rules#get-organization-ruleset-history + url: https://docs.github.com/rest/orgs/rules#get-organization-ruleset-history parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/per-page' @@ -5535,8 +5203,7 @@ paths: operationId: orgs/get-org-ruleset-version externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/rules#get-organization-ruleset-version + url: https://docs.github.com/rest/orgs/rules#get-organization-ruleset-version parameters: - $ref: '#/components/parameters/org' - name: ruleset_id @@ -5574,20 +5241,15 @@ paths: /orgs/{org}/security-managers: get: summary: List security manager teams - description: >- + description: |- > [!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. + > **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: - orgs operationId: orgs/list-security-manager-teams externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams + url: https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams parameters: - $ref: '#/components/parameters/org' responses: @@ -5615,20 +5277,15 @@ paths: /orgs/{org}/security-managers/teams/{team_slug}: put: summary: Add a security manager team - description: >- + description: |- > [!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. + > **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: - orgs operationId: orgs/add-security-manager-team externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team + url: https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/team-slug' @@ -5647,20 +5304,15 @@ paths: x-stackQL-resource: security_managers delete: summary: Remove a security manager team - description: >- + description: |- > [!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. + > **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: - orgs operationId: orgs/remove-security-manager-team externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team + url: https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/team-slug' @@ -5680,19 +5332,16 @@ paths: /orgs/{org}/settings/immutable-releases: get: summary: Get immutable releases settings for an organization - description: >- + description: |- Gets 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. + OAuth 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 + url: https://docs.github.com/rest/orgs/orgs#get-immutable-releases-settings-for-an-organization parameters: - $ref: '#/components/parameters/org' responses: @@ -5714,19 +5363,16 @@ paths: x-stackQL-resource: orgs put: summary: Set immutable releases settings for an organization - description: >- + description: |- 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. + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. tags: - orgs operationId: orgs/set-immutable-releases-settings externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/orgs#set-immutable-releases-settings-for-an-organization + url: https://docs.github.com/rest/orgs/orgs#set-immutable-releases-settings-for-an-organization parameters: - $ref: '#/components/parameters/org' responses: @@ -5741,9 +5387,7 @@ paths: properties: enforced_repositories: type: string - description: >- - The policy that controls how immutable releases are enforced - in the organization. + description: The policy that controls how immutable releases are enforced in the organization. enum: - all - none @@ -5751,18 +5395,7 @@ paths: 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. + 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: @@ -5780,20 +5413,16 @@ paths: /orgs/{org}/settings/immutable-releases/repositories: get: 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. - + description: |- + List all of the repositories that have been selected for immutable releases enforcement in an organization. - OAuth tokens and personal access tokens (classic) need the `admin:org` - scope to use this endpoint. + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. tags: - orgs operationId: orgs/get-immutable-releases-settings-repositories externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/orgs#list-selected-repositories-for-immutable-releases-enforcement + url: https://docs.github.com/rest/orgs/orgs#list-selected-repositories-for-immutable-releases-enforcement parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/page' @@ -5826,22 +5455,16 @@ paths: x-stackQL-resource: 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`. - + 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`. - OAuth tokens and personal access tokens (classic) need the `admin:org` - scope to use this endpoint. + OAuth 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 + url: https://docs.github.com/rest/orgs/orgs#set-selected-repositories-for-immutable-releases-enforcement parameters: - $ref: '#/components/parameters/org' requestBody: @@ -5853,18 +5476,7 @@ paths: 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. + 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: @@ -5886,22 +5498,16 @@ paths: /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`. - + 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`. - OAuth tokens and personal access tokens (classic) need the `admin:org` - scope to use this endpoint. + OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. operationId: orgs/enable-selected-repository-immutable-releases-organization tags: - orgs externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/orgs#enable-a-selected-repository-for-immutable-releases-in-an-organization + url: https://docs.github.com/rest/orgs/orgs#enable-a-selected-repository-for-immutable-releases-in-an-organization parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/repository-id' @@ -5916,22 +5522,16 @@ paths: x-stackQL-resource: 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`. - + 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`. - OAuth tokens and personal access tokens (classic) need the `admin:org` - scope to use this endpoint. + OAuth 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 + url: https://docs.github.com/rest/orgs/orgs#disable-a-selected-repository-for-immutable-releases-in-an-organization parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/repository-id' @@ -5947,36 +5547,21 @@ paths: /orgs/{org}/{security_product}/{enablement}: post: summary: Enable or disable a security feature for an organization - description: >- + description: |- > [!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/). - > **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)." - 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)." + The authenticated user must be an organization owner or be member of a team with the security manager role to use this endpoint. - - 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. + OAuth app tokens and personal access tokens (classic) need the `admin:org`, `write:org`, or `repo` scopes to use this endpoint. tags: - orgs operationId: orgs/enable-or-disable-security-product-on-all-org-repos externalDocs: description: API method documentation - url: >- - https://docs.github.com/rest/orgs/orgs#enable-or-disable-a-security-feature-for-an-organization + url: https://docs.github.com/rest/orgs/orgs#enable-or-disable-a-security-feature-for-an-organization parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/security-product' @@ -5988,16 +5573,9 @@ paths: schema: properties: 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. - - If you don't specify any `query_suite` in your request, the - preferred query suite of the organization will be applied. + 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. + If you don't specify any `query_suite` in your request, the preferred query suite of the organization will be applied. type: string enum: - default @@ -6010,9 +5588,7 @@ paths: '204': description: Action started '422': - description: >- - The action could not be taken due to an in progress enablement, or a - policy is preventing enablement + 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 @@ -6032,13 +5608,10 @@ paths: 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 + 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. + 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: @@ -6080,19 +5653,13 @@ paths: /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. + 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 + url: https://docs.github.com/rest/orgs/members#get-an-organization-membership-for-the-authenticated-user parameters: - $ref: '#/components/parameters/org' responses: @@ -6117,16 +5684,13 @@ paths: x-stackQL-resource: members 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. + 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 + url: https://docs.github.com/rest/orgs/members#update-an-organization-membership-for-the-authenticated-user parameters: - $ref: '#/components/parameters/org' requestBody: @@ -6138,9 +5702,7 @@ paths: properties: state: type: string - description: >- - The state that the membership should be in. Only `"active"` - will be accepted. + description: The state that the membership should be in. Only `"active"` will be accepted. enum: - active required: @@ -6151,7 +5713,16 @@ paths: state: active responses: '200': - description: Response + description: The user's organization invitation was accepted synchronously. + content: + application/json: + schema: + $ref: '#/components/schemas/org-membership' + examples: + default: + $ref: '#/components/examples/org-membership-2' + '202': + description: The acceptance of the user's organization invitation is being processed asynchronously. content: application/json: schema: @@ -6174,30 +5745,19 @@ paths: /user/orgs: get: summary: List organizations for the authenticated user - description: >- + description: |- List organizations for the authenticated user. - - 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. - + 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. > [!NOTE] - - > Requests using a fine-grained access token will receive a `200 - Success` response with an empty list. + > 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 + url: https://docs.github.com/rest/orgs/orgs#list-organizations-for-the-authenticated-user parameters: - $ref: '#/components/parameters/per-page' - $ref: '#/components/parameters/page' @@ -6231,18 +5791,10 @@ paths: /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. - - - 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. + description: |- + 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/orgs/orgs#list-organizations-for-the-authenticated-user) API instead. tags: - orgs operationId: orgs/list-for-user @@ -6274,19 +5826,258 @@ paths: category: orgs subcategory: orgs x-stackQL-resource: orgs -components: - schemas: - organization-simple: - title: Organization Simple - description: A GitHub organization. - type: object - properties: - login: - type: string - example: github - id: - type: integer - example: 1 + /graphql?resource=saml_identities: + post: + operationId: graphql/orgs/saml_identities/list + summary: SAML Identities + description: External identities (SAML and SCIM) linked to organization members when the organization uses SAML single sign-on. Backed by the GitHub GraphQL API (`organization.samlIdentityProvider.externalIdentities`). Requires organization owner access and an organization with SAML SSO configured. + x-stackQL-graphQL: + url: https://api.github.com/graphql + httpVerb: POST + responseSelection: + jsonPath: $.data.organization.samlIdentityProvider.externalIdentities.nodes[*] + cursor: + strategy: page_info + jsonPath: $.data.organization.samlIdentityProvider.externalIdentities.pageInfo.endCursor + terminateOnJsonPath: $.data.organization.samlIdentityProvider.externalIdentities.pageInfo.hasNextPage + query: | + query { + organization(login: "{{ .org }}") { + samlIdentityProvider { + externalIdentities(first: 100{{ .cursor }}) { + pageInfo { endCursor hasNextPage } + nodes { + id + guid + saml_identity: samlIdentity { + name_id: nameId + username + emails { value primary } + } + scim_identity: scimIdentity { + username + emails { value primary } + } + user { login id } + } + } + } + } + } + x-stackql-protocol: graphql + externalDocs: + description: GitHub GraphQL API documentation + url: https://docs.github.com/graphql + parameters: + - name: org + in: query + required: true + schema: + type: string + description: The organization name. + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + organization: + type: object + properties: + samlIdentityProvider: + type: object + properties: + externalIdentities: + type: object + properties: + nodes: + type: array + items: + type: object + properties: + id: + type: string + description: The GraphQL node ID of the external identity. + guid: + type: string + description: The GUID for this identity. + saml_identity: + type: object + description: The SAML identity (`name_id`, `username`, `emails[]`). + properties: + name_id: + type: string + username: + type: string + emails: + type: array + items: + type: object + properties: + value: + type: string + primary: + type: boolean + scim_identity: + type: object + description: The SCIM identity (`username`, `emails[]`). + properties: + username: + type: string + emails: + type: array + items: + type: object + properties: + value: + type: string + primary: + type: boolean + user: + type: object + description: The linked GitHub user, null for unlinked identities (`login`, `id`). + properties: + login: + type: string + id: + type: string + pageInfo: + type: object + properties: + endCursor: + type: string + hasNextPage: + type: boolean + /graphql?resource=sponsorships: + post: + operationId: graphql/orgs/sponsorships/list + summary: Sponsorships + description: GitHub Sponsors sponsorships where the org is the maintainer being sponsored. Backed by the GitHub GraphQL API (`organization.sponsorshipsAsMaintainer`). Private sponsorships are only visible to the sponsored account. + x-stackQL-graphQL: + url: https://api.github.com/graphql + httpVerb: POST + responseSelection: + jsonPath: $.data.organization.sponsorshipsAsMaintainer.nodes[*] + cursor: + strategy: page_info + jsonPath: $.data.organization.sponsorshipsAsMaintainer.pageInfo.endCursor + terminateOnJsonPath: $.data.organization.sponsorshipsAsMaintainer.pageInfo.hasNextPage + query: | + query { + organization(login: "{{ .org }}") { + sponsorshipsAsMaintainer(first: 100, includePrivate: true{{ .cursor }}) { + pageInfo { endCursor hasNextPage } + nodes { + id + created_at: createdAt + is_one_time_payment: isOneTimePayment + is_active: isActive + privacy_level: privacyLevel + tier { + name + monthly_price_in_dollars: monthlyPriceInDollars + monthly_price_in_cents: monthlyPriceInCents + is_one_time: isOneTime + } + sponsor_entity: sponsorEntity { + ... on User { login name } + ... on Organization { login name } + } + } + } + } + } + x-stackql-protocol: graphql + externalDocs: + description: GitHub GraphQL API documentation + url: https://docs.github.com/graphql + parameters: + - name: org + in: query + required: true + schema: + type: string + description: The organization name. + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + organization: + type: object + properties: + sponsorshipsAsMaintainer: + type: object + properties: + nodes: + type: array + items: + type: object + properties: + id: + type: string + description: The GraphQL node ID of the sponsorship. + created_at: + type: string + format: date-time + is_one_time_payment: + type: boolean + is_active: + type: boolean + privacy_level: + type: string + description: PUBLIC or PRIVATE. + tier: + type: object + description: The sponsorship tier (`name`, `monthly_price_in_dollars`, `monthly_price_in_cents`, `is_one_time`). + properties: + name: + type: string + monthly_price_in_dollars: + type: integer + monthly_price_in_cents: + type: integer + is_one_time: + type: boolean + sponsor_entity: + type: object + description: The sponsoring user or organization (`login`, `name`). + properties: + login: + type: string + name: + type: string + pageInfo: + type: object + properties: + endCursor: + type: string + hasNextPage: + type: boolean +components: + schemas: + 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= @@ -6446,12 +6237,10 @@ components: type: integer example: 8 nullable: true - description: >- + description: |- The number of collaborators on private repositories. - - This field may be null if the number of private repositories is over - 50,000. + This field may be null if the number of private repositories is over 50,000. billing_email: type: string format: email @@ -6545,112 +6334,72 @@ components: 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. - - - Whether GitHub Advanced Security is enabled for new repositories and - repositories transferred to this organization. + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. + Whether GitHub Advanced Security is enabled for new repositories and repositories transferred to this organization. - This field is only visible to organization owners or members of a - team with the security manager role. + This 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. - - - Whether Dependabot alerts are automatically enabled for new - repositories and repositories transferred to this organization. + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. + Whether Dependabot alerts are automatically enabled for new repositories and repositories transferred to this organization. - This field is only visible to organization owners or members of a - team with the security manager role. + This 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. - - - Whether Dependabot security updates are automatically enabled for - new repositories and repositories transferred to this organization. + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. + Whether Dependabot security updates are automatically enabled for new repositories and repositories transferred to this organization. - This field is only visible to organization owners or members of a - team with the security manager role. + This 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. - - - Whether dependency graph is automatically enabled for new - repositories and repositories transferred to this organization. + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. + Whether dependency graph is automatically enabled for new repositories and repositories transferred to this organization. - This field is only visible to organization owners or members of a - team with the security manager role. + This 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. - - - Whether secret scanning is automatically enabled for new - repositories and repositories transferred to this organization. + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. + Whether secret scanning is automatically enabled for new repositories and repositories transferred to this organization. - This field is only visible to organization owners or members of a - team with the security manager role. + This 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. - - - Whether secret scanning push protection is automatically enabled for - new repositories and repositories transferred to this organization. + description: |- + **Endpoint closing down notice.** Please use [code security configurations](https://docs.github.com/rest/code-security/configurations) instead. + Whether secret scanning push protection is automatically enabled for new repositories and repositories transferred to this organization. - This field is only visible to organization owners or members of a - team with the security manager role. + This 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. + 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. + description: An optional URL string to display to contributors who are blocked from pushing a secret. created_at: type: string format: date-time @@ -6665,9 +6414,7 @@ components: 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. + description: Controls whether or not deploy keys may be added and used for repositories in the organization. required: - login - url @@ -6792,9 +6539,7 @@ components: type: string attestation_id: type: integer - description: >- - The ID of the provenance attestation associated with the deployment - record. + description: The ID of the provenance attestation associated with the deployment record. nullable: true basic-error: title: Basic Error @@ -7031,25 +6776,15 @@ components: 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`. + 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). + 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: 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.** + 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"' webhook-config: title: Webhook Configuration @@ -7075,9 +6810,7 @@ components: format: int64 example: 42 guid: - description: >- - Unique identifier for the event (shared with all deliveries for all - webhooks that subscribe to this event). + 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: @@ -7150,9 +6883,7 @@ components: type: integer example: 42 guid: - description: >- - Unique identifier for the event (shared with all deliveries for all - webhooks that subscribe to this event). + 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: @@ -7269,9 +7000,7 @@ components: type: integer format: int64 rate_limited_request_count: - description: >- - The total number of requests that were rate limited within the - queried time period + description: The total number of requests that were rate limited within the queried time period type: integer format: int64 last_rate_limited_timestamp: @@ -7312,9 +7041,7 @@ components: type: integer format: int64 rate_limited_request_count: - description: >- - The total number of requests that were rate limited within the - queried time period + description: The total number of requests that were rate limited within the queried time period type: integer format: int64 api-insights-time-stats: @@ -7500,9 +7227,7 @@ components: - created_at - updated_at repository_selection: - description: >- - Describe whether all repositories have been selected or there's a - selection involved + description: Describe whether all repositories have been selected or there's a selection involved type: string enum: - all @@ -7590,9 +7315,7 @@ components: - suspended_at team: title: Team - description: >- - Groups of organization members that gives permissions on specified - repositories. + description: Groups of organization members that gives permissions on specified repositories. type: object properties: id: @@ -7649,6 +7372,17 @@ components: enum: - enterprise - organization + access_source: + description: |- + How the team's access to the repository was granted. This property is only + present when the team is returned in a repository context, such as + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs @@ -7674,9 +7408,7 @@ components: - type issue-field: title: Issue Field - description: >- - A custom attribute defined at the organization level for attaching - structured data to issues. + description: A custom attribute defined at the organization level for attaching structured data to issues. type: object nullable: true properties: @@ -7700,18 +7432,16 @@ components: - text - date - single_select + - multi_select - number visibility: type: string - description: >- - The visibility of the issue field. Can be - `organization_members_only` (visible only within the organization) - or `all` (visible to all users who can see issues). + description: The visibility of the issue field. Can be `organization_members_only` (visible only within the organization) or `all` (visible to all users who can see issues). enum: - organization_members_only - all options: - description: Available options for single select fields. + description: Available options for single select and multi select fields. type: array items: type: object @@ -7785,22 +7515,16 @@ components: - text - date - single_select + - multi_select - number visibility: - description: >- - The visibility of the issue field. Can be - `organization_members_only` (visible only within the organization) - or `all` (visible to all users who can see issues). Only used when - the visibility settings feature is enabled. Defaults to - `organization_members_only`. + description: The visibility of the issue field. Can be `organization_members_only` (visible only within the organization) or `all` (visible to all users who can see issues). Only used when the visibility settings feature is enabled. Defaults to `organization_members_only`. type: string enum: - organization_members_only - all options: - description: >- - Options for single select fields. Required when data_type is - 'single_select'. + description: Options for select fields. Required when data_type is 'single_select' or 'multi_select'. type: array items: type: object @@ -7846,23 +7570,20 @@ components: type: string nullable: true visibility: - description: >- - The visibility of the issue field. Can be - `organization_members_only` (visible only within the organization) - or `all` (visible to all users who can see issues). Only used when - the visibility settings feature is enabled. + description: The visibility of the issue field. Can be `organization_members_only` (visible only within the organization) or `all` (visible to all users who can see issues). Only used when the visibility settings feature is enabled. type: string enum: - organization_members_only - all options: - description: >- - Options for single select fields. Only applicable when updating - single_select fields. + description: Options for select fields. Only applicable when updating single_select or multi_select fields. When provided, this array **replaces** the entire existing set of options rather than adding to or updating individual options. To retain or update an existing option, include it in the array with its `id`. Options sent without an `id` are treated as new options and may cause existing options to be deleted and recreated. type: array items: type: object properties: + id: + description: The id of an existing option to retain or update. Omit this when creating a new option. + type: integer name: description: Name of the option. type: string @@ -7891,7 +7612,7 @@ components: - priority issue-type: title: Issue Type - description: The type of issue. + description: The type assigned to the issue. This is only present for issues in repositories where issue types are supported. type: object nullable: true properties: @@ -8006,9 +7727,7 @@ components: 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. + 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 @@ -8027,10 +7746,8 @@ components: 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. - + description: |- + The slugs of the enterprise teams providing the user with indirect membership in the organization. A limit of 100 enterprise team slugs is returned. maxItems: 100 items: @@ -8073,9 +7790,7 @@ components: description: The name of the role. type: string description: - description: >- - A short description about who this role is for or what permissions - it grants. + description: A short description about who this role is for or what permissions it grants. type: string nullable: true base_role: @@ -8125,9 +7840,7 @@ components: properties: assignment: type: string - description: >- - Determines if the team has a direct, indirect, or mixed relationship - to a role + description: Determines if the team has a direct, indirect, or mixed relationship to a role enum: - direct - indirect @@ -8217,9 +7930,7 @@ components: properties: assignment: type: string - description: >- - Determines if the user has a direct, indirect, or mixed relationship - to a role + description: Determines if the user has a direct, indirect, or mixed relationship to a role enum: - direct - indirect @@ -8325,17 +8036,12 @@ components: - url organization-programmatic-access-grant-request: title: Simple Organization Programmatic Access Grant Request - description: >- - Minimal representation of an organization programmatic access grant - request for enumerations + 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. + 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 @@ -8351,10 +8057,7 @@ components: 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`. + 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. @@ -8376,32 +8079,21 @@ components: 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. + 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. + 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. + 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. + 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. + description: Date and time when the associated fine-grained personal access token was last used for authentication. required: - id - reason @@ -8453,8 +8145,7 @@ components: 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} + 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} @@ -8466,8 +8157,7 @@ components: 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} + 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} @@ -8476,8 +8166,7 @@ components: 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} + 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} @@ -8514,12 +8203,10 @@ components: type: string issue_comment_url: type: string - example: >- - http://api.github.com/repos/octocat/Hello-World/issues/comments{/number} + 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} + 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} @@ -8542,8 +8229,7 @@ components: 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} + 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} @@ -8602,9 +8288,7 @@ components: 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. + 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 @@ -8631,9 +8315,7 @@ components: has_pull_requests: type: boolean pull_request_creation_policy: - description: >- - The policy controlling who can create pull requests: all or - collaborators_only. + description: 'The policy controlling who can create pull requests: all or collaborators_only.' type: string enum: - all @@ -8718,10 +8400,7 @@ components: $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. + 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 @@ -8779,17 +8458,12 @@ components: version: '2026-03-10' organization-programmatic-access-grant: title: Organization Programmatic Access Grant - description: >- - Minimal representation of an organization programmatic access grant for - enumerations + 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. + 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: @@ -8801,10 +8475,7 @@ components: 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`. + 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. @@ -8823,37 +8494,24 @@ components: type: string access_granted_at: type: string - description: >- - Date and time when the fine-grained personal access token was - approved to access the organization. + 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. + 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. + 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. + 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. + 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. + description: Date and time when the associated fine-grained personal access token was last used for authentication. required: - id - owner @@ -8877,9 +8535,7 @@ components: url: type: string format: uri - description: >- - The URL that can be used to fetch, update, or delete info about this - property via the API. + 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 @@ -9074,9 +8730,7 @@ components: description: The state of the ruleset version (opaque JSON object) team-simple: title: Team Simple - description: >- - Groups of organization members that gives permissions on specified - repositories. + description: Groups of organization members that gives permissions on specified repositories. type: object properties: id: @@ -9163,9 +8817,7 @@ components: properties: enforced_repositories: type: string - description: >- - The policy that controls how immutable releases are enforced in the - organization. + description: The policy that controls how immutable releases are enforced in the organization. enum: - all - none @@ -9173,10 +8825,7 @@ components: 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`. + 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 scim-error: @@ -9260,439 +8909,334 @@ components: app-permissions: title: App Permissions type: object - description: The permissions granted to the user access token. + description: The permissions granted to the fine-grained access token. properties: actions: type: string - description: >- - The level of permission to grant the access token for GitHub Actions - workflows, workflow runs, and artifacts. + 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. + 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. + 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. + 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. + description: The level of permission to grant the access token for checks on code. + enum: + - read + - write + code_quality: + type: string + description: The level of permission to grant the access token to view and manage code quality data. enum: - read - write codespaces: type: string - description: >- - The level of permission to grant the access token to create, edit, - delete, and list Codespaces. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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: + - read - write organization_copilot_agent_settings: type: string - description: >- - The level of permission to grant the access token to view and manage - Copilot coding agent settings for an organization. + description: The level of permission to grant the access token to view and manage Copilot cloud agent settings for an organization. enum: - read - 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. + 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. + 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. + 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. + 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. + 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. + 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). + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + 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. + description: The level of permission to grant the access token for organization custom properties management at the enterprise level. enum: - read - write @@ -9804,9 +9348,7 @@ components: nullable: true nullable-team-simple: title: Team Simple - description: >- - Groups of organization members that gives permissions on specified - repositories. + description: Groups of organization members that gives permissions on specified repositories. type: object properties: id: @@ -9904,107 +9446,52 @@ components: example: https://api.github.com/codes_of_conduct/contributor_covenant body: type: string - example: > + example: | # Contributor Covenant Code of Conduct - ## Our Pledge - - In 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. - + In 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. ## Our Standards - - Examples of behavior that contributes to creating a positive - environment include: - + Examples of behavior that contributes to creating a positive environment include: * Using welcoming and inclusive language - * Being respectful of differing viewpoints and experiences - * Gracefully accepting constructive criticism - * Focusing on what is best for the community - * Showing empathy towards other community members - Examples of unacceptable behavior by participants include: - - * The use of sexualized language or imagery and unwelcome sexual - attention or advances - - * Trolling, insulting/derogatory comments, and personal or political - attacks - + * The use of sexualized language or imagery and unwelcome sexual attention or advances + * Trolling, insulting/derogatory comments, and personal or political attacks * Public or private harassment - - * Publishing others' private information, such as a physical or - electronic address, without explicit permission - - * Other conduct which could reasonably be considered inappropriate - in a professional setting - + * Publishing others' private information, such as a physical or electronic address, without explicit permission + * Other conduct which could reasonably be considered inappropriate in a professional setting ## Our Responsibilities - - Project maintainers are responsible for clarifying the standards of - acceptable behavior and are expected to take appropriate and fair - corrective action in response + Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. - Project 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. - + Project 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. ## Scope - - This 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, + This 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, 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. ## Enforcement + Instances 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. - Instances 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. - - - Project 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. - + Project 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. ## Attribution - - This 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/). + This 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/). html_url: type: string format: uri @@ -10019,12 +9506,10 @@ components: type: object properties: advanced_security: - description: > + description: | Enable or disable GitHub Advanced Security for the repository. - - For standalone Code Scanning or Secret Protection products, this - parameter cannot be used. + For standalone Code Scanning or Secret Protection products, this parameter cannot be used. type: object properties: status: @@ -10045,9 +9530,7 @@ components: type: object properties: status: - description: >- - The enablement status of Dependabot security updates for the - repository. + description: The enablement status of Dependabot security updates for the repository. type: string enum: - enabled @@ -10197,19 +9680,14 @@ components: parameters: since-org: name: since - description: >- - An organization ID. Only return organizations with an ID greater than - this ID. + description: An organization ID. Only return organizations with an ID greater than this ID. in: query required: false schema: type: integer 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)." + 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 @@ -10233,34 +9711,21 @@ components: pattern: ^sha256:[a-f0-9]{64}$ 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)." + 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 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)." + 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 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)." + 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 @@ -10274,31 +9739,21 @@ components: 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. + 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 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. + 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 webhook-delivery-status: name: status - description: >- - Returns webhook deliveries filtered by delivery outcome classification - based on `status_code` range. A `status` of `success` returns deliveries - with a `status_code` in the 200-399 range (inclusive). A `status` of - `failure` returns deliveries with a `status_code` in the 400-599 range - (inclusive). + description: Returns webhook deliveries filtered by delivery outcome classification based on `status_code` range. A `status` of `success` returns deliveries with a `status_code` in the 200-399 range (inclusive). A `status` of `failure` returns deliveries with a `status_code` in the 400-599 range (inclusive). in: query required: false schema: @@ -10334,21 +9789,14 @@ components: 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`. + 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 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`. + 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: @@ -10384,9 +9832,7 @@ components: 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. + 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 @@ -10409,9 +9855,7 @@ components: 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. + 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 @@ -10424,9 +9868,7 @@ components: type: string api-insights-timestamp-increment: name: timestamp_increment - description: >- - The increment of time used to breakdown the query results (5m, 10m, 1h, - etc.) + description: The increment of time used to breakdown the query results (5m, 10m, 1h, etc.) in: query required: true schema: @@ -10434,9 +9876,7 @@ components: 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. + 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 @@ -10514,11 +9954,7 @@ components: example: issues_read 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`. + 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: @@ -10526,11 +9962,7 @@ components: format: date-time 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`. + 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: @@ -10586,15 +10018,11 @@ components: org-security-product-enablement: name: enablement in: path - description: >- + description: |- 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. + `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. required: true schema: type: string @@ -10700,8 +10128,7 @@ components: total_count: 1 deployment_records: - id: 123 - digest: >- - sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + digest: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 logical_environment: prod physical_environment: pacific-east cluster: moda-1 @@ -10738,8 +10165,7 @@ components: version: 0.0.1 integratedTime: '1716998992' inclusionPromise: - signedEntryTimestamp: >- - MEYCIQCeEsQAy+qXtULkh52wbnHrkt2R2JQ05P9STK/xmdpQ2AIhANiG5Gw6cQiMnwvUz1+9UKtG/vlC8dduq07wsFOViwSL + signedEntryTimestamp: MEYCIQCeEsQAy+qXtULkh52wbnHrkt2R2JQ05P9STK/xmdpQ2AIhANiG5Gw6cQiMnwvUz1+9UKtG/vlC8dduq07wsFOViwSL inclusionProof: logIndex: '93750549' rootHash: KgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60= @@ -10759,24 +10185,16 @@ components: - 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= + 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== + 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 + payload: eyJfdHlwZSI6Imh0dHBzOi8vaW4tdG90by5pby9TdGF0ZW1lbnQvdjEiLCJzdWJqZWN0IjpbeyJuYW1lIjoiZ2hfMi41MC4wX3dpbmRvd3NfYXJtNjQuemlwIiwiZGlnZXN0Ijp7InNoYTI1NiI6IjhhYWQxMjBiNDE2Mzg2YjQyNjllZjYyYzhmZGViY2FkMzFhNzA4NDcyOTc4MTdhMTQ5ZGFmOTI3ZWRjODU1NDgifX1dLCJwcmVkaWNhdGVUeXBlIjoiaHR0cHM6Ly9zbHNhLmRldi9wcm92ZW5hbmNlL3YxIiwicHJlZGljYXRlIjp7ImJ1aWxkRGVmaW5pdGlvbiI6eyJidWlsZFR5cGUiOiJodHRwczovL3Nsc2EtZnJhbWV3b3JrLmdpdGh1Yi5pby9naXRodWItYWN0aW9ucy1idWlsZHR5cGVzL3dvcmtmbG93L3YxIiwiZXh0ZXJuYWxQYXJhbWV0ZXJzIjp7IndvcmtmbG93Ijp7InJlZiI6InJlZnMvaGVhZHMvdHJ1bmsiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkiLCJwYXRoIjoiLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWwifX0sImludGVybmFsUGFyYW1ldGVycyI6eyJnaXRodWIiOnsiZXZlbnRfbmFtZSI6IndvcmtmbG93X2Rpc3BhdGNoIiwicmVwb3NpdG9yeV9pZCI6IjIxMjYxMzA0OSIsInJlcG9zaXRvcnlfb3duZXJfaWQiOiI1OTcwNDcxMSJ9fSwicmVzb2x2ZWREZXBlbmRlbmNpZXMiOlt7InVyaSI6ImdpdCtodHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaUByZWZzL2hlYWRzL3RydW5rIiwiZGlnZXN0Ijp7ImdpdENvbW1pdCI6ImZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAifX1dfSwicnVuRGV0YWlscyI6eyJidWlsZGVyIjp7ImlkIjoiaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvcnVubmVyL2dpdGh1Yi1ob3N0ZWQifSwibWV0YWRhdGEiOnsiaW52b2NhdGlvbklkIjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvYWN0aW9ucy9ydW5zLzkyODkwNzU3NTIvYXR0ZW1wdHMvMSJ9fX19 payloadType: application/vnd.in-toto+json signatures: - - sig: >- - MEQCIEGIGAm7gZVLLpsrPcjndEjiuctE2/c9+j9KGvazz3rlAiAd6O16T5hkzRM3IbRPzm+xT40mNQZxefd7laDP6x2XLQ== + - sig: MEQCIEGIGAm7gZVLLpsrPcjndEjiuctE2/c9+j9KGvazz3rlAiAd6O16T5hkzRM3IbRPzm+xT40mNQZxefd7laDP6x2XLQ== repository_id: 1 - bundle: mediaType: application/vnd.dev.sigstore.bundle.v0.3+json @@ -10790,8 +10208,7 @@ components: version: 0.0.1 integratedTime: '1716998992' inclusionPromise: - signedEntryTimestamp: >- - MEYCIQCeEsQAy+qXtULkh52wbnHrkt2R2JQ05P9STK/xmdpQ2AIhANiG5Gw6cQiMnwvUz1+9UKtG/vlC8dduq07wsFOViwSL + signedEntryTimestamp: MEYCIQCeEsQAy+qXtULkh52wbnHrkt2R2JQ05P9STK/xmdpQ2AIhANiG5Gw6cQiMnwvUz1+9UKtG/vlC8dduq07wsFOViwSL inclusionProof: logIndex: '93750549' rootHash: KgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60= @@ -10811,24 +10228,16 @@ components: - 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= + 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== + 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 + payload: eyJfdHlwZSI6Imh0dHBzOi8vaW4tdG90by5pby9TdGF0ZW1lbnQvdjEiLCJzdWJqZWN0IjpbeyJuYW1lIjoiZ2hfMi41MC4wX3dpbmRvd3NfYXJtNjQuemlwIiwiZGlnZXN0Ijp7InNoYTI1NiI6IjhhYWQxMjBiNDE2Mzg2YjQyNjllZjYyYzhmZGViY2FkMzFhNzA4NDcyOTc4MTdhMTQ5ZGFmOTI3ZWRjODU1NDgifX1dLCJwcmVkaWNhdGVUeXBlIjoiaHR0cHM6Ly9zbHNhLmRldi9wcm92ZW5hbmNlL3YxIiwicHJlZGljYXRlIjp7ImJ1aWxkRGVmaW5pdGlvbiI6eyJidWlsZFR5cGUiOiJodHRwczovL3Nsc2EtZnJhbWV3b3JrLmdpdGh1Yi5pby9naXRodWItYWN0aW9ucy1idWlsZHR5cGVzL3dvcmtmbG93L3YxIiwiZXh0ZXJuYWxQYXJhbWV0ZXJzIjp7IndvcmtmbG93Ijp7InJlZiI6InJlZnMvaGVhZHMvdHJ1bmsiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkiLCJwYXRoIjoiLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWwifX0sImludGVybmFsUGFyYW1ldGVycyI6eyJnaXRodWIiOnsiZXZlbnRfbmFtZSI6IndvcmtmbG93X2Rpc3BhdGNoIiwicmVwb3NpdG9yeV9pZCI6IjIxMjYxMzA0OSIsInJlcG9zaXRvcnlfb3duZXJfaWQiOiI1OTcwNDcxMSJ9fSwicmVzb2x2ZWREZXBlbmRlbmNpZXMiOlt7InVyaSI6ImdpdCtodHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaUByZWZzL2hlYWRzL3RydW5rIiwiZGlnZXN0Ijp7ImdpdENvbW1pdCI6ImZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAifX1dfSwicnVuRGV0YWlscyI6eyJidWlsZGVyIjp7ImlkIjoiaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvcnVubmVyL2dpdGh1Yi1ob3N0ZWQifSwibWV0YWRhdGEiOnsiaW52b2NhdGlvbklkIjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvYWN0aW9ucy9ydW5zLzkyODkwNzU3NTIvYXR0ZW1wdHMvMSJ9fX19 payloadType: application/vnd.in-toto+json signatures: - - sig: >- - MEQCIEGIGAm7gZVLLpsrPcjndEjiuctE2/c9+j9KGvazz3rlAiAd6O16T5hkzRM3IbRPzm+xT40mNQZxefd7laDP6x2XLQ== + - sig: MEQCIEGIGAm7gZVLLpsrPcjndEjiuctE2/c9+j9KGvazz3rlAiAd6O16T5hkzRM3IbRPzm+xT40mNQZxefd7laDP6x2XLQ== repository_id: 1 list-attestation-repositories: value: @@ -10839,110 +10248,12 @@ components: 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 + - repository_id: 1 + bundle_url: https://tmastaging.blob.core.windows.net/attestations/1/2024/11/08/4.json.sn?se=2024-11-09T17%3A13%3A43Z&sig=jPSbbJnIEshUyCjBLU5Ykq0uuGc5UYxTZE1%2FhdBNMXk%3D&sp=r&spr=https%2Chttp&sr=b&st=2024-11-08T17%3A13%3A43Z&sv=2024-08-04 + initiator: user + - repository_id: 1 + bundle_url: https://tmastaging.blob.core.windows.net/attestations/1/2024/11/08/5.json.sn?se=2024-11-09T17%3A13%3A43Z&sig=jPSbbJnIEshUyCjBLU5Ykq0uuGc5UYxTZE1%2FhdBNMXk%3D&sp=r&spr=https%2Chttp&sr=b&st=2024-11-08T17%3A13%3A43Z&sv=2024-08-04 + initiator: user simple-user-items: value: - login: octocat @@ -11034,8 +10345,7 @@ components: id: 1 url: https://api.github.com/orgs/octocat/hooks/1 ping_url: https://api.github.com/orgs/octocat/hooks/1/pings - deliveries_url: >- - https://api.github.com/repos/octocat/Hello-World/hooks/12345678/deliveries + deliveries_url: https://api.github.com/repos/octocat/Hello-World/hooks/12345678/deliveries name: web events: - pull_request @@ -11193,8 +10503,7 @@ components: repository_selection: selected access_tokens_url: https://api.github.com/app/installations/25381/access_tokens repositories_url: https://api.github.com/installation/repositories - html_url: >- - https://github.com/organizations/octo-org/settings/installations/25381 + html_url: https://github.com/organizations/octo-org/settings/installations/25381 app_id: 2218 target_id: 6811672 target_type: Organization @@ -11287,6 +10596,23 @@ components: color: green created_at: '2024-12-11T14:39:09Z' updated_at: '2024-12-11T14:39:09Z' + - id: 3 + node_id: IFMS_kwDNAd3NAZt + name: Categories + description: Issue categories + data_type: multi_select + options: + - id: 4 + name: Frontend + color: blue + - id: 5 + name: Backend + color: green + - id: 6 + name: Infrastructure + color: purple + created_at: '2024-12-11T14:39:09Z' + updated_at: '2024-12-11T14:39:09Z' issue-field: value: id: 512 @@ -11491,8 +10817,7 @@ components: type: User site_admin: false repository_selection: all - repositories_url: >- - https://api.github.com/organizations/652551/personal-access-token-requests/25381/repositories + repositories_url: https://api.github.com/organizations/652551/personal-access-token-requests/25381/repositories permissions: organization: members: read @@ -11534,17 +10859,14 @@ components: 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} + 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} + 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} + 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 @@ -11555,18 +10877,15 @@ components: 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} + 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} + 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 @@ -11645,8 +10964,7 @@ components: type: User site_admin: false repository_selection: all - repositories_url: >- - https://api.github.com/organizations/652551/personal-access-tokens/25381/repositories + repositories_url: https://api.github.com/organizations/652551/personal-access-tokens/25381/repositories permissions: organization: members: read @@ -11821,17 +11139,14 @@ components: 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} + 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} + 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} + 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 @@ -11842,19 +11157,15 @@ components: 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} + 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} + 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 @@ -12032,69 +11343,146 @@ components: site_admin: false headers: link: - example: >- - ; rel="next", - ; rel="last" + example: ; rel="next", ; rel="last" schema: type: string x-stackQL-resources: - orgs: - id: github.orgs.orgs - name: orgs - title: Orgs + api_insights_route_stats: + id: github.orgs.api_insights_route_stats + name: api_insights_route_stats + title: Api Insights Route Stats methods: - list: + get_route_stats_by_actor: operation: - $ref: '#/paths/~1organizations/get' + $ref: '#/paths/~1orgs~1{org}~1insights~1api~1route-stats~1{actor_type}~1{actor_id}/get' response: mediaType: application/json openAPIDocKey: '200' - get: + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/api_insights_route_stats/methods/get_route_stats_by_actor' + insert: [] + update: [] + delete: [] + replace: [] + api_insights_subject_stats: + id: github.orgs.api_insights_subject_stats + name: api_insights_subject_stats + title: Api Insights Subject Stats + methods: + get_subject_stats: operation: - $ref: '#/paths/~1orgs~1{org}/get' + $ref: '#/paths/~1orgs~1{org}~1insights~1api~1subject-stats/get' response: mediaType: application/json openAPIDocKey: '200' - update: - config: - requestBodyTranslate: - algorithm: naive + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/api_insights_subject_stats/methods/get_subject_stats' + insert: [] + update: [] + delete: [] + replace: [] + api_insights_summary_stats: + id: github.orgs.api_insights_summary_stats + name: api_insights_summary_stats + title: Api Insights Summary Stats + methods: + get_summary_stats: operation: - $ref: '#/paths/~1orgs~1{org}/patch' + $ref: '#/paths/~1orgs~1{org}~1insights~1api~1summary-stats/get' response: mediaType: application/json openAPIDocKey: '200' - delete: + get_summary_stats_by_user: operation: - $ref: '#/paths/~1orgs~1{org}/delete' + $ref: '#/paths/~1orgs~1{org}~1insights~1api~1summary-stats~1users~1{user_id}/get' response: mediaType: application/json - openAPIDocKey: '202' - enable_or_disable_security_product_on_all_org_repos: - config: - requestBodyTranslate: - algorithm: naive + openAPIDocKey: '200' + get_summary_stats_by_actor: operation: - $ref: '#/paths/~1orgs~1{org}~1{security_product}~1{enablement}/post' + $ref: '#/paths/~1orgs~1{org}~1insights~1api~1summary-stats~1{actor_type}~1{actor_id}/get' response: mediaType: application/json - openAPIDocKey: '204' - list_for_user: + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/api_insights_summary_stats/methods/get_summary_stats_by_actor' + - $ref: '#/components/x-stackQL-resources/api_insights_summary_stats/methods/get_summary_stats_by_user' + - $ref: '#/components/x-stackQL-resources/api_insights_summary_stats/methods/get_summary_stats' + insert: [] + update: [] + delete: [] + replace: [] + api_insights_time_stats: + id: github.orgs.api_insights_time_stats + name: api_insights_time_stats + title: Api Insights Time Stats + methods: + get_time_stats: operation: - $ref: '#/paths/~1users~1{username}~1orgs/get' + $ref: '#/paths/~1orgs~1{org}~1insights~1api~1time-stats/get' + response: + mediaType: application/json + openAPIDocKey: '200' + get_time_stats_by_user: + operation: + $ref: '#/paths/~1orgs~1{org}~1insights~1api~1time-stats~1users~1{user_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + get_time_stats_by_actor: + operation: + $ref: '#/paths/~1orgs~1{org}~1insights~1api~1time-stats~1{actor_type}~1{actor_id}/get' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/orgs/methods/get' - - $ref: '#/components/x-stackQL-resources/orgs/methods/list_for_user' - - $ref: '#/components/x-stackQL-resources/orgs/methods/list' + - $ref: '#/components/x-stackQL-resources/api_insights_time_stats/methods/get_time_stats_by_actor' + - $ref: '#/components/x-stackQL-resources/api_insights_time_stats/methods/get_time_stats_by_user' + - $ref: '#/components/x-stackQL-resources/api_insights_time_stats/methods/get_time_stats' insert: [] - update: - - $ref: '#/components/x-stackQL-resources/orgs/methods/update' - delete: - - $ref: '#/components/x-stackQL-resources/orgs/methods/delete' + update: [] + delete: [] + replace: [] + api_insights_user_stats: + id: github.orgs.api_insights_user_stats + name: api_insights_user_stats + title: Api Insights User Stats + methods: + get_user_stats: + operation: + $ref: '#/paths/~1orgs~1{org}~1insights~1api~1user-stats~1{user_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/api_insights_user_stats/methods/get_user_stats' + insert: [] + update: [] + delete: [] + replace: [] + app_installations: + id: github.orgs.app_installations + name: app_installations + title: App Installations + methods: + list_app_installations: + operation: + $ref: '#/paths/~1orgs~1{org}~1installations/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.installations + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/app_installations/methods/list_app_installations' + insert: [] + update: [] + delete: [] replace: [] artifact_deployment_records: id: github.orgs.artifact_deployment_records @@ -12115,28 +11503,23 @@ components: requestBodyTranslate: algorithm: naive operation: - $ref: >- - #/paths/~1orgs~1{org}~1artifacts~1metadata~1deployment-record~1cluster~1{cluster}/post + $ref: '#/paths/~1orgs~1{org}~1artifacts~1metadata~1deployment-record~1cluster~1{cluster}/post' response: mediaType: application/json openAPIDocKey: '200' list_artifact_deployment_records: operation: - $ref: >- - #/paths/~1orgs~1{org}~1artifacts~1{subject_digest}~1metadata~1deployment-records/get + $ref: '#/paths/~1orgs~1{org}~1artifacts~1{subject_digest}~1metadata~1deployment-records/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.deployment_records sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/artifact_deployment_records/methods/list_artifact_deployment_records + - $ref: '#/components/x-stackQL-resources/artifact_deployment_records/methods/list_artifact_deployment_records' insert: - - $ref: >- - #/components/x-stackQL-resources/artifact_deployment_records/methods/set_cluster_deployment_records - - $ref: >- - #/components/x-stackQL-resources/artifact_deployment_records/methods/create_artifact_deployment_record + - $ref: '#/components/x-stackQL-resources/artifact_deployment_records/methods/set_cluster_deployment_records' + - $ref: '#/components/x-stackQL-resources/artifact_deployment_records/methods/create_artifact_deployment_record' update: [] delete: [] replace: [] @@ -12156,25 +11539,40 @@ components: openAPIDocKey: '200' list_artifact_storage_records: operation: - $ref: >- - #/paths/~1orgs~1{org}~1artifacts~1{subject_digest}~1metadata~1storage-records/get + $ref: '#/paths/~1orgs~1{org}~1artifacts~1{subject_digest}~1metadata~1storage-records/get' response: mediaType: application/json openAPIDocKey: '200' objectKey: $.storage_records sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/artifact_storage_records/methods/list_artifact_storage_records + - $ref: '#/components/x-stackQL-resources/artifact_storage_records/methods/list_artifact_storage_records' insert: - - $ref: >- - #/components/x-stackQL-resources/artifact_storage_records/methods/create_artifact_storage_record + - $ref: '#/components/x-stackQL-resources/artifact_storage_records/methods/create_artifact_storage_record' update: [] delete: [] replace: [] - attestations: - id: github.orgs.attestations - name: attestations + attestation_repositories: + id: github.orgs.attestation_repositories + name: attestation_repositories + title: Attestation Repositories + methods: + list_attestation_repositories: + operation: + $ref: '#/paths/~1orgs~1{org}~1attestations~1repositories/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/attestation_repositories/methods/list_attestation_repositories' + insert: [] + update: [] + delete: [] + replace: [] + attestations: + id: github.orgs.attestations + name: attestations title: Attestations methods: list_attestations_bulk: @@ -12197,8 +11595,7 @@ components: openAPIDocKey: '200' delete_attestations_by_subject_digest: operation: - $ref: >- - #/paths/~1orgs~1{org}~1attestations~1digest~1{subject_digest}/delete + $ref: '#/paths/~1orgs~1{org}~1attestations~1digest~1{subject_digest}/delete' response: mediaType: application/json openAPIDocKey: '200' @@ -12217,34 +11614,12 @@ components: objectKey: $.attestations sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/attestations/methods/list_attestations + - $ref: '#/components/x-stackQL-resources/attestations/methods/list_attestations' insert: [] update: [] delete: - - $ref: >- - #/components/x-stackQL-resources/attestations/methods/delete_attestations_by_subject_digest - - $ref: >- - #/components/x-stackQL-resources/attestations/methods/delete_attestations_by_id - replace: [] - attestation_repositories: - id: github.orgs.attestation_repositories - name: attestation_repositories - title: Attestation Repositories - methods: - list_attestation_repositories: - operation: - $ref: '#/paths/~1orgs~1{org}~1attestations~1repositories/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: >- - #/components/x-stackQL-resources/attestation_repositories/methods/list_attestation_repositories - insert: [] - update: [] - delete: [] + - $ref: '#/components/x-stackQL-resources/attestations/methods/delete_attestations_by_subject_digest' + - $ref: '#/components/x-stackQL-resources/attestations/methods/delete_attestations_by_id' replace: [] blocking: id: github.orgs.blocking @@ -12277,422 +11652,304 @@ components: openAPIDocKey: '204' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/blocking/methods/list_blocked_users + - $ref: '#/components/x-stackQL-resources/blocking/methods/list_blocked_users' insert: [] update: [] delete: [] replace: [] - failed_invitations: - id: github.orgs.failed_invitations - name: failed_invitations - title: Failed Invitations + cluster_deployment_records_jobs: + id: github.orgs.cluster_deployment_records_jobs + name: cluster_deployment_records_jobs + title: Cluster Deployment Records Jobs methods: - list_failed_invitations: + create_cluster_deployment_records_job: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1orgs~1{org}~1failed_invitations/get' + $ref: '#/paths/~1orgs~1{org}~1artifacts~1metadata~1deployment-record~1cluster~1{cluster}~1jobs/post' + response: + mediaType: application/json + openAPIDocKey: '202' + get_cluster_deployment_records_job: + operation: + $ref: '#/paths/~1orgs~1{org}~1artifacts~1metadata~1deployment-record~1cluster~1{cluster}~1jobs~1{job_id}/get' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/failed_invitations/methods/list_failed_invitations - insert: [] + - $ref: '#/components/x-stackQL-resources/cluster_deployment_records_jobs/methods/get_cluster_deployment_records_job' + insert: + - $ref: '#/components/x-stackQL-resources/cluster_deployment_records_jobs/methods/create_cluster_deployment_records_job' update: [] delete: [] replace: [] - webhooks: - id: github.orgs.webhooks - name: webhooks - title: Webhooks + custom_properties: + id: github.orgs.custom_properties + name: custom_properties + title: Custom Properties methods: - list_webhooks: + custom_properties_for_repos_get_organization_definitions: operation: - $ref: '#/paths/~1orgs~1{org}~1hooks/get' + $ref: '#/paths/~1orgs~1{org}~1properties~1schema/get' response: mediaType: application/json openAPIDocKey: '200' - create_webhook: + custom_properties_for_repos_create_or_update_organization_definitions: config: requestBodyTranslate: algorithm: naive operation: - $ref: '#/paths/~1orgs~1{org}~1hooks/post' + $ref: '#/paths/~1orgs~1{org}~1properties~1schema/patch' response: mediaType: application/json - openAPIDocKey: '201' - get_webhook: + openAPIDocKey: '200' + custom_properties_for_repos_get_organization_definition: operation: - $ref: '#/paths/~1orgs~1{org}~1hooks~1{hook_id}/get' + $ref: '#/paths/~1orgs~1{org}~1properties~1schema~1{custom_property_name}/get' response: mediaType: application/json openAPIDocKey: '200' - update_webhook: + custom_properties_for_repos_create_or_update_organization_definition: config: requestBodyTranslate: algorithm: naive operation: - $ref: '#/paths/~1orgs~1{org}~1hooks~1{hook_id}/patch' + $ref: '#/paths/~1orgs~1{org}~1properties~1schema~1{custom_property_name}/put' response: mediaType: application/json openAPIDocKey: '200' - delete_webhook: - operation: - $ref: '#/paths/~1orgs~1{org}~1hooks~1{hook_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - ping_webhook: + custom_properties_for_repos_delete_organization_definition: operation: - $ref: '#/paths/~1orgs~1{org}~1hooks~1{hook_id}~1pings/post' + $ref: '#/paths/~1orgs~1{org}~1properties~1schema~1{custom_property_name}/delete' response: mediaType: application/json openAPIDocKey: '204' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/webhooks/methods/get_webhook' - - $ref: '#/components/x-stackQL-resources/webhooks/methods/list_webhooks' - insert: - - $ref: '#/components/x-stackQL-resources/webhooks/methods/create_webhook' + - $ref: '#/components/x-stackQL-resources/custom_properties/methods/custom_properties_for_repos_get_organization_definition' + - $ref: '#/components/x-stackQL-resources/custom_properties/methods/custom_properties_for_repos_get_organization_definitions' + insert: [] update: - - $ref: '#/components/x-stackQL-resources/webhooks/methods/update_webhook' + - $ref: '#/components/x-stackQL-resources/custom_properties/methods/custom_properties_for_repos_create_or_update_organization_definitions' delete: - - $ref: '#/components/x-stackQL-resources/webhooks/methods/delete_webhook' - replace: [] - webhook_config: - id: github.orgs.webhook_config - name: webhook_config - title: Webhook Config + - $ref: '#/components/x-stackQL-resources/custom_properties/methods/custom_properties_for_repos_delete_organization_definition' + replace: + - $ref: '#/components/x-stackQL-resources/custom_properties/methods/custom_properties_for_repos_create_or_update_organization_definition' + custom_property_values: + id: github.orgs.custom_property_values + name: custom_property_values + title: Custom Property Values methods: - get_webhook_config_for_org: + custom_properties_for_repos_get_organization_values: operation: - $ref: '#/paths/~1orgs~1{org}~1hooks~1{hook_id}~1config/get' + $ref: '#/paths/~1orgs~1{org}~1properties~1values/get' response: mediaType: application/json openAPIDocKey: '200' - update_webhook_config_for_org: + custom_properties_for_repos_create_or_update_organization_values: config: requestBodyTranslate: algorithm: naive operation: - $ref: '#/paths/~1orgs~1{org}~1hooks~1{hook_id}~1config/patch' + $ref: '#/paths/~1orgs~1{org}~1properties~1values/patch' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/webhook_config/methods/get_webhook_config_for_org + - $ref: '#/components/x-stackQL-resources/custom_property_values/methods/custom_properties_for_repos_get_organization_values' insert: [] update: - - $ref: >- - #/components/x-stackQL-resources/webhook_config/methods/update_webhook_config_for_org + - $ref: '#/components/x-stackQL-resources/custom_property_values/methods/custom_properties_for_repos_create_or_update_organization_values' delete: [] replace: [] - webhook_deliveries: - id: github.orgs.webhook_deliveries - name: webhook_deliveries - title: Webhook Deliveries + failed_invitations: + id: github.orgs.failed_invitations + name: failed_invitations + title: Failed Invitations methods: - list_webhook_deliveries: + list_failed_invitations: operation: - $ref: '#/paths/~1orgs~1{org}~1hooks~1{hook_id}~1deliveries/get' + $ref: '#/paths/~1orgs~1{org}~1failed_invitations/get' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/webhook_deliveries/methods/list_webhook_deliveries + - $ref: '#/components/x-stackQL-resources/failed_invitations/methods/list_failed_invitations' insert: [] update: [] delete: [] replace: [] - webhook_delivery: - id: github.orgs.webhook_delivery - name: webhook_delivery - title: Webhook Delivery + immutable_releases_repos: + id: github.orgs.immutable_releases_repos + name: immutable_releases_repos + title: Immutable Releases Repos methods: - get_webhook_delivery: + get_immutable_releases_settings_repositories: operation: - $ref: >- - #/paths/~1orgs~1{org}~1hooks~1{hook_id}~1deliveries~1{delivery_id}/get + $ref: '#/paths/~1orgs~1{org}~1settings~1immutable-releases~1repositories/get' response: mediaType: application/json openAPIDocKey: '200' - redeliver_webhook_delivery: + set_immutable_releases_settings_repositories: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: >- - #/paths/~1orgs~1{org}~1hooks~1{hook_id}~1deliveries~1{delivery_id}~1attempts/post + $ref: '#/paths/~1orgs~1{org}~1settings~1immutable-releases~1repositories/put' response: mediaType: application/json - openAPIDocKey: '202' + openAPIDocKey: '204' + enable_selected_repository_immutable_releases_organization: + operation: + $ref: '#/paths/~1orgs~1{org}~1settings~1immutable-releases~1repositories~1{repository_id}/put' + response: + mediaType: application/json + openAPIDocKey: '204' + disable_selected_repository_immutable_releases_organization: + operation: + $ref: '#/paths/~1orgs~1{org}~1settings~1immutable-releases~1repositories~1{repository_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/webhook_delivery/methods/get_webhook_delivery + - $ref: '#/components/x-stackQL-resources/immutable_releases_repos/methods/get_immutable_releases_settings_repositories' insert: [] update: [] - delete: [] - replace: [] - api_insights_route_stats: - id: github.orgs.api_insights_route_stats - name: api_insights_route_stats - title: Api Insights Route Stats + delete: + - $ref: '#/components/x-stackQL-resources/immutable_releases_repos/methods/disable_selected_repository_immutable_releases_organization' + replace: + - $ref: '#/components/x-stackQL-resources/immutable_releases_repos/methods/enable_selected_repository_immutable_releases_organization' + - $ref: '#/components/x-stackQL-resources/immutable_releases_repos/methods/set_immutable_releases_settings_repositories' + immutable_releases_settings: + id: github.orgs.immutable_releases_settings + name: immutable_releases_settings + title: Immutable Releases Settings methods: - get_route_stats_by_actor: + get_immutable_releases_settings: operation: - $ref: >- - #/paths/~1orgs~1{org}~1insights~1api~1route-stats~1{actor_type}~1{actor_id}/get + $ref: '#/paths/~1orgs~1{org}~1settings~1immutable-releases/get' response: mediaType: application/json openAPIDocKey: '200' + set_immutable_releases_settings: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1orgs~1{org}~1settings~1immutable-releases/put' + response: + mediaType: application/json + openAPIDocKey: '204' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/api_insights_route_stats/methods/get_route_stats_by_actor + - $ref: '#/components/x-stackQL-resources/immutable_releases_settings/methods/get_immutable_releases_settings' insert: [] update: [] delete: [] - replace: [] - api_insights_subject_stats: - id: github.orgs.api_insights_subject_stats - name: api_insights_subject_stats - title: Api Insights Subject Stats + replace: + - $ref: '#/components/x-stackQL-resources/immutable_releases_settings/methods/set_immutable_releases_settings' + invitation_teams: + id: github.orgs.invitation_teams + name: invitation_teams + title: Invitation Teams methods: - get_subject_stats: + list_invitation_teams: operation: - $ref: '#/paths/~1orgs~1{org}~1insights~1api~1subject-stats/get' + $ref: '#/paths/~1orgs~1{org}~1invitations~1{invitation_id}~1teams/get' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/api_insights_subject_stats/methods/get_subject_stats + - $ref: '#/components/x-stackQL-resources/invitation_teams/methods/list_invitation_teams' insert: [] update: [] delete: [] replace: [] - api_insights_summary_stats: - id: github.orgs.api_insights_summary_stats - name: api_insights_summary_stats - title: Api Insights Summary Stats + invitations: + id: github.orgs.invitations + name: invitations + title: Invitations methods: - get_summary_stats: + list_pending_invitations: operation: - $ref: '#/paths/~1orgs~1{org}~1insights~1api~1summary-stats/get' + $ref: '#/paths/~1orgs~1{org}~1invitations/get' response: mediaType: application/json openAPIDocKey: '200' - get_summary_stats_by_user: + create_invitation: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: >- - #/paths/~1orgs~1{org}~1insights~1api~1summary-stats~1users~1{user_id}/get + $ref: '#/paths/~1orgs~1{org}~1invitations/post' response: mediaType: application/json - openAPIDocKey: '200' - get_summary_stats_by_actor: + openAPIDocKey: '201' + cancel_invitation: operation: - $ref: >- - #/paths/~1orgs~1{org}~1insights~1api~1summary-stats~1{actor_type}~1{actor_id}/get + $ref: '#/paths/~1orgs~1{org}~1invitations~1{invitation_id}/delete' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/api_insights_summary_stats/methods/get_summary_stats_by_actor - - $ref: >- - #/components/x-stackQL-resources/api_insights_summary_stats/methods/get_summary_stats_by_user - - $ref: >- - #/components/x-stackQL-resources/api_insights_summary_stats/methods/get_summary_stats - insert: [] + - $ref: '#/components/x-stackQL-resources/invitations/methods/list_pending_invitations' + insert: + - $ref: '#/components/x-stackQL-resources/invitations/methods/create_invitation' update: [] - delete: [] + delete: + - $ref: '#/components/x-stackQL-resources/invitations/methods/cancel_invitation' replace: [] - api_insights_time_stats: - id: github.orgs.api_insights_time_stats - name: api_insights_time_stats - title: Api Insights Time Stats + issue_fields: + id: github.orgs.issue_fields + name: issue_fields + title: Issue Fields methods: - get_time_stats: + list_issue_fields: operation: - $ref: '#/paths/~1orgs~1{org}~1insights~1api~1time-stats/get' + $ref: '#/paths/~1orgs~1{org}~1issue-fields/get' response: mediaType: application/json openAPIDocKey: '200' - get_time_stats_by_user: + create_issue_field: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: >- - #/paths/~1orgs~1{org}~1insights~1api~1time-stats~1users~1{user_id}/get + $ref: '#/paths/~1orgs~1{org}~1issue-fields/post' response: mediaType: application/json openAPIDocKey: '200' - get_time_stats_by_actor: + update_issue_field: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: >- - #/paths/~1orgs~1{org}~1insights~1api~1time-stats~1{actor_type}~1{actor_id}/get + $ref: '#/paths/~1orgs~1{org}~1issue-fields~1{issue_field_id}/patch' response: mediaType: application/json openAPIDocKey: '200' + delete_issue_field: + operation: + $ref: '#/paths/~1orgs~1{org}~1issue-fields~1{issue_field_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/api_insights_time_stats/methods/get_time_stats_by_actor - - $ref: >- - #/components/x-stackQL-resources/api_insights_time_stats/methods/get_time_stats_by_user - - $ref: >- - #/components/x-stackQL-resources/api_insights_time_stats/methods/get_time_stats - insert: [] - update: [] - delete: [] - replace: [] - api_insights_user_stats: - id: github.orgs.api_insights_user_stats - name: api_insights_user_stats - title: Api Insights User Stats - methods: - get_user_stats: - operation: - $ref: '#/paths/~1orgs~1{org}~1insights~1api~1user-stats~1{user_id}/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: >- - #/components/x-stackQL-resources/api_insights_user_stats/methods/get_user_stats - insert: [] - update: [] - delete: [] - replace: [] - app_installations: - id: github.orgs.app_installations - name: app_installations - title: App Installations - methods: - list_app_installations: - operation: - $ref: '#/paths/~1orgs~1{org}~1installations/get' - response: - mediaType: application/json - openAPIDocKey: '200' - objectKey: $.installations - sqlVerbs: - select: - - $ref: >- - #/components/x-stackQL-resources/app_installations/methods/list_app_installations - insert: [] - update: [] - delete: [] - replace: [] - invitations: - id: github.orgs.invitations - name: invitations - title: Invitations - methods: - list_pending_invitations: - operation: - $ref: '#/paths/~1orgs~1{org}~1invitations/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_invitation: - config: - requestBodyTranslate: - algorithm: naive - operation: - $ref: '#/paths/~1orgs~1{org}~1invitations/post' - response: - mediaType: application/json - openAPIDocKey: '201' - cancel_invitation: - operation: - $ref: '#/paths/~1orgs~1{org}~1invitations~1{invitation_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - sqlVerbs: - select: - - $ref: >- - #/components/x-stackQL-resources/invitations/methods/list_pending_invitations - insert: - - $ref: >- - #/components/x-stackQL-resources/invitations/methods/create_invitation - update: [] - delete: - - $ref: >- - #/components/x-stackQL-resources/invitations/methods/cancel_invitation - replace: [] - invitation_teams: - id: github.orgs.invitation_teams - name: invitation_teams - title: Invitation Teams - methods: - list_invitation_teams: - operation: - $ref: '#/paths/~1orgs~1{org}~1invitations~1{invitation_id}~1teams/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: >- - #/components/x-stackQL-resources/invitation_teams/methods/list_invitation_teams - insert: [] - update: [] - delete: [] - replace: [] - issue_fields: - id: github.orgs.issue_fields - name: issue_fields - title: Issue Fields - methods: - list_issue_fields: - operation: - $ref: '#/paths/~1orgs~1{org}~1issue-fields/get' - response: - mediaType: application/json - openAPIDocKey: '200' - create_issue_field: - config: - requestBodyTranslate: - algorithm: naive - operation: - $ref: '#/paths/~1orgs~1{org}~1issue-fields/post' - response: - mediaType: application/json - openAPIDocKey: '200' - update_issue_field: - config: - requestBodyTranslate: - algorithm: naive - operation: - $ref: '#/paths/~1orgs~1{org}~1issue-fields~1{issue_field_id}/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - delete_issue_field: - operation: - $ref: '#/paths/~1orgs~1{org}~1issue-fields~1{issue_field_id}/delete' - response: - mediaType: application/json - openAPIDocKey: '204' - sqlVerbs: - select: - - $ref: >- - #/components/x-stackQL-resources/issue_fields/methods/list_issue_fields - insert: - - $ref: >- - #/components/x-stackQL-resources/issue_fields/methods/create_issue_field - update: - - $ref: >- - #/components/x-stackQL-resources/issue_fields/methods/update_issue_field - delete: - - $ref: >- - #/components/x-stackQL-resources/issue_fields/methods/delete_issue_field + - $ref: '#/components/x-stackQL-resources/issue_fields/methods/list_issue_fields' + insert: + - $ref: '#/components/x-stackQL-resources/issue_fields/methods/create_issue_field' + update: + - $ref: '#/components/x-stackQL-resources/issue_fields/methods/update_issue_field' + delete: + - $ref: '#/components/x-stackQL-resources/issue_fields/methods/delete_issue_field' replace: [] issue_types: id: github.orgs.issue_types @@ -12731,18 +11988,14 @@ components: openAPIDocKey: '204' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/issue_types/methods/list_issue_types + - $ref: '#/components/x-stackQL-resources/issue_types/methods/list_issue_types' insert: - - $ref: >- - #/components/x-stackQL-resources/issue_types/methods/create_issue_type + - $ref: '#/components/x-stackQL-resources/issue_types/methods/create_issue_type' update: [] delete: - - $ref: >- - #/components/x-stackQL-resources/issue_types/methods/delete_issue_type + - $ref: '#/components/x-stackQL-resources/issue_types/methods/delete_issue_type' replace: - - $ref: >- - #/components/x-stackQL-resources/issue_types/methods/update_issue_type + - $ref: '#/components/x-stackQL-resources/issue_types/methods/update_issue_type' members: id: github.orgs.members name: members @@ -12823,140 +12076,92 @@ components: openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/memberships/methods/get_membership_for_user - - $ref: >- - #/components/x-stackQL-resources/memberships/methods/get_membership_for_authenticated_user - - $ref: >- - #/components/x-stackQL-resources/memberships/methods/list_memberships_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/memberships/methods/get_membership_for_user' + - $ref: '#/components/x-stackQL-resources/memberships/methods/get_membership_for_authenticated_user' + - $ref: '#/components/x-stackQL-resources/memberships/methods/list_memberships_for_authenticated_user' insert: [] update: - - $ref: >- - #/components/x-stackQL-resources/memberships/methods/update_membership_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/memberships/methods/update_membership_for_authenticated_user' delete: - - $ref: >- - #/components/x-stackQL-resources/memberships/methods/remove_membership_for_user + - $ref: '#/components/x-stackQL-resources/memberships/methods/remove_membership_for_user' replace: - - $ref: >- - #/components/x-stackQL-resources/memberships/methods/set_membership_for_user - roles: - id: github.orgs.roles - name: roles - title: Roles + - $ref: '#/components/x-stackQL-resources/memberships/methods/set_membership_for_user' + orgs: + id: github.orgs.orgs + name: orgs + title: Orgs methods: - list_org_roles: + list: operation: - $ref: '#/paths/~1orgs~1{org}~1organization-roles/get' + $ref: '#/paths/~1organizations/get' response: mediaType: application/json openAPIDocKey: '200' - objectKey: $.roles - get_org_role: + get: operation: - $ref: '#/paths/~1orgs~1{org}~1organization-roles~1{role_id}/get' + $ref: '#/paths/~1orgs~1{org}/get' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/roles/methods/get_org_role' - - $ref: '#/components/x-stackQL-resources/roles/methods/list_org_roles' - insert: [] - update: [] - delete: [] - replace: [] - role_team_assignments: - id: github.orgs.role_team_assignments - name: role_team_assignments - title: Role Team Assignments - methods: - revoke_all_org_roles_team: + update: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: >- - #/paths/~1orgs~1{org}~1organization-roles~1teams~1{team_slug}/delete + $ref: '#/paths/~1orgs~1{org}/patch' response: mediaType: application/json - openAPIDocKey: '204' - assign_team_to_org_role: + openAPIDocKey: '200' + delete: operation: - $ref: >- - #/paths/~1orgs~1{org}~1organization-roles~1teams~1{team_slug}~1{role_id}/put + $ref: '#/paths/~1orgs~1{org}/delete' response: mediaType: application/json - openAPIDocKey: '204' - revoke_org_role_team: + openAPIDocKey: '202' + enable_or_disable_security_product_on_all_org_repos: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: >- - #/paths/~1orgs~1{org}~1organization-roles~1teams~1{team_slug}~1{role_id}/delete + $ref: '#/paths/~1orgs~1{org}~1{security_product}~1{enablement}/post' response: mediaType: application/json openAPIDocKey: '204' - list_org_role_teams: + list_for_user: operation: - $ref: '#/paths/~1orgs~1{org}~1organization-roles~1{role_id}~1teams/get' + $ref: '#/paths/~1users~1{username}~1orgs/get' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/role_team_assignments/methods/list_org_role_teams + - $ref: '#/components/x-stackQL-resources/orgs/methods/get' + - $ref: '#/components/x-stackQL-resources/orgs/methods/list_for_user' + - $ref: '#/components/x-stackQL-resources/orgs/methods/list' insert: [] - update: [] + update: + - $ref: '#/components/x-stackQL-resources/orgs/methods/update' delete: - - $ref: >- - #/components/x-stackQL-resources/role_team_assignments/methods/revoke_org_role_team - - $ref: >- - #/components/x-stackQL-resources/role_team_assignments/methods/revoke_all_org_roles_team - replace: - - $ref: >- - #/components/x-stackQL-resources/role_team_assignments/methods/assign_team_to_org_role - role_user_assignments: - id: github.orgs.role_user_assignments - name: role_user_assignments - title: Role User Assignments + - $ref: '#/components/x-stackQL-resources/orgs/methods/delete' + replace: [] + orgs_for_user: + id: github.orgs.orgs_for_user + name: orgs_for_user + title: Orgs For User methods: - revoke_all_org_roles_user: - operation: - $ref: >- - #/paths/~1orgs~1{org}~1organization-roles~1users~1{username}/delete - response: - mediaType: application/json - openAPIDocKey: '204' - assign_user_to_org_role: - operation: - $ref: >- - #/paths/~1orgs~1{org}~1organization-roles~1users~1{username}~1{role_id}/put - response: - mediaType: application/json - openAPIDocKey: '204' - revoke_org_role_user: - operation: - $ref: >- - #/paths/~1orgs~1{org}~1organization-roles~1users~1{username}~1{role_id}/delete - response: - mediaType: application/json - openAPIDocKey: '204' - list_org_role_users: + list_for_authenticated_user: operation: - $ref: '#/paths/~1orgs~1{org}~1organization-roles~1{role_id}~1users/get' + $ref: '#/paths/~1user~1orgs/get' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/role_user_assignments/methods/list_org_role_users + - $ref: '#/components/x-stackQL-resources/orgs_for_user/methods/list_for_authenticated_user' insert: [] update: [] - delete: - - $ref: >- - #/components/x-stackQL-resources/role_user_assignments/methods/revoke_org_role_user - - $ref: >- - #/components/x-stackQL-resources/role_user_assignments/methods/revoke_all_org_roles_user - replace: - - $ref: >- - #/components/x-stackQL-resources/role_user_assignments/methods/assign_user_to_org_role + delete: [] + replace: [] outside_collaborators: id: github.orgs.outside_collaborators name: outside_collaborators @@ -12985,13 +12190,11 @@ components: openAPIDocKey: '204' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/outside_collaborators/methods/list_outside_collaborators + - $ref: '#/components/x-stackQL-resources/outside_collaborators/methods/list_outside_collaborators' insert: [] update: [] delete: - - $ref: >- - #/components/x-stackQL-resources/outside_collaborators/methods/remove_outside_collaborator + - $ref: '#/components/x-stackQL-resources/outside_collaborators/methods/remove_outside_collaborator' replace: [] pat_grant_requests: id: github.orgs.pat_grant_requests @@ -13018,35 +12221,13 @@ components: requestBodyTranslate: algorithm: naive operation: - $ref: >- - #/paths/~1orgs~1{org}~1personal-access-token-requests~1{pat_request_id}/post + $ref: '#/paths/~1orgs~1{org}~1personal-access-token-requests~1{pat_request_id}/post' response: mediaType: application/json openAPIDocKey: '204' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/pat_grant_requests/methods/list_pat_grant_requests - insert: [] - update: [] - delete: [] - replace: [] - repos_for_pat_grant_requests: - id: github.orgs.repos_for_pat_grant_requests - name: repos_for_pat_grant_requests - title: Repos For Pat Grant Requests - methods: - list_pat_grant_request_repositories: - operation: - $ref: >- - #/paths/~1orgs~1{org}~1personal-access-token-requests~1{pat_request_id}~1repositories/get - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: >- - #/components/x-stackQL-resources/repos_for_pat_grant_requests/methods/list_pat_grant_request_repositories + - $ref: '#/components/x-stackQL-resources/pat_grant_requests/methods/list_pat_grant_requests' insert: [] update: [] delete: [] @@ -13082,163 +12263,189 @@ components: openAPIDocKey: '204' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/pat_grants/methods/list_pat_grants + - $ref: '#/components/x-stackQL-resources/pat_grants/methods/list_pat_grants' insert: [] update: [] delete: [] replace: [] - repos_for_pat_grants: - id: github.orgs.repos_for_pat_grants - name: repos_for_pat_grants - title: Repos For Pat Grants + public_members: + id: github.orgs.public_members + name: public_members + title: Public Members methods: - list_pat_grant_repositories: + list_public_members: operation: - $ref: >- - #/paths/~1orgs~1{org}~1personal-access-tokens~1{pat_id}~1repositories/get + $ref: '#/paths/~1orgs~1{org}~1public_members/get' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: >- - #/components/x-stackQL-resources/repos_for_pat_grants/methods/list_pat_grant_repositories - insert: [] - update: [] - delete: [] - replace: [] - custom_properties: - id: github.orgs.custom_properties - name: custom_properties - title: Custom Properties - methods: - custom_properties_for_repos_get_organization_definitions: + check_public_membership_for_user: operation: - $ref: '#/paths/~1orgs~1{org}~1properties~1schema/get' - response: - mediaType: application/json - openAPIDocKey: '200' - custom_properties_for_repos_create_or_update_organization_definitions: - config: - requestBodyTranslate: - algorithm: naive - operation: - $ref: '#/paths/~1orgs~1{org}~1properties~1schema/patch' - response: - mediaType: application/json - openAPIDocKey: '200' - custom_properties_for_repos_get_organization_definition: - operation: - $ref: >- - #/paths/~1orgs~1{org}~1properties~1schema~1{custom_property_name}/get + $ref: '#/paths/~1orgs~1{org}~1public_members~1{username}/get' response: mediaType: application/json - openAPIDocKey: '200' - custom_properties_for_repos_create_or_update_organization_definition: - config: - requestBodyTranslate: - algorithm: naive + openAPIDocKey: '204' + set_public_membership_for_authenticated_user: operation: - $ref: >- - #/paths/~1orgs~1{org}~1properties~1schema~1{custom_property_name}/put + $ref: '#/paths/~1orgs~1{org}~1public_members~1{username}/put' response: mediaType: application/json - openAPIDocKey: '200' - custom_properties_for_repos_delete_organization_definition: + openAPIDocKey: '204' + remove_public_membership_for_authenticated_user: operation: - $ref: >- - #/paths/~1orgs~1{org}~1properties~1schema~1{custom_property_name}/delete + $ref: '#/paths/~1orgs~1{org}~1public_members~1{username}/delete' response: mediaType: application/json openAPIDocKey: '204' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/custom_properties/methods/custom_properties_for_repos_get_organization_definition - - $ref: >- - #/components/x-stackQL-resources/custom_properties/methods/custom_properties_for_repos_get_organization_definitions + - $ref: '#/components/x-stackQL-resources/public_members/methods/list_public_members' insert: [] - update: - - $ref: >- - #/components/x-stackQL-resources/custom_properties/methods/custom_properties_for_repos_create_or_update_organization_definitions + update: [] delete: - - $ref: >- - #/components/x-stackQL-resources/custom_properties/methods/custom_properties_for_repos_delete_organization_definition + - $ref: '#/components/x-stackQL-resources/public_members/methods/remove_public_membership_for_authenticated_user' replace: - - $ref: >- - #/components/x-stackQL-resources/custom_properties/methods/custom_properties_for_repos_create_or_update_organization_definition - custom_property_values: - id: github.orgs.custom_property_values - name: custom_property_values - title: Custom Property Values + - $ref: '#/components/x-stackQL-resources/public_members/methods/set_public_membership_for_authenticated_user' + repos_for_pat_grant_requests: + id: github.orgs.repos_for_pat_grant_requests + name: repos_for_pat_grant_requests + title: Repos For Pat Grant Requests methods: - custom_properties_for_repos_get_organization_values: + list_pat_grant_request_repositories: operation: - $ref: '#/paths/~1orgs~1{org}~1properties~1values/get' + $ref: '#/paths/~1orgs~1{org}~1personal-access-token-requests~1{pat_request_id}~1repositories/get' response: mediaType: application/json openAPIDocKey: '200' - custom_properties_for_repos_create_or_update_organization_values: - config: - requestBodyTranslate: - algorithm: naive + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/repos_for_pat_grant_requests/methods/list_pat_grant_request_repositories' + insert: [] + update: [] + delete: [] + replace: [] + repos_for_pat_grants: + id: github.orgs.repos_for_pat_grants + name: repos_for_pat_grants + title: Repos For Pat Grants + methods: + list_pat_grant_repositories: operation: - $ref: '#/paths/~1orgs~1{org}~1properties~1values/patch' + $ref: '#/paths/~1orgs~1{org}~1personal-access-tokens~1{pat_id}~1repositories/get' response: mediaType: application/json - openAPIDocKey: '204' + openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/custom_property_values/methods/custom_properties_for_repos_get_organization_values + - $ref: '#/components/x-stackQL-resources/repos_for_pat_grants/methods/list_pat_grant_repositories' insert: [] - update: - - $ref: >- - #/components/x-stackQL-resources/custom_property_values/methods/custom_properties_for_repos_create_or_update_organization_values + update: [] delete: [] replace: [] - public_members: - id: github.orgs.public_members - name: public_members - title: Public Members + role_team_assignments: + id: github.orgs.role_team_assignments + name: role_team_assignments + title: Role Team Assignments methods: - list_public_members: + revoke_all_org_roles_team: operation: - $ref: '#/paths/~1orgs~1{org}~1public_members/get' + $ref: '#/paths/~1orgs~1{org}~1organization-roles~1teams~1{team_slug}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + assign_team_to_org_role: + operation: + $ref: '#/paths/~1orgs~1{org}~1organization-roles~1teams~1{team_slug}~1{role_id}/put' + response: + mediaType: application/json + openAPIDocKey: '204' + revoke_org_role_team: + operation: + $ref: '#/paths/~1orgs~1{org}~1organization-roles~1teams~1{team_slug}~1{role_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + list_org_role_teams: + operation: + $ref: '#/paths/~1orgs~1{org}~1organization-roles~1{role_id}~1teams/get' response: mediaType: application/json openAPIDocKey: '200' - check_public_membership_for_user: + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/role_team_assignments/methods/list_org_role_teams' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/role_team_assignments/methods/revoke_org_role_team' + - $ref: '#/components/x-stackQL-resources/role_team_assignments/methods/revoke_all_org_roles_team' + replace: + - $ref: '#/components/x-stackQL-resources/role_team_assignments/methods/assign_team_to_org_role' + role_user_assignments: + id: github.orgs.role_user_assignments + name: role_user_assignments + title: Role User Assignments + methods: + revoke_all_org_roles_user: operation: - $ref: '#/paths/~1orgs~1{org}~1public_members~1{username}/get' + $ref: '#/paths/~1orgs~1{org}~1organization-roles~1users~1{username}/delete' response: mediaType: application/json openAPIDocKey: '204' - set_public_membership_for_authenticated_user: + assign_user_to_org_role: operation: - $ref: '#/paths/~1orgs~1{org}~1public_members~1{username}/put' + $ref: '#/paths/~1orgs~1{org}~1organization-roles~1users~1{username}~1{role_id}/put' response: mediaType: application/json openAPIDocKey: '204' - remove_public_membership_for_authenticated_user: + revoke_org_role_user: operation: - $ref: '#/paths/~1orgs~1{org}~1public_members~1{username}/delete' + $ref: '#/paths/~1orgs~1{org}~1organization-roles~1users~1{username}~1{role_id}/delete' response: mediaType: application/json openAPIDocKey: '204' + list_org_role_users: + operation: + $ref: '#/paths/~1orgs~1{org}~1organization-roles~1{role_id}~1users/get' + response: + mediaType: application/json + openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/public_members/methods/list_public_members + - $ref: '#/components/x-stackQL-resources/role_user_assignments/methods/list_org_role_users' insert: [] update: [] delete: - - $ref: >- - #/components/x-stackQL-resources/public_members/methods/remove_public_membership_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/role_user_assignments/methods/revoke_org_role_user' + - $ref: '#/components/x-stackQL-resources/role_user_assignments/methods/revoke_all_org_roles_user' replace: - - $ref: >- - #/components/x-stackQL-resources/public_members/methods/set_public_membership_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/role_user_assignments/methods/assign_user_to_org_role' + roles: + id: github.orgs.roles + name: roles + title: Roles + methods: + list_org_roles: + operation: + $ref: '#/paths/~1orgs~1{org}~1organization-roles/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.roles + get_org_role: + operation: + $ref: '#/paths/~1orgs~1{org}~1organization-roles~1{role_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/roles/methods/get_org_role' + - $ref: '#/components/x-stackQL-resources/roles/methods/list_org_roles' + insert: [] + update: [] + delete: [] + replace: [] ruleset_history: id: github.orgs.ruleset_history name: ruleset_history @@ -13252,17 +12459,34 @@ components: openAPIDocKey: '200' get_org_ruleset_version: operation: - $ref: >- - #/paths/~1orgs~1{org}~1rulesets~1{ruleset_id}~1history~1{version_id}/get + $ref: '#/paths/~1orgs~1{org}~1rulesets~1{ruleset_id}~1history~1{version_id}/get' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/ruleset_history/methods/get_org_ruleset_version - - $ref: >- - #/components/x-stackQL-resources/ruleset_history/methods/get_org_ruleset_history + - $ref: '#/components/x-stackQL-resources/ruleset_history/methods/get_org_ruleset_version' + - $ref: '#/components/x-stackQL-resources/ruleset_history/methods/get_org_ruleset_history' + insert: [] + update: [] + delete: [] + replace: [] + saml_identities: + id: github.orgs.saml_identities + name: saml_identities + title: SAML Identities + methods: + list: + operation: + $ref: '#/paths/~1graphql?resource=saml_identities/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.organization.samlIdentityProvider.externalIdentities.nodes + x-stackql-protocol: graphql + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/saml_identities/methods/list' insert: [] update: [] delete: [] @@ -13286,121 +12510,174 @@ components: openAPIDocKey: '204' remove_security_manager_team: operation: - $ref: >- - #/paths/~1orgs~1{org}~1security-managers~1teams~1{team_slug}/delete + $ref: '#/paths/~1orgs~1{org}~1security-managers~1teams~1{team_slug}/delete' response: mediaType: application/json openAPIDocKey: '204' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/security_managers/methods/list_security_manager_teams + - $ref: '#/components/x-stackQL-resources/security_managers/methods/list_security_manager_teams' insert: - - $ref: >- - #/components/x-stackQL-resources/security_managers/methods/add_security_manager_team + - $ref: '#/components/x-stackQL-resources/security_managers/methods/add_security_manager_team' update: [] delete: - - $ref: >- - #/components/x-stackQL-resources/security_managers/methods/remove_security_manager_team + - $ref: '#/components/x-stackQL-resources/security_managers/methods/remove_security_manager_team' replace: [] - immutable_releases_settings: - id: github.orgs.immutable_releases_settings - name: immutable_releases_settings - title: Immutable Releases Settings + sponsorships: + id: github.orgs.sponsorships + name: sponsorships + title: Sponsorships methods: - get_immutable_releases_settings: + list: operation: - $ref: '#/paths/~1orgs~1{org}~1settings~1immutable-releases/get' + $ref: '#/paths/~1graphql?resource=sponsorships/post' response: mediaType: application/json openAPIDocKey: '200' - set_immutable_releases_settings: + objectKey: $.data.organization.sponsorshipsAsMaintainer.nodes + x-stackql-protocol: graphql + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/sponsorships/methods/list' + insert: [] + update: [] + delete: [] + replace: [] + webhook_config: + id: github.orgs.webhook_config + name: webhook_config + title: Webhook Config + methods: + get_webhook_config_for_org: + operation: + $ref: '#/paths/~1orgs~1{org}~1hooks~1{hook_id}~1config/get' + response: + mediaType: application/json + openAPIDocKey: '200' + update_webhook_config_for_org: config: requestBodyTranslate: algorithm: naive operation: - $ref: '#/paths/~1orgs~1{org}~1settings~1immutable-releases/put' + $ref: '#/paths/~1orgs~1{org}~1hooks~1{hook_id}~1config/patch' response: mediaType: application/json - openAPIDocKey: '204' + openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/immutable_releases_settings/methods/get_immutable_releases_settings + - $ref: '#/components/x-stackQL-resources/webhook_config/methods/get_webhook_config_for_org' + insert: [] + update: + - $ref: '#/components/x-stackQL-resources/webhook_config/methods/update_webhook_config_for_org' + delete: [] + replace: [] + webhook_deliveries: + id: github.orgs.webhook_deliveries + name: webhook_deliveries + title: Webhook Deliveries + methods: + list_webhook_deliveries: + operation: + $ref: '#/paths/~1orgs~1{org}~1hooks~1{hook_id}~1deliveries/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/webhook_deliveries/methods/list_webhook_deliveries' insert: [] update: [] delete: [] - replace: - - $ref: >- - #/components/x-stackQL-resources/immutable_releases_settings/methods/set_immutable_releases_settings - immutable_releases_repos: - id: github.orgs.immutable_releases_repos - name: immutable_releases_repos - title: Immutable Releases Repos + replace: [] + webhook_delivery: + id: github.orgs.webhook_delivery + name: webhook_delivery + title: Webhook Delivery methods: - get_immutable_releases_settings_repositories: + get_webhook_delivery: operation: - $ref: >- - #/paths/~1orgs~1{org}~1settings~1immutable-releases~1repositories/get + $ref: '#/paths/~1orgs~1{org}~1hooks~1{hook_id}~1deliveries~1{delivery_id}/get' response: mediaType: application/json openAPIDocKey: '200' - set_immutable_releases_settings_repositories: + redeliver_webhook_delivery: + operation: + $ref: '#/paths/~1orgs~1{org}~1hooks~1{hook_id}~1deliveries~1{delivery_id}~1attempts/post' + response: + mediaType: application/json + openAPIDocKey: '202' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/webhook_delivery/methods/get_webhook_delivery' + insert: [] + update: [] + delete: [] + replace: [] + webhooks: + id: github.orgs.webhooks + name: webhooks + title: Webhooks + methods: + list_webhooks: + operation: + $ref: '#/paths/~1orgs~1{org}~1hooks/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create_webhook: config: requestBodyTranslate: algorithm: naive operation: - $ref: >- - #/paths/~1orgs~1{org}~1settings~1immutable-releases~1repositories/put + $ref: '#/paths/~1orgs~1{org}~1hooks/post' response: mediaType: application/json - openAPIDocKey: '204' - enable_selected_repository_immutable_releases_organization: + openAPIDocKey: '201' + get_webhook: operation: - $ref: >- - #/paths/~1orgs~1{org}~1settings~1immutable-releases~1repositories~1{repository_id}/put + $ref: '#/paths/~1orgs~1{org}~1hooks~1{hook_id}/get' response: mediaType: application/json - openAPIDocKey: '204' - disable_selected_repository_immutable_releases_organization: + openAPIDocKey: '200' + update_webhook: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: >- - #/paths/~1orgs~1{org}~1settings~1immutable-releases~1repositories~1{repository_id}/delete + $ref: '#/paths/~1orgs~1{org}~1hooks~1{hook_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + delete_webhook: + operation: + $ref: '#/paths/~1orgs~1{org}~1hooks~1{hook_id}/delete' response: mediaType: application/json openAPIDocKey: '204' - sqlVerbs: - select: - - $ref: >- - #/components/x-stackQL-resources/immutable_releases_repos/methods/get_immutable_releases_settings_repositories - insert: [] - update: [] - delete: - - $ref: >- - #/components/x-stackQL-resources/immutable_releases_repos/methods/disable_selected_repository_immutable_releases_organization - replace: - - $ref: >- - #/components/x-stackQL-resources/immutable_releases_repos/methods/enable_selected_repository_immutable_releases_organization - - $ref: >- - #/components/x-stackQL-resources/immutable_releases_repos/methods/set_immutable_releases_settings_repositories - orgs_for_user: - id: github.orgs.orgs_for_user - name: orgs_for_user - title: Orgs For User - methods: - list_for_authenticated_user: + ping_webhook: operation: - $ref: '#/paths/~1user~1orgs/get' + $ref: '#/paths/~1orgs~1{org}~1hooks~1{hook_id}~1pings/post' response: mediaType: application/json - openAPIDocKey: '200' + openAPIDocKey: '204' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/orgs_for_user/methods/list_for_authenticated_user - insert: [] - update: [] - delete: [] + - $ref: '#/components/x-stackQL-resources/webhooks/methods/get_webhook' + - $ref: '#/components/x-stackQL-resources/webhooks/methods/list_webhooks' + insert: + - $ref: '#/components/x-stackQL-resources/webhooks/methods/create_webhook' + update: + - $ref: '#/components/x-stackQL-resources/webhooks/methods/update_webhook' + delete: + - $ref: '#/components/x-stackQL-resources/webhooks/methods/delete_webhook' replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/packages.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/packages.yaml index 7a4e934..13052df 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/packages.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/packages.yaml @@ -3033,3 +3033,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/private_registries.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/private_registries.yaml index c4c32b6..e67faa6 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/private_registries.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/private_registries.yaml @@ -72,8 +72,9 @@ paths: For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." - For OIDC-based registries (`oidc_azure`, `oidc_aws`, or `oidc_jfrog`), - the `encrypted_value` and `key_id` fields should be omitted. + For OIDC-based registries (`oidc_azure`, `oidc_aws`, `oidc_jfrog`, + `oidc_cloudsmith`, or `oidc_gcp`), the `encrypted_value` and `key_id` + fields should be omitted. OAuth app tokens and personal access tokens (classic) need the @@ -181,7 +182,8 @@ paths: description: >- The authentication type for the private registry. Defaults to `token` if not specified. Use `oidc_azure`, `oidc_aws`, - or `oidc_jfrog` for OIDC authentication. + `oidc_jfrog`, `oidc_cloudsmith`, or `oidc_gcp` for OIDC + authentication. type: string enum: - token @@ -189,6 +191,8 @@ paths: - oidc_azure - oidc_aws - oidc_jfrog + - oidc_cloudsmith + - oidc_gcp tenant_id: description: >- The tenant ID of the Azure AD application. Required when @@ -227,14 +231,43 @@ paths: type: string audience: description: >- - The OIDC audience. Optional for `oidc_aws` and `oidc_jfrog` - auth types. + The OIDC audience. Optional for `oidc_aws`, `oidc_jfrog`, + and `oidc_gcp`, and required for `oidc_cloudsmith` auth + types. type: string identity_mapping_name: description: >- The JFrog identity mapping name. Optional for `oidc_jfrog` auth type. type: string + namespace: + description: >- + The Cloudsmith organization namespace. Required when + `auth_type` is `oidc_cloudsmith`. + type: string + service_slug: + description: >- + The Cloudsmith service account slug. Required when + `auth_type` is `oidc_cloudsmith`. + type: string + api_host: + description: >- + The Cloudsmith API host. Optional for `oidc_cloudsmith` auth + type. If omitted, `api.cloudsmith.io` is used by default. + type: string + workload_identity_provider: + description: >- + The full resource name of the GCP Workload Identity Provider + (e.g. + `projects//locations/global/workloadIdentityPools//providers/`). + Required when `auth_type` is `oidc_gcp`. + type: string + service_account: + description: >- + The GCP service account email to impersonate. Optional for + `oidc_gcp` auth type. If omitted, the federated token is + used directly (direct WIF). + type: string required: - registry_type - url @@ -275,6 +308,30 @@ paths: visibility: all tenant_id: 12345678-1234-1234-1234-123456789012 client_id: abcdef01-2345-6789-abcd-ef0123456789 + org-private-registry-with-oidc-cloudsmith: + summary: >- + Example of an OIDC private registry configuration using + Cloudsmith + value: + registry_type: npm_registry + url: https://npm.cloudsmith.io/my-org/my-repo/ + auth_type: oidc_cloudsmith + visibility: all + namespace: my-org + service_slug: my-service-account + audience: https://github.com/my-org + org-private-registry-with-oidc-gcp: + summary: >- + Example of an OIDC private registry configuration using Google + Cloud Artifact Registry + value: + registry_type: docker_registry + url: https://us-docker.pkg.dev/my-project/my-repo + auth_type: oidc_gcp + visibility: all + workload_identity_provider: >- + projects/123456789/locations/global/workloadIdentityPools/github-pool/providers/github-provider + service_account: dependabot@my-project.iam.gserviceaccount.com responses: '201': description: The organization private registry configuration @@ -402,8 +459,9 @@ paths: For more information, see "[Encrypting secrets for the REST API](https://docs.github.com/rest/guides/encrypting-secrets-for-the-rest-api)." - For OIDC-based registries (`oidc_azure`, `oidc_aws`, or `oidc_jfrog`), - the `encrypted_value` and `key_id` fields should be omitted. + For OIDC-based registries (`oidc_azure`, `oidc_aws`, `oidc_jfrog`, + `oidc_cloudsmith`, or `oidc_gcp`), the `encrypted_value` and `key_id` + fields should be omitted. OAuth app tokens and personal access tokens (classic) need the @@ -514,6 +572,8 @@ paths: - oidc_azure - oidc_aws - oidc_jfrog + - oidc_cloudsmith + - oidc_gcp tenant_id: description: >- The tenant ID of the Azure AD application. Required when @@ -552,14 +612,43 @@ paths: type: string audience: description: >- - The OIDC audience. Optional for `oidc_aws` and `oidc_jfrog` - auth types. + The OIDC audience. Optional for `oidc_aws`, `oidc_jfrog`, + and `oidc_gcp`, and required for `oidc_cloudsmith` auth + types. type: string identity_mapping_name: description: >- The JFrog identity mapping name. Optional for `oidc_jfrog` auth type. type: string + namespace: + description: >- + The Cloudsmith organization namespace. Required when + `auth_type` is `oidc_cloudsmith`. + type: string + service_slug: + description: >- + The Cloudsmith service account slug. Required when + `auth_type` is `oidc_cloudsmith`. + type: string + api_host: + description: >- + The Cloudsmith API host. Optional for `oidc_cloudsmith` auth + type. If omitted, `api.cloudsmith.io` is used by default. + type: string + workload_identity_provider: + description: >- + The full resource name of the GCP Workload Identity Provider + (e.g. + `projects//locations/global/workloadIdentityPools//providers/`). + Required when `auth_type` is `oidc_gcp`. + type: string + service_account: + description: >- + The GCP service account email to impersonate. Optional for + `oidc_gcp` auth type. If omitted, the federated token is + used directly (direct WIF). + type: string examples: secret-based-update: summary: Update a secret-based private registry @@ -658,6 +747,8 @@ components: - oidc_azure - oidc_aws - oidc_jfrog + - oidc_cloudsmith + - oidc_gcp type: string url: description: The URL of the private registry. @@ -717,6 +808,25 @@ components: identity_mapping_name: description: The JFrog identity mapping name. type: string + namespace: + description: The Cloudsmith organization namespace. + type: string + service_slug: + description: The Cloudsmith service account slug. + type: string + api_host: + description: The Cloudsmith API host. + type: string + workload_identity_provider: + description: >- + The full resource name of the GCP Workload Identity Provider (e.g. + `projects//locations/global/workloadIdentityPools//providers/`). + type: string + service_account: + description: >- + The GCP service account email to impersonate. If omitted, the + federated token is used directly (direct WIF). + type: string created_at: type: string format: date-time @@ -765,6 +875,8 @@ components: - oidc_azure - oidc_aws - oidc_jfrog + - oidc_cloudsmith + - oidc_gcp type: string url: description: The URL of the private registry. @@ -831,6 +943,25 @@ components: identity_mapping_name: description: The JFrog identity mapping name. type: string + namespace: + description: The Cloudsmith organization namespace. + type: string + service_slug: + description: The Cloudsmith service account slug. + type: string + api_host: + description: The Cloudsmith API host. + type: string + workload_identity_provider: + description: >- + The full resource name of the GCP Workload Identity Provider (e.g. + `projects//locations/global/workloadIdentityPools//providers/`). + type: string + service_account: + description: >- + The GCP service account email to impersonate. If omitted, the + federated token is used directly (direct WIF). + type: string created_at: type: string format: date-time @@ -1096,3 +1227,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/projects.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/projects.yaml index cbe0ec3..35dcb90 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/projects.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/projects.yaml @@ -793,6 +793,52 @@ paths: - 123 - 456 - 789 + sort_by: + type: array + description: >- + Sorting configuration for the view. Each element is a + two-element array of `[field_id, direction]` where + `direction` is `"asc"` or `"desc"`. Supports multiple sort + criteria applied in order. + items: + type: array + minItems: 2 + maxItems: 2 + items: + oneOf: + - type: integer + - type: string + example: + - - 123 + - asc + - - 456 + - desc + group_by: + type: array + description: >- + The field IDs to group items by (horizontal grouping). + Supports a single field. The field must support grouping; + fields such as `Title`, `Reviewers`, `Linked pull requests`, + `Sub-issues progress`, `Tracked by`, and `Tracks` cannot be + grouped on. + items: + type: integer + maxItems: 1 + example: + - 123 + vertical_group_by: + type: array + description: >- + The field IDs to use as columns in `board` layout (vertical + grouping). Supports a single field. The field must support + grouping; fields such as `Title`, `Reviewers`, `Linked pull + requests`, `Sub-issues progress`, `Tracked by`, and `Tracks` + cannot be grouped on. + items: + type: integer + maxItems: 1 + example: + - 456 required: - name - layout @@ -1054,6 +1100,52 @@ paths: - 123 - 456 - 789 + sort_by: + type: array + description: >- + Sorting configuration for the view. Each element is a + two-element array of `[field_id, direction]` where + `direction` is `"asc"` or `"desc"`. Supports multiple sort + criteria applied in order. + items: + type: array + minItems: 2 + maxItems: 2 + items: + oneOf: + - type: integer + - type: string + example: + - - 123 + - asc + - - 456 + - desc + group_by: + type: array + description: >- + The field IDs to group items by (horizontal grouping). + Supports a single field. The field must support grouping; + fields such as `Title`, `Reviewers`, `Linked pull requests`, + `Sub-issues progress`, `Tracked by`, and `Tracks` cannot be + grouped on. + items: + type: integer + maxItems: 1 + example: + - 123 + vertical_group_by: + type: array + description: >- + The field IDs to use as columns in `board` layout (vertical + grouping). Supports a single field. The field must support + grouping; fields such as `Title`, `Reviewers`, `Linked pull + requests`, `Sub-issues progress`, `Tracked by`, and `Tracks` + cannot be grouped on. + items: + type: integer + maxItems: 1 + example: + - 456 required: - name - layout @@ -2247,6 +2339,8 @@ components: - self auto_merge: $ref: '#/components/schemas/auto-merge' + stack: + $ref: '#/components/schemas/pull-request-stack' required: - assignee - closed_at @@ -2463,6 +2557,9 @@ components: projects-v2-field-iteration-configuration: type: object description: The configuration for iteration fields. + required: + - start_date + - duration properties: start_date: type: string @@ -2479,6 +2576,10 @@ components: items: type: object additionalProperties: false + required: + - title + - start_date + - duration properties: title: type: string @@ -3471,6 +3572,8 @@ components: $ref: '#/components/schemas/author-association' auto_merge: $ref: '#/components/schemas/auto-merge' + stack: + $ref: '#/components/schemas/pull-request-stack' draft: description: Indicates whether or not the pull request is a draft. example: false @@ -3825,7 +3928,9 @@ components: nullable: true issue-type: title: Issue Type - description: The type of issue. + description: >- + The type assigned to the issue. This is only present for issues in + repositories where issue types are supported. type: object nullable: true properties: @@ -4808,6 +4913,8 @@ components: $ref: '#/components/schemas/reaction-rollup' pin: $ref: '#/components/schemas/nullable-pinned-issue-comment' + minimized: + $ref: '#/components/schemas/nullable-issue-comment-minimized' required: - id - node_id @@ -4845,6 +4952,10 @@ components: type: integer format: int64 example: 1 + issue_field_name: + description: The human-readable name of the issue field. + type: string + example: Priority node_id: type: string example: IFT_GDKND @@ -4854,6 +4965,7 @@ components: enum: - text - single_select + - multi_select - number - date example: text @@ -4886,6 +4998,30 @@ components: - name - color nullable: true + multi_select_options: + description: Details about the selected options + type: array + items: + 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 @@ -4952,6 +5088,20 @@ components: enum: - enterprise - organization + access_source: + description: >- + How the team's access to the repository was granted. This property + is only + + present when the team is returned in a repository context, such as + + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs @@ -5010,6 +5160,40 @@ components: - commit_title - commit_message nullable: true + pull-request-stack: + title: Pull Request Stack + description: The stack information associated with a pull request. + type: object + properties: + base: + type: object + properties: + ref: + type: string + description: The base ref of the stack this pull request belongs to. + sha: + type: string + description: The base SHA of the stack this pull request belongs to. + required: + - ref + - sha + size: + type: integer + description: The total number of pull requests in the stack. + position: + type: integer + description: >- + The one-based position of this pull request within the stack, where + 1 is the bottom of the stack. + id: + type: integer + description: The ID of the stack that this pull request belongs to. + number: + type: integer + description: The number of the stack that this pull request belongs to. + required: + - base + nullable: true nullable-license-simple: title: License Simple description: License Simple @@ -5113,6 +5297,19 @@ components: - pinned_at - pinned_by nullable: true + nullable-issue-comment-minimized: + title: Minimized Issue Comment + description: Details about why an issue comment was minimized. + type: object + properties: + reason: + description: The reason the comment was minimized. + type: string + nullable: true + example: low-quality + required: + - reason + nullable: true nullable-team-simple: title: Team Simple description: >- @@ -5590,17 +5787,13 @@ components: name: Sprint data_type: iteration iteration_configuration: - start_day: 1 + start_date: '2022-07-01' duration: 14 iterations: - - title: - raw: Sprint 1 - html: Sprint 1 + - title: Sprint 1 start_date: '2022-07-01' duration: 14 - - title: - raw: Sprint 2 - html: Sprint 2 + - title: Sprint 2 start_date: '2022-07-15' duration: 14 projects-v2-field-text: @@ -6814,3 +7007,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/pulls.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/pulls.yaml index 6b70ef9..e54ff17 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/pulls.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/pulls.yaml @@ -7,42 +7,21 @@ paths: /repos/{owner}/{repo}/pulls: get: summary: List pull requests - description: >- + description: |- 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) - + 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)." - 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`. + - **`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`. tags: - pulls operationId: pulls/list @@ -64,10 +43,7 @@ paths: - 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`. + 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: @@ -79,11 +55,7 @@ paths: schema: type: string - 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. + 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: @@ -95,9 +67,7 @@ paths: - long-running default: created - name: direction - description: >- - The direction of the sort. Default: `desc` when sort is `created` or - sort is not specified, otherwise `asc`. + description: 'The direction of the sort. Default: `desc` when sort is `created` or sort is not specified, otherwise `asc`.' in: query required: false schema: @@ -134,49 +104,19 @@ paths: x-stackQL-resource: pulls 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. - - - 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. - - - 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)." + 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. + 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. - 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/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`. + - **`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`. tags: - pulls operationId: pulls/create @@ -195,56 +135,32 @@ paths: properties: title: type: string - description: >- - The title of the new pull request. Required unless `issue` - is specified. + 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`. + 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. + 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. + 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. + 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. + 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. + 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 @@ -284,38 +200,22 @@ paths: /repos/{owner}/{repo}/pulls/comments: get: summary: List review comments in a repository - description: >- + description: |- 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)." - 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`. + - **`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`. 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 + url: https://docs.github.com/rest/pulls/comments#list-review-comments-in-a-repository parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -364,36 +264,21 @@ paths: /repos/{owner}/{repo}/pulls/comments/{comment_id}: get: summary: Get a review comment for a pull request - description: >- + description: |- 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)." - 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`. + - **`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`. 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 + url: https://docs.github.com/rest/pulls/comments#get-a-review-comment-for-a-pull-request parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -418,36 +303,21 @@ paths: x-stackQL-resource: comments patch: summary: Update a review comment for a pull request - description: >- + description: |- 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)." - 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`. + - **`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`. 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 + url: https://docs.github.com/rest/pulls/comments#update-a-review-comment-for-a-pull-request parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -492,8 +362,7 @@ paths: 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 + url: https://docs.github.com/rest/pulls/comments#delete-a-review-comment-for-a-pull-request parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -512,91 +381,30 @@ paths: /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. - + 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. Lists details of a pull request by providing its number. + 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)". - 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://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. + 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: - 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 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. - - **`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. + 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.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. + - **`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. tags: - pulls operationId: pulls/get @@ -609,10 +417,7 @@ paths: - $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. + 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: @@ -638,40 +443,17 @@ paths: x-stackQL-resource: 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. - - - 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. - + 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. - 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)." + 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. + 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`. + - **`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`. tags: - pulls operationId: pulls/update @@ -703,17 +485,10 @@ paths: - 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. + 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://docs.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/) - the pull request. + 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: @@ -744,39 +519,22 @@ paths: /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 - + description: |- + 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)." - 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`. + - **`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`. 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 + url: https://docs.github.com/rest/pulls/comments#list-review-comments-on-a-pull-request parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -817,58 +575,28 @@ paths: x-stackQL-resource: comments 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)." - - - 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. - - - The `position` parameter is closing down. If you use `position`, the - `line`, `side`, `start_line`, and `start_side` parameters are not - required. - - - 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)." + 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)." + 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. - 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 `position` parameter is closing down. If you use `position`, the `line`, `side`, `start_line`, and `start_side` parameters are not required. + 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)." - - **`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. + 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.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`. + - **`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`. 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 + url: https://docs.github.com/rest/pulls/comments#create-a-review-comment-for-a-pull-request parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -885,73 +613,31 @@ paths: 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`. + 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. + 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. + 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. + 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. + 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. + 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 @@ -959,12 +645,7 @@ paths: 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. + 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. @@ -995,12 +676,10 @@ paths: $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 + $ref: '#/components/examples/pull-request-review-comment-example-for-a-multi-line-comment' headers: Location: - example: >- - https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + example: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 schema: type: string '403': @@ -1017,49 +696,24 @@ paths: /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. - - - 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)." - + 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. - - **`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. + 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)." - - **`application/vnd.github-commitcomment.text+json`**: Returns a text - only representation of the markdown body. Response will include - `body_text`. + 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.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`. + - **`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`. 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 + url: https://docs.github.com/rest/pulls/comments#create-a-reply-for-a-review-comment parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -1093,8 +747,7 @@ paths: $ref: '#/components/examples/pull-request-review-comment' headers: Location: - example: >- - https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + example: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 schema: type: string '404': @@ -1109,40 +762,23 @@ paths: /repos/{owner}/{repo}/pulls/{pull_number}/commits: get: summary: List commits on a pull request - description: >- + 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/commits/commits#list-commits) - + 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)." - 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`. + - **`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`. 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 + url: https://docs.github.com/rest/pulls/pulls#list-commits-on-a-pull-request parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -1173,34 +809,18 @@ paths: /repos/{owner}/{repo}/pulls/{pull_number}/files: get: summary: List pull requests files - description: >- + description: |- 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. - > 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)." - + 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`. + - **`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`. tags: - pulls operationId: pulls/list-files @@ -1243,17 +863,13 @@ paths: /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. + 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 + url: https://docs.github.com/rest/pulls/pulls#check-if-a-pull-request-has-been-merged parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -1271,16 +887,9 @@ paths: x-stackQL-resource: pulls put: summary: Merge a pull request - description: >- + description: |- 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)." + 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)." tags: - pulls operationId: pulls/merge @@ -1329,8 +938,7 @@ paths: $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 + $ref: '#/components/examples/pull-request-merge-result-response-if-merge-was-successful' '403': $ref: '#/components/responses/forbidden' '404': @@ -1374,23 +982,230 @@ paths: category: pulls subcategory: pulls x-stackQL-resource: pulls + /repos/{owner}/{repo}/pulls/{pull_number}/merge-async: + put: + summary: Merge a pull request asynchronously + description: |- + Merges a pull request into the base branch in the background. Merging in this way allows certain types of errors to be retried, and avoids the risk of timeouts for particularly complex merges. + + This is the required method for merging stacked PRs, but also supports unstacked PRs. When using this endpoint to merge a stacked pull request, all pull requests in the stack up to and including the requested PR will be merged into the base branch. + + The response includes a UUID that can be used to fetch the result of the merge. If another asynchronous merge request has already been made for this pull request, the UUID of that request will be returned instead with a 409 response status to indicate that the merge options may be different from those that were requested. If there isn't an existing asynchronous merge request, a 202 response status is used. + + If the pull request is already merged, the merge commit OID will be returned immediately with a 200 status. + + If the pull request cannot be merged (e.g. because it is closed, or still a draft) this result will be returned immediately with a 400 response status. Branch protection rules and repository rules are not run at this stage, only basic pull request state checks are performed. + tags: + - pulls + operationId: pulls/merge-async + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/pulls#merge-a-pull-request-asynchronously + x-github: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: pulls + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $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. If not provided, the current head of the PR at the time of the request will be used; if the PR is pushed in between the merge being requested and being executed, the merge will be cancelled. + merge_method: + type: string + description: The merge method to use. + enum: + - merge + - squash + - rebase + merge_action: + type: string + description: The action that will be taken to merge the pull request. `direct_merge` merges the pull request directly without using a merge queue; `merge_queue` adds the pull request to a merge queue; `default` selects the most appropriate option. + enum: + - default + - direct_merge + - merge_queue + examples: + default: + value: + commit_title: Fix race condition + commit_message: Avoids a race by trying to read the file and handling the exception if it does not exist. + sha: 6358cd125586d9def8c3e5943f23506202da81cc + merge_method: squash + merge_action: default + responses: + '200': + description: if the pull request was already merged, or is already in a merge queue + content: + application/json: + schema: + $ref: '#/components/schemas/pull-request-merge-async-result' + examples: + response-if-pull-request-was-already-merged: + summary: Already merged + value: + status: merged + details: + message: Pull request is already merged. + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + response-if-pull-request-is-already-enqueued: + summary: Already enqueued + value: + status: enqueued + details: + message: Pull request is already in the merge queue. + '202': + description: if the merge request was accepted and will run in the background + content: + application/json: + schema: + $ref: '#/components/schemas/pull-request-merge-async-result' + examples: + response-if-merge-request-was-accepted: + summary: Request accepted + value: + status: pending + details: + message: Merge request enqueued. + uuid: 630b9d5e-3f2a-4f7e-8b0c-2d5f9a8c1e42 + merge_method: merge + merge_action: default + expected_head_sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + '400': + description: if the pull request is not ready to be merged, e.g. because it is closed + content: + application/json: + schema: + $ref: '#/components/schemas/pull-request-merge-async-result' + examples: + response-if-pull-request-is-not-ready-to-be-merged: + value: + status: failed + details: + message: Pull request is closed. + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '409': + description: if there is an existing merge request already enqueued for this pull request + content: + application/json: + schema: + $ref: '#/components/schemas/pull-request-merge-async-result' + examples: + response-if-a-merge-request-already-exists: + value: + status: pending + details: + message: A merge request already exists for this pull request. + uuid: 630b9d5e-3f2a-4f7e-8b0c-2d5f9a8c1e42 + merge_method: squash + merge_action: default + expected_head_sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + '422': + $ref: '#/components/responses/validation_failed' + x-stackQL-resource: pulls + /repos/{owner}/{repo}/pulls/{pull_number}/merge-async/{uuid}: + get: + summary: Get the result of an asynchronous merge + description: |- + Fetches the current result of an asynchronous merge request, identified by the UUID that was returned when the merge was requested. + + While the merge is still queued, the response includes the UUID, merge method, and expected head SHA of the request. Once the merge has completed, the response reports whether it was merged, including the merge commit OID on success or a message describing why it could not be merged on failure. + + The result of an asynchronous merge request is retained for 24 hours after its most recent update. After this window the request expires and this endpoint returns a `404` response for its UUID. + tags: + - pulls + operationId: pulls/get-merge-async-result + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/pulls#get-the-result-of-an-asynchronous-merge + x-github: + triggersNotification: false + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: pulls + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/pull-number' + - name: uuid + description: The UUID of the asynchronous merge request, as returned when the merge was requested. + in: path + required: true + schema: + type: string + responses: + '200': + description: the current result of the asynchronous merge request + content: + application/json: + schema: + $ref: '#/components/schemas/pull-request-merge-async-result' + examples: + response-if-the-merge-is-still-queued: + summary: Still queued + value: + status: pending + details: + message: Merge request is in progress. + uuid: 630b9d5e-3f2a-4f7e-8b0c-2d5f9a8c1e42 + merge_method: merge + merge_action: default + expected_head_sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + response-if-the-pull-request-is-enqueued: + summary: Enqueued in the merge queue + value: + status: enqueued + details: + message: Pull request is in the merge queue. + response-if-the-merge-succeeded: + summary: Merge succeeded + value: + status: merged + details: + message: Pull request was merged. + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + response-if-the-merge-failed: + summary: Merge failed + value: + status: failed + details: + message: 'Merge conflict: the pull request could not be merged.' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-stackQL-resource: 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. + 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 + url: https://docs.github.com/rest/pulls/review-requests#get-all-requested-reviewers-for-a-pull-request parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -1416,24 +1231,15 @@ paths: x-stackQL-resource: review_requests post: summary: Request reviewers for a pull request - description: >- - 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)." + description: |- + 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)." 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 + url: https://docs.github.com/rest/pulls/review-requests#request-reviewers-for-a-pull-request parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -1490,16 +1296,13 @@ paths: x-stackQL-resource: review_requests 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. + 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 + url: https://docs.github.com/rest/pulls/review-requests#remove-requested-reviewers-from-a-pull-request parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -1553,37 +1356,21 @@ paths: /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. - - - 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)." - + description: |- + Lists all reviews for a specified pull request. The list of reviews returns in chronological order. - - **`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. + 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.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`. + - **`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`. 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 + url: https://docs.github.com/rest/pulls/reviews#list-reviews-for-a-pull-request parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -1613,70 +1400,30 @@ paths: x-stackQL-resource: reviews post: summary: Create a review for a pull request - description: >- + description: |- 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)." - 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 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)." - + 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. 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. - > 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. - - - 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. + 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. - - **`application/vnd.github-commitcomment.text+json`**: Returns a text - only representation of the markdown body. Response will include - `body_text`. + 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.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`. + - **`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`. 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 + url: https://docs.github.com/rest/pulls/reviews#create-a-review-for-a-pull-request parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -1690,57 +1437,29 @@ paths: 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. + 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. + 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. + 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. + 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. + 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. + 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. @@ -1763,9 +1482,7 @@ paths: default: value: commit_id: ecdd80bb57125d7ba9641ffaa4d7d2c19d3f3091 - body: >- - This is close to perfect! Please address the suggested - inline change. + body: This is close to perfect! Please address the suggested inline change. event: REQUEST_CHANGES comments: - path: file.md @@ -1795,36 +1512,21 @@ paths: /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}: get: summary: Get a review for a pull request - description: >- + description: |- 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)." - 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`. + - **`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`. 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 + url: https://docs.github.com/rest/pulls/reviews#get-a-review-for-a-pull-request parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -1850,36 +1552,21 @@ paths: x-stackQL-resource: reviews put: summary: Update a review for a pull request - description: >- + description: |- 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)." - 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`. + - **`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`. 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 + url: https://docs.github.com/rest/pulls/reviews#update-a-review-for-a-pull-request parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -1900,9 +1587,7 @@ paths: examples: default: value: - body: >- - This is close to perfect! Please address the suggested - inline change. And add more about this. + body: This is close to perfect! Please address the suggested inline change. And add more about this. responses: '200': description: Response @@ -1923,37 +1608,21 @@ paths: x-stackQL-resource: reviews 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. - - - 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`. + description: |- + Deletes a pull request review that has not been submitted. Submitted reviews cannot be deleted. - - **`application/vnd.github-commitcomment.html+json`**: Returns HTML - rendered from the body's markdown. Response will include `body_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/vnd.github-commitcomment.full+json`**: Returns raw, - text, and HTML representations. Response will include `body`, - `body_text`, and `body_html`. + - **`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`. 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 + url: https://docs.github.com/rest/pulls/reviews#delete-a-pending-review-for-a-pull-request parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -1982,36 +1651,21 @@ paths: /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments: get: summary: List comments for a pull request review - description: >- + description: |- 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)." - 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`. + - **`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`. 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 + url: https://docs.github.com/rest/pulls/reviews#list-comments-for-a-pull-request-review parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -2045,44 +1699,24 @@ paths: /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals: put: summary: Dismiss a review for a pull request - description: >- + description: |- Dismisses a specified review on a pull request. - > [!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. - > 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)." + 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`. + - **`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`. 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 + url: https://docs.github.com/rest/pulls/reviews#dismiss-a-review-for-a-pull-request parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -2133,39 +1767,21 @@ paths: /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)." - - - 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. + 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)." - - **`application/vnd.github-commitcomment.text+json`**: Returns a text - only representation of the markdown body. Response will include - `body_text`. + 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.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`. + - **`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`. 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 + url: https://docs.github.com/rest/pulls/reviews#submit-a-review-for-a-pull-request parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' @@ -2183,13 +1799,7 @@ paths: 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. + 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 @@ -2226,12 +1836,9 @@ paths: /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. - - Note: If making a request on behalf of a GitHub App you must also have - permissions to write the contents of the head repository. + description: |- + 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. tags: - pulls operationId: pulls/update-branch @@ -2252,15 +1859,7 @@ paths: 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. + 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.' examples: default: value: @@ -2292,6 +1891,1089 @@ paths: category: pulls subcategory: pulls x-stackQL-resource: pulls + /repos/{owner}/{repo}/stacks: + get: + summary: List pull request stacks + description: Lists pull request stacks in a repository. + tags: + - pulls + operationId: pull-request-stacks/list + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/stacks#list-pull-request-stacks + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - name: pull_request + description: Filter to the stack containing this repository pull request number. + in: query + required: false + schema: + type: integer + - $ref: '#/components/parameters/per-page' + - $ref: '#/components/parameters/page' + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/pull-request-stack-minimal' + examples: + default: + value: + - id: 9876543 + number: 42 + node_id: S_kwDOABCDEF4AAAAA + url: https://api.github.com/repos/octocat/hello-world/stacks/42 + base: + ref: main + pull_requests: + - number: 101 + state: open + draft: false + merged_at: null + head: + ref: user-model + sha: aaa1111aaa1111aaa1111aaa1111aaa1111aaa11 + - number: 102 + state: open + draft: false + merged_at: null + head: + ref: user-api + sha: bbb2222bbb2222bbb2222bbb2222bbb2222bbb22 + open: true + created_at: '2026-04-15T10:00:00Z' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: stacks + x-stackQL-resource: stacks + post: + summary: Create a pull request stack + description: |- + Creates a stack from an ordered list of pull request numbers. Provide the pull + request numbers from the bottom of the stack to the top. Each pull request's + base ref must match the previous pull request's head ref. + tags: + - pulls + operationId: pull-request-stacks/create + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/stacks#create-a-pull-request-stack + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - pull_requests + properties: + pull_requests: + type: array + description: An ordered list of pull request numbers forming the stack from bottom to top. + items: + type: integer + minItems: 2 + maxItems: 100 + examples: + default: + value: + pull_requests: + - 101 + - 102 + - 103 + responses: + '201': + description: Response + content: + application/json: + schema: + type: object + required: + - id + - number + - node_id + - url + - base + - open + - created_at + - pull_requests + properties: + id: + type: integer + number: + type: integer + node_id: + type: string + url: + type: string + format: uri + base: + type: object + required: + - ref + properties: + ref: + type: string + open: + type: boolean + description: Whether the stack has any open pull request. False when all pull requests are merged or closed. + created_at: + type: string + format: date-time + pull_requests: + type: array + items: + $ref: '#/components/schemas/pull-request-stack-pull-request' + examples: + default: + value: + id: 9876543 + number: 42 + node_id: S_kwDOABCDEF4AAAAA + url: https://api.github.com/repos/octocat/hello-world/stacks/42 + base: + ref: main + open: true + created_at: '2026-04-15T10:00:00Z' + pull_requests: + - id: 100001 + node_id: PR_kwDOABCDEF4AAAAA + title: Add user model + state: open + merged_at: null + draft: false + html_url: https://github.com/octocat/hello-world/pull/101 + 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 + user_view_type: public + number: 101 + url: https://api.github.com/repos/octocat/hello-world/pulls/101 + head: + ref: user-model + sha: aaa1111aaa1111aaa1111aaa1111aaa1111aaa11 + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + base: + ref: main + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + - id: 100002 + node_id: PR_kwDOABCDEF4AAAAB + title: Add user API + state: open + merged_at: null + draft: true + html_url: https://github.com/octocat/hello-world/pull/102 + 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 + user_view_type: public + number: 102 + url: https://api.github.com/repos/octocat/hello-world/pulls/102 + head: + ref: user-api + sha: bbb2222bbb2222bbb2222bbb2222bbb2222bbb22 + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + base: + ref: user-model + sha: aaa1111aaa1111aaa1111aaa1111aaa1111aaa11 + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + '404': + $ref: '#/components/responses/not_found' + '422': + description: |- + Validation failed. Returned when the request references pull requests that + don't exist in the repository, or when the pull requests can't form a + valid stack. + content: + application/json: + schema: + 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: + oneOf: + - type: string + - type: integer + examples: + missing_pull_requests: + summary: One or more pull request numbers don't exist in the repository + value: + message: Validation Failed + documentation_url: https://docs.github.com/rest/pulls/stacks#create-a-pull-request-stack + errors: + - resource: Stack + field: pull_requests + code: missing + value: + - 123 + not_a_linear_stack: + summary: The pull requests don't form a linear stack + value: + message: Pull requests must form a stack, where each PR's base ref is the previous PR's head ref + documentation_url: https://docs.github.com/rest/pulls/stacks#create-a-pull-request-stack + already_stacked: + summary: A pull request already belongs to a stack + value: + message: 'Pull request #123 is already part of a stack' + documentation_url: https://docs.github.com/rest/pulls/stacks#create-a-pull-request-stack + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: stacks + x-stackQL-resource: stacks + /repos/{owner}/{repo}/stacks/{stack_number}: + get: + summary: Get a pull request stack + description: Gets a pull request stack by providing its stack number. + tags: + - pulls + operationId: pull-request-stacks/get + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/stacks#get-a-pull-request-stack + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - name: stack_number + description: The number that identifies the pull request stack. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - id + - number + - node_id + - url + - base + - open + - created_at + - pull_requests + properties: + id: + type: integer + number: + type: integer + node_id: + type: string + url: + type: string + format: uri + base: + type: object + required: + - ref + properties: + ref: + type: string + open: + type: boolean + description: Whether the stack has any open pull request. False when all pull requests are merged or closed. + created_at: + type: string + format: date-time + pull_requests: + type: array + items: + $ref: '#/components/schemas/pull-request-stack-pull-request' + examples: + default: + value: + id: 9876543 + number: 42 + node_id: S_kwDOABCDEF4AAAAA + url: https://api.github.com/repos/octocat/hello-world/stacks/42 + base: + ref: main + open: true + created_at: '2026-04-15T10:00:00Z' + pull_requests: + - id: 100001 + node_id: PR_kwDOABCDEF4AAAAA + title: Add user model + state: open + merged_at: null + draft: false + html_url: https://github.com/octocat/hello-world/pull/101 + 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 + user_view_type: public + number: 101 + url: https://api.github.com/repos/octocat/hello-world/pulls/101 + head: + ref: user-model + sha: aaa1111aaa1111aaa1111aaa1111aaa1111aaa11 + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + base: + ref: main + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + - id: 100002 + node_id: PR_kwDOABCDEF4AAAAB + title: Add user API + state: open + merged_at: null + draft: true + html_url: https://github.com/octocat/hello-world/pull/102 + 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 + user_view_type: public + number: 102 + url: https://api.github.com/repos/octocat/hello-world/pulls/102 + head: + ref: user-api + sha: bbb2222bbb2222bbb2222bbb2222bbb2222bbb22 + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + base: + ref: user-model + sha: aaa1111aaa1111aaa1111aaa1111aaa1111aaa11 + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + '404': + $ref: '#/components/responses/not_found' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: stacks + x-stackQL-resource: stacks + /repos/{owner}/{repo}/stacks/{stack_number}/add: + post: + summary: Add pull requests to a pull request stack + description: |- + Appends an ordered list of pull request numbers onto the top of an existing + stack. Provide only the pull requests you want to add, from the current top of + the stack upward. The first new pull request's base ref must match the current + top pull request's head ref. + tags: + - pulls + operationId: pull-request-stacks/add + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/stacks#add-pull-requests-to-a-pull-request-stack + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - name: stack_number + description: The number that identifies the pull request stack. + in: path + required: true + schema: + type: integer + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - pull_requests + properties: + pull_requests: + type: array + description: An ordered list of pull request numbers to append to the stack, from the current top upward. + items: + type: integer + minItems: 1 + maxItems: 100 + examples: + default: + value: + pull_requests: + - 104 + - 102 + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - id + - number + - node_id + - url + - base + - open + - created_at + - pull_requests + properties: + id: + type: integer + number: + type: integer + node_id: + type: string + url: + type: string + format: uri + base: + type: object + required: + - ref + properties: + ref: + type: string + open: + type: boolean + description: Whether the stack has any open pull request. False when all pull requests are merged or closed. + created_at: + type: string + format: date-time + pull_requests: + type: array + items: + $ref: '#/components/schemas/pull-request-stack-pull-request' + examples: + default: + value: + id: 9876543 + number: 42 + node_id: S_kwDOABCDEF4AAAAA + url: https://api.github.com/repos/octocat/hello-world/stacks/42 + base: + ref: main + open: true + created_at: '2026-04-15T10:00:00Z' + pull_requests: + - id: 100001 + node_id: PR_kwDOABCDEF4AAAAA + title: Add user model + state: open + merged_at: null + draft: false + html_url: https://github.com/octocat/hello-world/pull/101 + 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 + user_view_type: public + number: 101 + url: https://api.github.com/repos/octocat/hello-world/pulls/101 + head: + ref: user-model + sha: aaa1111aaa1111aaa1111aaa1111aaa1111aaa11 + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + base: + ref: main + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + - id: 100002 + node_id: PR_kwDOABCDEF4AAAAB + title: Add user API + state: open + merged_at: null + draft: true + html_url: https://github.com/octocat/hello-world/pull/102 + 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 + user_view_type: public + number: 102 + url: https://api.github.com/repos/octocat/hello-world/pulls/102 + head: + ref: user-api + sha: bbb2222bbb2222bbb2222bbb2222bbb2222bbb22 + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + base: + ref: user-model + sha: aaa1111aaa1111aaa1111aaa1111aaa1111aaa11 + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + '404': + $ref: '#/components/responses/not_found' + '409': + description: Conflict. Returned when the stack is being modified by another request. + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + examples: + being_modified: + summary: Another request is currently modifying the stack + value: + message: Stack is currently being modified + documentation_url: https://docs.github.com/rest/pulls/stacks#add-pull-requests-to-a-pull-request-stack + status: '409' + '422': + description: |- + Validation failed. Returned when the request references pull requests that + don't exist in the repository, or when the pull requests can't be appended + to the stack. + content: + application/json: + schema: + 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: + oneOf: + - type: string + - type: integer + examples: + missing_pull_requests: + summary: One or more pull request numbers don't exist in the repository + value: + message: Validation Failed + documentation_url: https://docs.github.com/rest/pulls/stacks#add-pull-requests-to-a-pull-request-stack + errors: + - resource: Stack + field: pull_requests + code: missing + value: + - 123 + not_a_linear_stack: + summary: The pull requests don't continue the stack linearly + value: + message: Pull requests must form a stack, where each PR's base ref is the previous PR's head ref + documentation_url: https://docs.github.com/rest/pulls/stacks#add-pull-requests-to-a-pull-request-stack + already_stacked: + summary: A pull request already belongs to a stack + value: + message: 'Pull request #123 is already part of a stack' + documentation_url: https://docs.github.com/rest/pulls/stacks#add-pull-requests-to-a-pull-request-stack + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: stacks + x-stackQL-resource: stacks + /repos/{owner}/{repo}/stacks/{stack_number}/unstack: + post: + summary: Remove pull requests from a pull request stack + description: |- + Removes the unmerged pull requests from a stack. Pull requests that cannot be + unstacked (for example, those that are queued for merge) are left in place. When pull requests remain in the stack, the updated + stack is returned with a `200`. When no pull requests remain, the stack is + dissolved and a `204` is returned. + tags: + - pulls + operationId: pull-request-stacks/unstack + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/stacks#remove-pull-requests-from-a-pull-request-stack + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - name: stack_number + description: The number that identifies the pull request stack. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - id + - number + - node_id + - url + - base + - open + - created_at + - pull_requests + properties: + id: + type: integer + number: + type: integer + node_id: + type: string + url: + type: string + format: uri + base: + type: object + required: + - ref + properties: + ref: + type: string + open: + type: boolean + description: Whether the stack has any open pull request. False when all pull requests are merged or closed. + created_at: + type: string + format: date-time + pull_requests: + type: array + items: + $ref: '#/components/schemas/pull-request-stack-pull-request' + examples: + default: + value: + id: 9876543 + number: 42 + node_id: S_kwDOABCDEF4AAAAA + url: https://api.github.com/repos/octocat/hello-world/stacks/42 + base: + ref: main + open: true + created_at: '2026-04-15T10:00:00Z' + pull_requests: + - id: 100001 + node_id: PR_kwDOABCDEF4AAAAA + title: Add user model + state: open + merged_at: null + draft: false + html_url: https://github.com/octocat/hello-world/pull/101 + 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 + user_view_type: public + number: 101 + url: https://api.github.com/repos/octocat/hello-world/pulls/101 + head: + ref: user-model + sha: aaa1111aaa1111aaa1111aaa1111aaa1111aaa11 + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + base: + ref: main + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + '204': + $ref: '#/components/responses/no_content' + '404': + $ref: '#/components/responses/not_found' + '409': + description: Conflict. Returned when the stack is being modified by another request. + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + examples: + being_modified: + summary: Another request is currently modifying the stack + value: + message: Stack is currently being modified + documentation_url: https://docs.github.com/rest/pulls/stacks#remove-pull-requests-from-a-pull-request-stack + status: '409' + '422': + description: |- + Validation failed. Returned when the stack can't be unstacked because every + pull request in it is locked and cannot be removed. + content: + application/json: + schema: + $ref: '#/components/schemas/validation-error' + examples: + cannot_be_removed: + summary: Every pull request in the stack is locked and can't be removed + value: + message: Pull requests in this stack cannot be removed + documentation_url: https://docs.github.com/rest/pulls/stacks#remove-pull-requests-from-a-pull-request-stack + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: stacks + x-stackQL-resource: stacks + /graphql?resource=review_threads: + post: + operationId: graphql/pulls/review_threads/list + summary: Review Threads + description: Review comment threads on a pull request with their resolved / outdated state and the comments in each thread. Backed by the GitHub GraphQL API (`pullRequest.reviewThreads`); the REST API does not expose thread resolution. + x-stackQL-graphQL: + url: https://api.github.com/graphql + httpVerb: POST + responseSelection: + jsonPath: $.data.repository.pullRequest.reviewThreads.nodes[*] + cursor: + strategy: page_info + jsonPath: $.data.repository.pullRequest.reviewThreads.pageInfo.endCursor + terminateOnJsonPath: $.data.repository.pullRequest.reviewThreads.pageInfo.hasNextPage + query: | + query { + repository(owner: "{{ .owner }}", name: "{{ .repo }}") { + pullRequest(number: {{ .pull_number }}) { + reviewThreads(first: 100{{ .cursor }}) { + pageInfo { endCursor hasNextPage } + nodes { + id + is_resolved: isResolved + is_outdated: isOutdated + is_collapsed: isCollapsed + path + line + start_line: startLine + diff_side: diffSide + subject_type: subjectType + resolved_by: resolvedBy { login } + comments(first: 100) { + total_count: totalCount + nodes { + id + url + body + created_at: createdAt + author { login } + } + } + } + } + } + } + } + x-stackql-protocol: graphql + externalDocs: + description: GitHub GraphQL API documentation + url: https://docs.github.com/graphql + parameters: + - name: owner + in: query + required: true + schema: + type: string + description: The account owner of the repository. + - name: repo + in: query + required: true + schema: + type: string + description: The name of the repository. + - name: pull_number + in: query + required: true + schema: + type: integer + description: The number that identifies the pull request. + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + repository: + type: object + properties: + pullRequest: + type: object + properties: + reviewThreads: + type: object + properties: + nodes: + type: array + items: + type: object + properties: + id: + type: string + description: The GraphQL node ID of the thread. + is_resolved: + type: boolean + is_outdated: + type: boolean + description: Whether the thread is on a line that has since changed. + is_collapsed: + type: boolean + path: + type: string + description: The file the thread is attached to. + line: + type: integer + description: The line in the diff the thread is attached to. + start_line: + type: integer + description: The first line of a multi-line comment range. + diff_side: + type: string + description: LEFT or RIGHT. + subject_type: + type: string + description: LINE or FILE. + resolved_by: + type: object + description: The user who resolved the thread (`login`). + properties: + login: + type: string + comments: + type: object + description: The comments in the thread (`total_count`, `nodes[]` with `id`, `url`, `body`, `created_at`, `author.login`). + properties: + total_count: + type: integer + nodes: + type: array + items: + type: object + properties: + id: + type: string + url: + type: string + body: + type: string + created_at: + type: string + format: date-time + author: + type: object + properties: + login: + type: string + pageInfo: + type: object + properties: + endCursor: + type: string + hasNextPage: + type: boolean components: schemas: pull-request-simple: @@ -2336,18 +3018,15 @@ components: 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} + 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 + 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 + example: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e number: type: integer example: 1347 @@ -2506,6 +3185,8 @@ components: $ref: '#/components/schemas/author-association' auto_merge: $ref: '#/components/schemas/auto-merge' + stack: + $ref: '#/components/schemas/pull-request-stack' draft: description: Indicates whether or not the pull request is a draft. example: false @@ -2619,11 +3300,7 @@ components: 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. + 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 @@ -2662,18 +3339,15 @@ components: 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} + 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 + 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 + example: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e number: description: Number uniquely identifying the pull request within its repository. example: 42 @@ -2839,6 +3513,8 @@ components: $ref: '#/components/schemas/author-association' auto_merge: $ref: '#/components/schemas/auto-merge' + stack: + $ref: '#/components/schemas/pull-request-stack' draft: description: Indicates whether or not the pull request is a draft. example: false @@ -3021,9 +3697,7 @@ components: version: '2026-03-10' 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. + description: Pull Request Review Comments are comments on a portion of the Pull Request's diff. type: object properties: url: @@ -3054,15 +3728,11 @@ components: 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. + 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. + 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: @@ -3112,8 +3782,7 @@ components: href: type: string format: uri - example: >- - https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + example: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 required: - href html: @@ -3122,8 +3791,7 @@ components: href: type: string format: uri - example: >- - https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 + example: https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 required: - href pull_request: @@ -3158,30 +3826,22 @@ components: 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 + 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 + 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 + 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. + description: The level at which the comment is targeted, can be a diff line or a file. type: string enum: - line @@ -3219,8 +3879,7 @@ components: url: type: string format: uri - example: >- - https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + example: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e sha: type: string example: 6dcb09b5b57875f334f61aebed695e2e4193db5e @@ -3230,21 +3889,18 @@ components: html_url: type: string format: uri - example: >- - https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e + 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 + 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 + example: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e author: $ref: '#/components/schemas/nullable-git-user' committer: @@ -3264,8 +3920,7 @@ components: url: type: string format: uri - example: >- - https://api.github.com/repos/octocat/Hello-World/tree/827efc6d56897b048c772eb4087f854f46256132 + example: https://api.github.com/repos/octocat/Hello-World/tree/827efc6d56897b048c772eb4087f854f46256132 required: - sha - url @@ -3491,13 +4146,11 @@ components: url: type: string format: uri - example: >- - https://api.github.com/repos/octocat/Hello-World/commits/7638417db6d59f3c431d3e1f261cc637155684cd + 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 + example: https://github.com/octocat/Hello-World/commit/7638417db6d59f3c431d3e1f261cc637155684cd required: - sha - url @@ -3559,18 +4212,15 @@ components: blob_url: type: string format: uri - example: >- - https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt + 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 + 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 + 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' @@ -3602,6 +4252,56 @@ components: - merged - message - sha + pull-request-merge-async-result: + title: Pull Request Merge Async Result + description: Pull Request Merge Async Result + type: object + additionalProperties: false + properties: + status: + type: string + enum: + - pending + - merged + - enqueued + - failed + details: + description: When an asynchronous merge request was created or already existed + type: object + additionalProperties: false + properties: + message: + type: string + uuid: + type: string + merge_method: + type: string + enum: + - default + - merge + - squash + - rebase + merge_action: + type: string + enum: + - default + - merge_queue + - direct_merge + expected_head_sha: + type: string + description: SHA that the pull request head must match for the enqueued merge to proceed. + sha: + type: string + required: + - message + - uuid + - merge_method + - merge_action + - expected_head_sha + - sha + required: + - status + - details pull-request-review-request: title: Pull Request Review Request description: Pull Request Review Request @@ -3672,10 +4372,7 @@ components: 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`. + 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 @@ -3779,72 +4476,281 @@ components: 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 + 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 + pull-request-stack-minimal: + title: Pull Request Stack Minimal + type: object + required: + - id + - number + - node_id + - url + - base + - open + - created_at + - pull_requests + properties: + id: + type: integer + number: + type: integer + node_id: + type: string + url: + type: string + format: uri + base: + type: object + required: + - ref + properties: + ref: + type: string + open: + type: boolean + description: Whether the stack has any open pull request. False when all pull requests are merged or closed. + created_at: + type: string + format: date-time + pull_requests: + type: array + items: + type: object + required: + - number + - state + - draft + - merged_at + - head + properties: + number: + type: integer + state: + type: string + enum: + - open + - closed + draft: + type: boolean + merged_at: + type: string + format: date-time + nullable: true + head: + type: object + required: + - ref + - sha + properties: + ref: + type: string + sha: + type: string + pull-request-stack-pull-request: + title: Pull Request Stack Pull Request + 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 + node_id: + type: string + title: type: string - start_side: + state: 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 + - open + - closed + merged_at: + type: string + format: date-time nullable: true - subject_type: - description: >- - The level at which the comment is targeted, can be a diff line or a - file. + draft: + type: boolean + html_url: type: string - enum: - - line - - file + format: uri + user: + $ref: '#/components/schemas/nullable-simple-user' required: - id - - node_id + - number - url - - body - - diff_hunk - - path - - position - - original_position - - commit_id - - original_commit_id - - user - - pull_request_review_id + - head + - base + - node_id + - title + - state + - merged_at + - draft - html_url - - pull_request_url - - _links - - author_association - - created_at - - updated_at + - user + 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: + 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 nullable-simple-user: title: Simple User description: A GitHub user. @@ -4133,9 +5039,7 @@ components: - url team: title: Team - description: >- - Groups of organization members that gives permissions on specified - repositories. + description: Groups of organization members that gives permissions on specified repositories. type: object properties: id: @@ -4192,6 +5096,17 @@ components: enum: - enterprise - organization + access_source: + description: |- + How the team's access to the repository was granted. This property is only + present when the team is returned in a repository context, such as + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs @@ -4278,8 +5193,7 @@ components: 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} + 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} @@ -4291,8 +5205,7 @@ components: 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} + 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} @@ -4301,8 +5214,7 @@ components: 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} + 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} @@ -4340,12 +5252,10 @@ components: 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} + 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} + 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} @@ -4368,8 +5278,7 @@ components: 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} + 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} @@ -4439,9 +5348,7 @@ components: 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. + 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: @@ -4452,9 +5359,7 @@ components: type: integer example: 0 is_template: - description: >- - Whether this repository acts as a template that can be used to - generate new repositories. + description: Whether this repository acts as a template that can be used to generate new repositories. default: false type: boolean example: true @@ -4496,9 +5401,7 @@ components: type: boolean example: true pull_request_creation_policy: - description: >- - The policy controlling who can create pull requests: all or - collaborators_only. + description: 'The policy controlling who can create pull requests: all or collaborators_only.' type: string enum: - all @@ -4553,19 +5456,13 @@ components: 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. + 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. + 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: @@ -4573,14 +5470,11 @@ components: enum: - PR_TITLE - COMMIT_OR_PR_TITLE - description: >- + description: |- 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). + - `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: @@ -4598,14 +5492,11 @@ components: enum: - PR_TITLE - MERGE_MESSAGE - description: >- + description: |- 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). + - `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: @@ -4865,50 +5756,41 @@ components: - commit_title - commit_message nullable: true - validation-error: - title: Validation Error - description: Validation Error + pull-request-stack: + title: Pull Request Stack + description: The stack information associated with a pull request. 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 + base: + type: object + properties: + ref: + type: string + description: The base ref of the stack this pull request belongs to. + sha: + type: string + description: The base SHA of the stack this pull request belongs to. + required: + - ref + - sha + size: + type: integer + description: The total number of pull requests in the stack. + position: + type: integer + description: The one-based position of this pull request within the stack, where 1 is the bottom of the stack. + id: + type: integer + description: The ID of the stack that this pull request belongs to. + number: + type: integer + description: The number of the stack that this pull request belongs to. + required: + - base + nullable: true team-simple: title: Team Simple - description: >- - Groups of organization members that gives permissions on specified - repositories. + description: Groups of organization members that gives permissions on specified repositories. type: object properties: id: @@ -4988,19 +5870,6 @@ components: - repositories_url - slug - type - basic-error: - title: Basic Error - description: Basic Error - type: object - properties: - message: - type: string - documentation_url: - type: string - url: - type: string - status: - type: string reaction-rollup: title: Reaction Rollup type: object @@ -5087,22 +5956,87 @@ components: description: Validation Error Simple type: object required: - - message - - documentation_url - properties: - message: - type: string - documentation_url: - type: string - errors: - type: array - items: - type: string + - message + - documentation_url + properties: + message: + type: string + documentation_url: + type: string + errors: + type: array + items: + type: string + 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 nullable-team-simple: title: Team Simple - description: >- - Groups of organization members that gives permissions on specified - repositories. + description: Groups of organization members that gives permissions on specified repositories. type: object properties: id: @@ -5268,6 +6202,8 @@ components: application/json: schema: $ref: '#/components/schemas/validation-error-simple' + no_content: + description: A header with no content is returned. parameters: owner: name: owner @@ -5278,39 +6214,28 @@ components: type: string repo: name: repo - description: >- - The name of the repository without the `.git` extension. The name is not - case sensitive. + description: The name of the repository without the `.git` extension. The name is not case sensitive. in: path required: true schema: type: string 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)." + 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 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)." + 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 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`. + 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: @@ -5361,12 +6286,9 @@ components: 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 + 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 @@ -5402,8 +6324,7 @@ components: 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 + labels_url: https://api.github.com/repos/octocat/Hello-World/milestones/1/labels id: 1002604 node_id: MDk6TWlsZXN0b25lMTAwMjYwNA== number: 1 @@ -5582,45 +6503,33 @@ components: 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} + 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} + 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} + 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_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} + 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} + 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 @@ -5735,45 +6644,33 @@ components: 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} + 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} + 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} + 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_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} + 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} + 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 @@ -5844,20 +6741,15 @@ components: 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 + 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 + 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} + 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 + href: https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits statuses: - href: >- - https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + href: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e author_association: OWNER auto_merge: null draft: false @@ -5872,11 +6764,9 @@ components: 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} + 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 + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e number: 1347 state: open locked: true @@ -6090,17 +6980,14 @@ components: 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} + 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} + 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} + 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 @@ -6111,19 +6998,15 @@ components: 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} + 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} + 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 @@ -6232,17 +7115,14 @@ components: 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} + 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} + 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} + 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 @@ -6253,19 +7133,15 @@ components: 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} + 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} + 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 @@ -6329,20 +7205,15 @@ components: 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 + 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 + 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} + 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 + href: https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits statuses: - href: >- - https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + href: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e author_association: OWNER auto_merge: null draft: false @@ -6376,6 +7247,17 @@ components: additions: 100 deletions: 3 changed_files: 5 + x-github-breaking-changes: + - changeset: remove_pull_request_merge_commit_sha + patch: + - op: remove + path: /value/merge_commit_sha + version: '2026-03-10' + - changeset: remove_singular_assignee_from_issues_and_pull_requests + patch: + - op: remove + path: /value/assignee + version: '2026-03-10' pull-request-review-comment-items: value: - url: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 @@ -6416,8 +7298,7 @@ components: author_association: NONE _links: self: - href: >- - https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + href: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 html: href: https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 pull_request: @@ -6583,17 +7464,13 @@ components: side: RIGHT commit-items: value: - - url: >- - https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + - url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e node_id: MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ== - html_url: >- - https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e - comments_url: >- - https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments + html_url: https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e + comments_url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments commit: - url: >- - https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + url: https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e author: name: Monalisa Octocat email: support@github.com @@ -6604,8 +7481,7 @@ components: date: '2011-04-14T16:00:49Z' message: Fix all the bugs tree: - url: >- - https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e + url: https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e comment_count: 0 verification: @@ -6653,8 +7529,7 @@ components: type: User site_admin: false parents: - - url: >- - https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e + - url: https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e diff-entry-items: value: @@ -6664,12 +7539,9 @@ components: additions: 103 deletions: 21 changes: 124 - blob_url: >- - https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt - raw_url: >- - https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt - contents_url: >- - https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e + blob_url: https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt + raw_url: https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt + contents_url: https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e patch: '@@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test' pull-request-merge-result-response-if-merge-was-successful: value: @@ -6722,11 +7594,9 @@ components: 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} + 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 + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e number: 1347 state: open locked: true @@ -6977,17 +7847,14 @@ components: 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} + 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} + 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} + 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 @@ -6998,19 +7865,15 @@ components: 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} + 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} + 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 @@ -7125,17 +7988,14 @@ components: 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} + 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} + 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} + 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 @@ -7146,19 +8006,15 @@ components: 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} + 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} + 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 @@ -7229,20 +8085,15 @@ components: 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 + 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 + 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} + 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 + href: https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits statuses: - href: >- - https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + href: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e author_association: OWNER auto_merge: null draft: false @@ -7257,11 +8108,9 @@ components: 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} + 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 + statuses_url: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e number: 1347 state: open locked: true @@ -7476,17 +8325,14 @@ components: 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} + 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} + 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} + 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 @@ -7497,19 +8343,15 @@ components: 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} + 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} + 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 @@ -7624,17 +8466,14 @@ components: 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} + 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} + 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} + 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 @@ -7645,19 +8484,15 @@ components: 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} + 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} + 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 @@ -7728,23 +8563,29 @@ components: 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 + 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 + 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} + 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 + href: https://api.github.com/repos/octocat/Hello-World/pulls/1347/commits statuses: - href: >- - https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e + href: https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e author_association: OWNER auto_merge: null draft: false + x-github-breaking-changes: + - changeset: remove_pull_request_merge_commit_sha + patch: + - op: remove + path: /value/merge_commit_sha + version: '2026-03-10' + - changeset: remove_singular_assignee_from_issues_and_pull_requests + patch: + - op: remove + path: /value/assignee + version: '2026-03-10' pull-request-review-items: value: - id: 80 @@ -7774,8 +8615,7 @@ components: pull_request_url: https://api.github.com/repos/octocat/Hello-World/pulls/12 _links: html: - href: >- - https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + href: https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 pull_request: href: https://api.github.com/repos/octocat/Hello-World/pulls/12 submitted_at: '2019-11-17T17:43:43Z' @@ -7810,8 +8650,7 @@ components: pull_request_url: https://api.github.com/repos/octocat/Hello-World/pulls/12 _links: html: - href: >- - https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + href: https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 pull_request: href: https://api.github.com/repos/octocat/Hello-World/pulls/12 submitted_at: '2019-11-17T17:43:43Z' @@ -7846,8 +8685,7 @@ components: pull_request_url: https://api.github.com/repos/octocat/Hello-World/pulls/12 _links: html: - href: >- - https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + href: https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 pull_request: href: https://api.github.com/repos/octocat/Hello-World/pulls/12 submitted_at: '2019-11-17T17:43:43Z' @@ -7876,16 +8714,13 @@ components: received_events_url: https://api.github.com/users/octocat/received_events type: User site_admin: false - body: >- - This is close to perfect! Please address the suggested inline change. - And add more about this. + body: This is close to perfect! Please address the suggested inline change. And add more about this. state: CHANGES_REQUESTED html_url: https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 pull_request_url: https://api.github.com/repos/octocat/Hello-World/pulls/12 _links: html: - href: >- - https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + href: https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 pull_request: href: https://api.github.com/repos/octocat/Hello-World/pulls/12 submitted_at: '2019-11-17T17:43:43Z' @@ -7931,8 +8766,7 @@ components: author_association: NONE _links: self: - href: >- - https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 + href: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 html: href: https://github.com/octocat/Hello-World/pull/1#discussion-diff-1 pull_request: @@ -7966,8 +8800,7 @@ components: pull_request_url: https://api.github.com/repos/octocat/Hello-World/pulls/12 _links: html: - href: >- - https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 + href: https://github.com/octocat/Hello-World/pull/12#pullrequestreview-80 pull_request: href: https://api.github.com/repos/octocat/Hello-World/pulls/12 submitted_at: '2019-11-17T17:43:43Z' @@ -7975,26 +8808,129 @@ components: author_association: COLLABORATOR headers: link: - example: >- - ; rel="next", - ; rel="last" + example: ; rel="next", ; rel="last" schema: type: string x-stackQL-resources: - pull_requests: - id: github.pulls.pull_requests - name: pull_requests - title: Pull Requests + comments: + id: github.pulls.comments + name: comments + title: Comments methods: - list: + list_review_comments_for_repo: operation: - $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls/get' + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1comments/get' + response: + mediaType: application/json + openAPIDocKey: '200' + get_review_comment: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1comments~1{comment_id}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + update_review_comment: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1comments~1{comment_id}/patch' + response: + mediaType: application/json + openAPIDocKey: '200' + delete_review_comment: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1comments~1{comment_id}/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + list_review_comments: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1comments/get' response: mediaType: application/json openAPIDocKey: '200' + create_review_comment: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1comments/post' + response: + mediaType: application/json + openAPIDocKey: '201' + create_reply_for_review_comment: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1comments~1{comment_id}~1replies/post' + response: + mediaType: application/json + openAPIDocKey: '201' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/pull_requests/methods/list' + - $ref: '#/components/x-stackQL-resources/comments/methods/get_review_comment' + - $ref: '#/components/x-stackQL-resources/comments/methods/list_review_comments' + - $ref: '#/components/x-stackQL-resources/comments/methods/list_review_comments_for_repo' + insert: + - $ref: '#/components/x-stackQL-resources/comments/methods/create_reply_for_review_comment' + - $ref: '#/components/x-stackQL-resources/comments/methods/create_review_comment' + update: + - $ref: '#/components/x-stackQL-resources/comments/methods/update_review_comment' + delete: + - $ref: '#/components/x-stackQL-resources/comments/methods/delete_review_comment' + replace: [] + comments_for_review: + id: github.pulls.comments_for_review + name: comments_for_review + title: Comments For Review + methods: + list_comments_for_review: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1reviews~1{review_id}~1comments/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/comments_for_review/methods/list_comments_for_review' + insert: [] + update: [] + delete: [] + replace: [] + commits: + id: github.pulls.commits + name: commits + title: Commits + methods: + list_commits: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1commits/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/commits/methods/list_commits' + insert: [] + update: [] + delete: [] + replace: [] + files: + id: github.pulls.files + name: files + title: Files + methods: + list_files: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1files/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/files/methods/list_files' insert: [] update: [] delete: [] @@ -8048,8 +8984,7 @@ components: requestBodyTranslate: algorithm: naive operation: - $ref: >- - #/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1update-branch/put + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1update-branch/put' response: mediaType: application/json openAPIDocKey: '202' @@ -8062,121 +8997,47 @@ components: - $ref: '#/components/x-stackQL-resources/pull_request/methods/update' delete: [] replace: [] - comments: - id: github.pulls.comments - name: comments - title: Comments + pull_request_async_merges: + id: github.pulls.pull_request_async_merges + name: pull_request_async_merges + title: Pull Request Async Merges methods: - list_review_comments_for_repo: - operation: - $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1comments/get' - response: - mediaType: application/json - openAPIDocKey: '200' - get_review_comment: - operation: - $ref: >- - #/paths/~1repos~1{owner}~1{repo}~1pulls~1comments~1{comment_id}/get - response: - mediaType: application/json - openAPIDocKey: '200' - update_review_comment: + merge_async: config: requestBodyTranslate: algorithm: naive operation: - $ref: >- - #/paths/~1repos~1{owner}~1{repo}~1pulls~1comments~1{comment_id}/patch - response: - mediaType: application/json - openAPIDocKey: '200' - delete_review_comment: - operation: - $ref: >- - #/paths/~1repos~1{owner}~1{repo}~1pulls~1comments~1{comment_id}/delete - response: - mediaType: application/json - openAPIDocKey: '204' - list_review_comments: - operation: - $ref: >- - #/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1comments/get + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1merge-async/put' response: mediaType: application/json openAPIDocKey: '200' - create_review_comment: - config: - requestBodyTranslate: - algorithm: naive - operation: - $ref: >- - #/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1comments/post - response: - mediaType: application/json - openAPIDocKey: '201' - create_reply_for_review_comment: - config: - requestBodyTranslate: - algorithm: naive - operation: - $ref: >- - #/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1comments~1{comment_id}~1replies/post - response: - mediaType: application/json - openAPIDocKey: '201' - sqlVerbs: - select: - - $ref: >- - #/components/x-stackQL-resources/comments/methods/get_review_comment - - $ref: >- - #/components/x-stackQL-resources/comments/methods/list_review_comments - - $ref: >- - #/components/x-stackQL-resources/comments/methods/list_review_comments_for_repo - insert: - - $ref: >- - #/components/x-stackQL-resources/comments/methods/create_reply_for_review_comment - - $ref: >- - #/components/x-stackQL-resources/comments/methods/create_review_comment - update: - - $ref: >- - #/components/x-stackQL-resources/comments/methods/update_review_comment - delete: - - $ref: >- - #/components/x-stackQL-resources/comments/methods/delete_review_comment - replace: [] - commits: - id: github.pulls.commits - name: commits - title: Commits - methods: - list_commits: + get_merge_async_result: operation: - $ref: >- - #/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1commits/get + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1merge-async~1{uuid}/get' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/commits/methods/list_commits' + - $ref: '#/components/x-stackQL-resources/pull_request_async_merges/methods/get_merge_async_result' insert: [] update: [] delete: [] replace: [] - files: - id: github.pulls.files - name: files - title: Files + pull_requests: + id: github.pulls.pull_requests + name: pull_requests + title: Pull Requests methods: - list_files: + list: operation: - $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1files/get' + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls/get' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: '#/components/x-stackQL-resources/files/methods/list_files' + - $ref: '#/components/x-stackQL-resources/pull_requests/methods/list' insert: [] update: [] delete: [] @@ -8188,8 +9049,7 @@ components: methods: list_requested_reviewers: operation: - $ref: >- - #/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1requested_reviewers/get + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1requested_reviewers/get' response: mediaType: application/json openAPIDocKey: '200' @@ -8198,29 +9058,44 @@ components: requestBodyTranslate: algorithm: naive operation: - $ref: >- - #/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1requested_reviewers/post + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1requested_reviewers/post' response: mediaType: application/json openAPIDocKey: '201' remove_requested_reviewers: operation: - $ref: >- - #/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1requested_reviewers/delete + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1requested_reviewers/delete' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/review_requests/methods/list_requested_reviewers + - $ref: '#/components/x-stackQL-resources/review_requests/methods/list_requested_reviewers' insert: - - $ref: >- - #/components/x-stackQL-resources/review_requests/methods/request_reviewers + - $ref: '#/components/x-stackQL-resources/review_requests/methods/request_reviewers' update: [] delete: - - $ref: >- - #/components/x-stackQL-resources/review_requests/methods/remove_requested_reviewers + - $ref: '#/components/x-stackQL-resources/review_requests/methods/remove_requested_reviewers' + replace: [] + review_threads: + id: github.pulls.review_threads + name: review_threads + title: Review Threads + methods: + list: + operation: + $ref: '#/paths/~1graphql?resource=review_threads/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.repository.pullRequest.reviewThreads.nodes + x-stackql-protocol: graphql + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/review_threads/methods/list' + insert: [] + update: [] + delete: [] replace: [] reviews: id: github.pulls.reviews @@ -8229,8 +9104,7 @@ components: methods: list_reviews: operation: - $ref: >- - #/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1reviews/get + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1reviews/get' response: mediaType: application/json openAPIDocKey: '200' @@ -8239,15 +9113,13 @@ components: requestBodyTranslate: algorithm: naive operation: - $ref: >- - #/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1reviews/post + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1reviews/post' response: mediaType: application/json openAPIDocKey: '200' get_review: operation: - $ref: >- - #/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1reviews~1{review_id}/get + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1reviews~1{review_id}/get' response: mediaType: application/json openAPIDocKey: '200' @@ -8256,15 +9128,13 @@ components: requestBodyTranslate: algorithm: naive operation: - $ref: >- - #/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1reviews~1{review_id}/put + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1reviews~1{review_id}/put' response: mediaType: application/json openAPIDocKey: '200' delete_pending_review: operation: - $ref: >- - #/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1reviews~1{review_id}/delete + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1reviews~1{review_id}/delete' response: mediaType: application/json openAPIDocKey: '200' @@ -8273,8 +9143,7 @@ components: requestBodyTranslate: algorithm: naive operation: - $ref: >- - #/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1reviews~1{review_id}~1dismissals/put + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1reviews~1{review_id}~1dismissals/put' response: mediaType: application/json openAPIDocKey: '200' @@ -8283,8 +9152,7 @@ components: requestBodyTranslate: algorithm: naive operation: - $ref: >- - #/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1reviews~1{review_id}~1events/post + $ref: '#/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1reviews~1{review_id}~1events/post' response: mediaType: application/json openAPIDocKey: '200' @@ -8296,29 +9164,66 @@ components: - $ref: '#/components/x-stackQL-resources/reviews/methods/create_review' update: [] delete: - - $ref: >- - #/components/x-stackQL-resources/reviews/methods/delete_pending_review + - $ref: '#/components/x-stackQL-resources/reviews/methods/delete_pending_review' replace: - $ref: '#/components/x-stackQL-resources/reviews/methods/update_review' - comments_for_review: - id: github.pulls.comments_for_review - name: comments_for_review - title: Comments For Review + stacks: + id: github.pulls.stacks + name: stacks + title: Stacks methods: - list_comments_for_review: + list: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1stacks/get' + response: + mediaType: application/json + openAPIDocKey: '200' + create: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1stacks/post' + response: + mediaType: application/json + openAPIDocKey: '201' + get: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1stacks~1{stack_number}/get' + response: + mediaType: application/json + openAPIDocKey: '200' + add: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1stacks~1{stack_number}~1add/post' + response: + mediaType: application/json + openAPIDocKey: '200' + unstack: operation: - $ref: >- - #/paths/~1repos~1{owner}~1{repo}~1pulls~1{pull_number}~1reviews~1{review_id}~1comments/get + $ref: '#/paths/~1repos~1{owner}~1{repo}~1stacks~1{stack_number}~1unstack/post' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/comments_for_review/methods/list_comments_for_review - insert: [] + - $ref: '#/components/x-stackQL-resources/stacks/methods/get' + - $ref: '#/components/x-stackQL-resources/stacks/methods/list' + insert: + - $ref: '#/components/x-stackQL-resources/stacks/methods/create' update: [] delete: [] replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/rate_limit.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/rate_limit.yaml index 28431de..14002ec 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/rate_limit.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/rate_limit.yaml @@ -47,11 +47,6 @@ paths: 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 @@ -126,8 +121,6 @@ components: $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: @@ -138,6 +131,8 @@ components: $ref: '#/components/schemas/rate-limit' code_scanning_autofix: $ref: '#/components/schemas/rate-limit' + copilot_usage_records: + $ref: '#/components/schemas/rate-limit' required: - core - search @@ -223,11 +218,6 @@ components: used: 1 remaining: 99 reset: 1691591091 - code_scanning_upload: - limit: 500 - used: 1 - remaining: 499 - reset: 1691594631 actions_runner_registration: limit: 10000 used: 0 @@ -258,6 +248,12 @@ components: used: 1 remaining: 4999 reset: 1372700873 + x-github-breaking-changes: + - changeset: remove_rate_limit_rate + patch: + - op: remove + path: /value/rate + version: '2026-03-10' headers: x-rate-limit-limit: example: 5000 @@ -293,3 +289,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/reactions.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/reactions.yaml index 8ffa3f7..24e875c 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/reactions.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/reactions.yaml @@ -1370,3 +1370,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/repos.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/repos.yaml index 5170abd..6ae4606 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/repos.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/repos.yaml @@ -504,6 +504,7 @@ paths: - $ref: '#/components/parameters/time-period' - $ref: '#/components/parameters/actor-name-in-query' - $ref: '#/components/parameters/rule-suite-result' + - $ref: '#/components/parameters/evaluate-status' - $ref: '#/components/parameters/per-page' - $ref: '#/components/parameters/page' responses: @@ -512,7 +513,60 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/rule-suites' + 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`. examples: default: $ref: '#/components/examples/rule-suite-items' @@ -1024,6 +1078,20 @@ paths: Either `true` to enable the wiki for this repository or `false` to disable it. default: true + has_pull_requests: + type: boolean + description: >- + Either `true` to allow pull requests for this repository or + `false` to prevent pull requests. + default: true + pull_request_creation_policy: + type: string + description: >- + The policy that controls who can create pull requests for + this repository: `all` or `collaborators_only`. + enum: + - all + - collaborators_only is_template: type: boolean description: >- @@ -2959,7 +3027,10 @@ paths: schema: type: array items: - type: string + type: object + properties: + repos/get_all_status_check_context: + type: string examples: default: value: @@ -3027,7 +3098,10 @@ paths: schema: type: array items: - type: string + type: object + properties: + repos/add_status_check_context: + type: string examples: default: value: @@ -3100,7 +3174,10 @@ paths: schema: type: array items: - type: string + type: object + properties: + repos/set_status_check_context: + type: string examples: default: value: @@ -3169,7 +3246,10 @@ paths: schema: type: array items: - type: string + type: object + properties: + repos/remove_status_check_context: + type: string examples: default: value: @@ -5088,6 +5168,11 @@ paths: Create a comment for a commit using its `:commit_sha`. + Access to commit comments can be controlled by organization owners. For + more information, see "[Managing commit comments for your + organization](https://docs.github.com/organizations/managing-organization-settings/managing-commit-comments-for-your-organization)". + + 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 @@ -8014,6 +8099,41 @@ paths: category: repos subcategory: forks x-stackQL-resource: forks + /repos/{owner}/{repo}/hash-algorithm: + get: + summary: Get the hash algorithm for a repository + description: Returns the hash algorithm used to store repository objects. + tags: + - repos + operationId: repos/get-hash-algorithm + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/repos/repos#get-the-hash-algorithm-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/repository-hash-algorithm' + examples: + default: + value: + hash_algorithm: sha1 + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + x-stackQL-resource: repos /repos/{owner}/{repo}/hooks: get: summary: List repository webhooks @@ -8778,6 +8898,48 @@ paths: category: collaborators subcategory: invitations x-stackQL-resource: invitations + /repos/{owner}/{repo}/issue-types: + get: + summary: List issue types for a repository + description: >- + Lists issue types available for a repository (inherited from its + organization owner, with any per-repository overrides applied). + + OAuth app tokens and personal access tokens (classic) need the `repo` + scope to use this endpoint. + + Fine-grained access tokens require the "Metadata" repository permission + (read). + tags: + - repos + operationId: repos/list-issue-types + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/repos/issue-types#list-issue-types-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + 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: repos + subcategory: issue-types + x-stackQL-resource: issue_types /repos/{owner}/{repo}/keys: get: summary: List deploy keys @@ -10111,6 +10273,26 @@ paths: Users with push access to the repository can create a release. + > [!NOTE] + + > If the commit identified by `target_commitish` (or, when + `target_commitish` is omitted, the latest commit on the default branch) + adds or modifies any file under `.github/workflows/` relative to the + repository's default branch, the authenticating token must be authorized + to modify workflows. Otherwise, this endpoint returns `404 Not Found`; + some authentication paths surface `403 Resource not accessible by + integration` instead. + + + OAuth app tokens and personal access tokens (classic) need the + `workflow` scope when the resolved target commit modifies workflow + files. Fine-grained access tokens and GitHub App installation tokens + also need the "Workflows" repository permission (write). The + `GITHUB_TOKEN` available to GitHub Actions cannot be authorized for + this; for more information, see "[Automatic token + authentication](https://docs.github.com/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token)". + + 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 @@ -10561,7 +10743,27 @@ paths: x-stackQL-resource: releases patch: summary: Update a release - description: Users with push access to the repository can edit a release. + description: >- + Users with push access to the repository can edit a release. + + + > [!NOTE] + + > If the resolved target commit (the new value of `target_commitish` if + you are changing it, otherwise the existing target) adds or modifies any + file under `.github/workflows/` relative to the repository's default + branch, the authenticating token must be authorized to modify workflows. + Otherwise, this endpoint returns `404 Not Found`; some authentication + paths surface `403 Resource not accessible by integration` instead. + + + OAuth app tokens and personal access tokens (classic) need the + `workflow` scope when the resolved target commit modifies workflow + files. Fine-grained access tokens and GitHub App installation tokens + also need the "Workflows" repository permission (write). The + `GITHUB_TOKEN` available to GitHub Actions cannot be authorized for + this; for more information, see "[Automatic token + authentication](https://docs.github.com/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token)". tags: - repos operationId: repos/update-release @@ -10788,12 +10990,6 @@ paths: 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' - $ref: '#/components/parameters/repo' @@ -11044,6 +11240,7 @@ paths: - $ref: '#/components/parameters/time-period' - $ref: '#/components/parameters/actor-name-in-query' - $ref: '#/components/parameters/rule-suite-result' + - $ref: '#/components/parameters/evaluate-status' - $ref: '#/components/parameters/per-page' - $ref: '#/components/parameters/page' responses: @@ -11052,7 +11249,60 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/rule-suites' + 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`. examples: default: $ref: '#/components/examples/rule-suite-items' @@ -13988,7 +14238,7 @@ components: nullable: true description: >- The ID of the actor that can bypass a ruleset. Required for - `Integration`, `RepositoryRole`, and `Team` actor types. If + `Integration`, `RepositoryRole`, `Team`, and `User` 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. @@ -14000,6 +14250,7 @@ components: - RepositoryRole - Team - DeployKey + - User description: The type of actor that can bypass a ruleset. bypass_mode: type: string @@ -15301,6 +15552,20 @@ components: enum: - enterprise - organization + access_source: + description: >- + How the team's access to the repository was granted. This property + is only + + present when the team is returned in a repository context, such as + + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs @@ -16307,6 +16572,8 @@ components: $ref: '#/components/schemas/author-association' auto_merge: $ref: '#/components/schemas/auto-merge' + stack: + $ref: '#/components/schemas/pull-request-stack' draft: description: Indicates whether or not the pull request is a draft. example: false @@ -17677,6 +17944,20 @@ components: - slug - integration_url - node_id + repository-hash-algorithm: + title: Repository hash algorithm + description: Repository hash algorithm + type: object + properties: + hash_algorithm: + type: string + description: The Git hash algorithm used by this repository. + enum: + - sha1 + - sha256 + example: sha1 + required: + - hash_algorithm hook: title: Webhook description: Webhooks for repositories. @@ -17988,6 +18269,56 @@ components: required: - enabled - enforced_by_owner + issue-type: + title: Issue Type + description: >- + The type assigned to the issue. This is only present for issues in + repositories where issue types are supported. + 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 deploy-key: title: Deploy Key description: An SSH key granting access to a single repository. @@ -20712,6 +21043,9 @@ components: description: >- New, reviewable commits pushed will dismiss previous pull request review approvals. + dismissal_restriction: + $ref: >- + #/components/schemas/repository-rule-params-dismissal-restriction require_code_owner_review: type: boolean description: >- @@ -21755,6 +22089,40 @@ components: - commit_title - commit_message nullable: true + pull-request-stack: + title: Pull Request Stack + description: The stack information associated with a pull request. + type: object + properties: + base: + type: object + properties: + ref: + type: string + description: The base ref of the stack this pull request belongs to. + sha: + type: string + description: The base SHA of the stack this pull request belongs to. + required: + - ref + - sha + size: + type: integer + description: The total number of pull requests in the stack. + position: + type: integer + description: >- + The one-based position of this pull request within the stack, where + 1 is the bottom of the stack. + id: + type: integer + description: The ID of the stack that this pull request belongs to. + number: + type: integer + description: The number of the stack that this pull request belongs to. + required: + - base + nullable: true simple-commit-status: title: Simple Commit Status type: object @@ -22232,6 +22600,19 @@ components: - merge_method - min_entries_to_merge - min_entries_to_merge_wait_minutes + repository-rule-license-compliance-scanning: + title: license_compliance_scanning + description: >- + Enforce any added or changed dependencies to comply with the + organization's license policy. + type: object + required: + - type + properties: + type: + type: string + enum: + - license_compliance_scanning traffic: title: Traffic type: object @@ -22271,6 +22652,23 @@ components: required: - name - property_values + repository-rule-params-dismissal-restriction: + title: DismissalRestriction + description: Specify people, teams, or apps allowed to dismiss pull request reviews. + type: object + properties: + allowed_actors: + type: array + description: >- + Specify people, teams, or apps allowed to dismiss pull request + reviews. + items: + $ref: '#/components/schemas/repository-rule-params-actor' + enabled: + type: boolean + description: Whether to restrict review dismissal to specific actors. + required: + - enabled repository-rule-params-required-reviewer-configuration: title: RequiredReviewerConfiguration description: >- @@ -22370,6 +22768,25 @@ components: - alerts_threshold - security_alerts_threshold - tool + repository-rule-params-actor: + title: Actor + description: An actor allowed to dismiss pull request reviews + type: object + properties: + id: + type: integer + description: ID of the actor that can dismiss reviews. + type: + type: string + description: The type of the actor + enum: + - User + - Team + - IntegrationInstallation + - RepositoryRole + required: + - id + - type repository-rule-params-reviewer: title: Reviewer description: A required reviewing team @@ -22579,6 +22996,24 @@ components: - bypass - all default: all + evaluate-status: + name: evaluate_status + description: >- + The evaluate status to filter on. When specified, only rule suites + resulting from rulesets with the specified evaluate status will be + returned. + - `all` - all rule suites will be returned. + - `active` - only rule suites resulting from rulesets in active (non-evaluate) mode will be returned. + - `evaluate` - only rule suites resulting from rulesets in evaluate mode will be returned. + in: query + required: false + schema: + type: string + enum: + - all + - active + - evaluate + default: all rule-suite-id: name: rule_suite_id description: >- @@ -23505,6 +23940,12 @@ components: forks: 1 open_issues: 1 watchers: 1 + x-github-breaking-changes: + - changeset: remove_has_downloads + patch: + - op: remove + path: /value/has_downloads + version: '2026-03-10' org-ruleset-items: value: - id: 21 @@ -24175,6 +24616,12 @@ components: status: disabled secret_scanning_delegated_alert_dismissal: status: disabled + x-github-breaking-changes: + - changeset: remove_has_downloads + patch: + - op: remove + path: /value/has_downloads + version: '2026-03-10' activity-items: value: - id: 1296269 @@ -24259,110 +24706,14 @@ components: 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 + - repository_id: 1 + bundle_url: >- + https://tmastaging.blob.core.windows.net/attestations/1/2024/11/08/4.json.sn?se=2024-11-09T17%3A13%3A43Z&sig=jPSbbJnIEshUyCjBLU5Ykq0uuGc5UYxTZE1%2FhdBNMXk%3D&sp=r&spr=https%2Chttp&sr=b&st=2024-11-08T17%3A13%3A43Z&sv=2024-08-04 + initiator: user + - repository_id: 1 + bundle_url: >- + https://tmastaging.blob.core.windows.net/attestations/1/2024/11/08/5.json.sn?se=2024-11-09T17%3A13%3A43Z&sig=jPSbbJnIEshUyCjBLU5Ykq0uuGc5UYxTZE1%2FhdBNMXk%3D&sp=r&spr=https%2Chttp&sr=b&st=2024-11-08T17%3A13%3A43Z&sv=2024-08-04 + initiator: user autolink-items: value: - id: 1 @@ -27691,6 +28042,20 @@ components: expired: false url: https://api.github.com/user/repository_invitations/1296269 html_url: https://github.com/octocat/Hello-World/invitations + 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' deploy-key-items: value: - id: 1 @@ -28919,6 +29284,12 @@ components: allow_forking: true subscribers_count: 42 network_count: 0 + x-github-breaking-changes: + - changeset: remove_has_downloads + patch: + - op: remove + path: /value/has_downloads + version: '2026-03-10' public-repository-items: value: - id: 1296269 @@ -30693,6 +31064,25 @@ components: update: [] delete: [] replace: [] + hash_algorithm: + id: github.repos.hash_algorithm + name: hash_algorithm + title: Hash Algorithm + methods: + get_hash_algorithm: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1hash-algorithm/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/hash_algorithm/methods/get_hash_algorithm + insert: [] + update: [] + delete: [] + replace: [] webhooks: id: github.repos.webhooks name: webhooks @@ -30928,6 +31318,25 @@ components: - $ref: >- #/components/x-stackQL-resources/invitations/methods/delete_invitation replace: [] + issue_types: + id: github.repos.issue_types + name: issue_types + title: Issue Types + methods: + list_issue_types: + operation: + $ref: '#/paths/~1repos~1{owner}~1{repo}~1issue-types/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/issue_types/methods/list_issue_types + insert: [] + update: [] + delete: [] + replace: [] deploy_keys: id: github.repos.deploy_keys name: deploy_keys @@ -31668,3 +32077,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/search.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/search.yaml index fe854a9..9f1e661 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/search.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/search.yaml @@ -54,16 +54,6 @@ paths: is. - > [!NOTE] - - > `repository.description`, `repository.owner.type`, and - `repository.owner.node_id` are closing down on this endpoint and will - return `null` in a future API version. Use the [Get a - repository](https://docs.github.com/rest/repos/repos#get-a-repository) - endpoint (`GET /repos/{owner}/{repo}`) to retrieve full repository - metadata. - - This endpoint requires you to authenticate and limits you to 10 requests per minute. tags: @@ -385,6 +375,7 @@ paths: - no_accessible_repos - server_error - only_non_semantic_fields_requested + - service_unavailable examples: default: $ref: '#/components/examples/issue-search-result-item-paginated' @@ -2423,6 +2414,10 @@ components: type: integer format: int64 example: 1 + issue_field_name: + description: The human-readable name of the issue field. + type: string + example: Priority node_id: type: string example: IFT_GDKND @@ -2432,6 +2427,7 @@ components: enum: - text - single_select + - multi_select - number - date example: text @@ -2464,6 +2460,30 @@ components: - name - color nullable: true + multi_select_options: + description: Details about the selected options + type: array + items: + 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 @@ -3173,7 +3193,9 @@ components: version: '2026-03-10' issue-type: title: Issue Type - description: The type of issue. + description: >- + The type assigned to the issue. This is only present for issues in + repositories where issue types are supported. type: object nullable: true properties: @@ -3491,6 +3513,8 @@ components: $ref: '#/components/schemas/reaction-rollup' pin: $ref: '#/components/schemas/nullable-pinned-issue-comment' + minimized: + $ref: '#/components/schemas/nullable-issue-comment-minimized' required: - id - node_id @@ -3881,6 +3905,19 @@ components: - pinned_at - pinned_by nullable: true + nullable-issue-comment-minimized: + title: Minimized Issue Comment + description: Details about why an issue comment was minimized. + type: object + properties: + reason: + description: The reason the comment was minimized. + type: string + nullable: true + example: low-quality + required: + - reason + nullable: true responses: not_modified: description: Not modified @@ -4235,6 +4272,15 @@ components: node_id: MDU6SXNzdWUzNTgwMg== number: 132 title: Line Number Indexes Beyond 20 Not Displayed + type: + id: 1 + node_id: IT_kwDNJr9H + name: Bug + description: An unexpected problem or behavior + color: red + created_at: '2023-10-09T13:30:49Z' + updated_at: '2024-05-30T18:20:53Z' + is_enabled: true user: login: Nick3C id: 90254 @@ -4314,6 +4360,12 @@ components: locked: true author_association: COLLABORATOR state_reason: completed + x-github-breaking-changes: + - changeset: remove_singular_assignee_from_issues_and_pull_requests + patch: + - op: remove + path: /value/items/0/assignee + version: '2026-03-10' issue-search-result-item-paginated-lexical-fallback: summary: Hybrid search with lexical fallback description: >- @@ -4709,3 +4761,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/secret_scanning.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/secret_scanning.yaml index 3f63c9e..a3bf05b 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/secret_scanning.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/secret_scanning.yaml @@ -46,6 +46,9 @@ paths: - $ref: '#/components/parameters/secret-scanning-alert-publicly-leaked' - $ref: '#/components/parameters/secret-scanning-alert-multi-repo' - $ref: '#/components/parameters/secret-scanning-alert-hide-secret' + - $ref: '#/components/parameters/secret-scanning-alert-bypassed' + - $ref: '#/components/parameters/secret-scanning-alert-included-metadata' + - $ref: '#/components/parameters/secret-scanning-alert-owner-email-hash' responses: '200': description: Response @@ -72,6 +75,270 @@ paths: category: secret-scanning subcategory: secret-scanning x-stackQL-resource: secret_scanning + /orgs/{org}/secret-scanning/custom-patterns: + get: + summary: List organization custom patterns + description: >- + Lists secret scanning custom patterns for an organization. + + + Personal access tokens (classic) need the `read:org` scope to use this + endpoint. + tags: + - secret-scanning + operationId: secret-scanning/list-org-custom-patterns + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/secret-scanning/custom-patterns#list-organization-custom-patterns + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: custom-patterns + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/secret-scanning-custom-pattern-state' + - $ref: >- + #/components/parameters/secret-scanning-custom-pattern-push-protection + - $ref: '#/components/parameters/secret-scanning-custom-pattern-sort' + - $ref: '#/components/parameters/direction' + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/per-page' + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/secret-scanning-custom-pattern' + examples: + default: + $ref: '#/components/examples/secret-scanning-custom-pattern-list' + headers: + Link: + $ref: '#/components/headers/link' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-stackQL-resource: custom_patterns + post: + summary: Bulk create organization custom patterns + description: >- + Bulk creates secret scanning custom patterns for an organization. + + + Personal access tokens (classic) need the `write:org` scope to use this + endpoint. + tags: + - secret-scanning + operationId: secret-scanning/bulk-create-org-custom-patterns + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/secret-scanning/custom-patterns#bulk-create-organization-custom-patterns + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: custom-patterns + parameters: + - $ref: '#/components/parameters/org' + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - patterns + properties: + patterns: + type: array + description: The list of custom patterns to create. + items: + $ref: >- + #/components/schemas/secret-scanning-custom-pattern-to-create + examples: + default: + $ref: >- + #/components/examples/secret-scanning-custom-pattern-bulk-create-request + responses: + '201': + description: All patterns created successfully. + content: + application/json: + schema: + type: object + properties: + created_patterns: + type: array + description: The list of successfully created custom patterns. + items: + $ref: '#/components/schemas/secret-scanning-custom-pattern' + examples: + default: + $ref: >- + #/components/examples/secret-scanning-custom-pattern-bulk-create-response + '400': + $ref: '#/components/responses/bad_request' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + description: Validation failed for one or more patterns. + content: + application/json: + schema: + type: object + properties: + message: + type: string + description: A summary message describing the error. + validation_errors: + type: object + description: >- + A map of validation errors keyed by the zero-based index + of the pattern that failed. + additionalProperties: + type: object + properties: + errors: + type: array + description: List of validation errors for this pattern. + items: + $ref: >- + #/components/schemas/secret-scanning-custom-pattern-validation-error + x-stackQL-resource: custom_patterns + delete: + summary: Bulk delete organization custom patterns + description: >- + Bulk deletes secret scanning custom patterns for an organization. + + + Personal access tokens (classic) need the `write:org` scope to use this + endpoint. + tags: + - secret-scanning + operationId: secret-scanning/bulk-delete-org-custom-patterns + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/secret-scanning/custom-patterns#bulk-delete-organization-custom-patterns + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: custom-patterns + parameters: + - $ref: '#/components/parameters/org' + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - patterns + properties: + patterns: + type: array + description: The list of custom patterns to delete. + maxItems: 500 + items: + $ref: >- + #/components/schemas/secret-scanning-custom-pattern-to-delete + post_delete_action: + type: string + description: |- + What to do with alerts associated with the deleted patterns. + `delete_alerts` permanently removes the alerts. + `resolve_alerts` resolves the alerts as "pattern deleted". + Defaults to `delete_alerts` when not specified. + enum: + - delete_alerts + - resolve_alerts + default: delete_alerts + examples: + default: + $ref: >- + #/components/examples/secret-scanning-custom-pattern-bulk-delete-request + responses: + '204': + description: All patterns deleted successfully. + '400': + $ref: '#/components/responses/bad_request' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '412': + $ref: '#/components/responses/precondition_failed' + x-stackQL-resource: custom_patterns + /orgs/{org}/secret-scanning/custom-patterns/{pattern_id}: + patch: + summary: Update an organization custom pattern + description: >- + Updates a secret scanning custom pattern for an organization. + + + Personal access tokens (classic) need the `write:org` scope to use this + endpoint. + tags: + - secret-scanning + operationId: secret-scanning/update-org-custom-pattern + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/secret-scanning/custom-patterns#update-an-organization-custom-pattern + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: custom-patterns + parameters: + - $ref: '#/components/parameters/org' + - name: pattern_id + in: path + required: true + schema: + type: integer + description: The ID of the custom pattern. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/secret-scanning-custom-pattern-to-update' + examples: + default: + $ref: >- + #/components/examples/secret-scanning-custom-pattern-update-request + responses: + '200': + description: Pattern updated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/secret-scanning-custom-pattern' + examples: + default: + $ref: '#/components/examples/secret-scanning-custom-pattern' + '400': + $ref: '#/components/responses/bad_request' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '412': + $ref: '#/components/responses/precondition_failed' + '422': + $ref: '#/components/responses/validation_failed' + x-stackQL-resource: custom_patterns /orgs/{org}/secret-scanning/pattern-configurations: get: summary: List organization pattern configurations @@ -254,6 +521,9 @@ paths: - $ref: '#/components/parameters/secret-scanning-alert-publicly-leaked' - $ref: '#/components/parameters/secret-scanning-alert-multi-repo' - $ref: '#/components/parameters/secret-scanning-alert-hide-secret' + - $ref: '#/components/parameters/secret-scanning-alert-bypassed' + - $ref: '#/components/parameters/secret-scanning-alert-included-metadata' + - $ref: '#/components/parameters/secret-scanning-alert-owner-email-hash' responses: '200': description: Response @@ -311,7 +581,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/secret-scanning-alert' + $ref: '#/components/schemas/secret-scanning-alert-with-metadata' examples: default: $ref: '#/components/examples/secret-scanning-alert-open' @@ -374,6 +644,15 @@ paths: #/components/schemas/secret-scanning-alert-resolution-comment assignee: $ref: '#/components/schemas/secret-scanning-alert-assignee' + validity: + type: string + nullable: true + enum: + - active + - inactive + description: >- + Sets the validity of the secret scanning alert. Can be + `active`, `inactive`, or `null` to clear the override. required: - state - assignee @@ -397,7 +676,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/secret-scanning-alert' + $ref: '#/components/schemas/secret-scanning-alert-with-metadata' examples: default: $ref: '#/components/examples/secret-scanning-alert-resolved' @@ -405,14 +684,19 @@ paths: description: >- Bad request, resolution comment is invalid or the resolution was not changed. + '403': + description: >- + Delegated alert dismissal is enabled and the authenticated user is + not a valid reviewer. '404': description: >- Repository is public, or secret scanning is disabled for the repository, or the resource is not found '422': description: >- - State does not match the resolution or resolution comment, or - assignee does not have write access to the repository + State does not match the resolution or resolution comment, assignee + does not have write access to the repository, or the requested + validity change could not be applied to this alert '503': $ref: '#/components/responses/service_unavailable' x-github: @@ -452,32 +736,307 @@ paths: - $ref: '#/components/parameters/per-page' responses: '200': - description: Response + description: Response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/secret-scanning-location' + examples: + default: + $ref: '#/components/examples/secret-scanning-location-list' + headers: + Link: + $ref: '#/components/headers/link' + '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 + category: secret-scanning + subcategory: secret-scanning + x-stackQL-resource: secret_scanning + /repos/{owner}/{repo}/secret-scanning/custom-patterns: + get: + summary: List repository custom patterns + description: >- + Lists secret scanning custom patterns for a repository. + + + 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. + tags: + - secret-scanning + operationId: secret-scanning/list-repo-custom-patterns + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/secret-scanning/custom-patterns#list-repository-custom-patterns + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: custom-patterns + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/secret-scanning-custom-pattern-state' + - $ref: >- + #/components/parameters/secret-scanning-custom-pattern-push-protection + - $ref: '#/components/parameters/secret-scanning-custom-pattern-sort' + - $ref: '#/components/parameters/direction' + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/per-page' + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/secret-scanning-custom-pattern' + examples: + default: + $ref: '#/components/examples/secret-scanning-custom-pattern-list' + headers: + Link: + $ref: '#/components/headers/link' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-stackQL-resource: custom_patterns + post: + summary: Bulk create repository custom patterns + description: >- + Bulk creates secret scanning custom patterns for a repository. + + + 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. + tags: + - secret-scanning + operationId: secret-scanning/bulk-create-repo-custom-patterns + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/secret-scanning/custom-patterns#bulk-create-repository-custom-patterns + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: custom-patterns + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - patterns + properties: + patterns: + type: array + description: The list of custom patterns to create. + items: + $ref: >- + #/components/schemas/secret-scanning-custom-pattern-to-create + examples: + default: + $ref: >- + #/components/examples/secret-scanning-custom-pattern-bulk-create-request + responses: + '201': + description: All patterns created successfully. + content: + application/json: + schema: + type: object + properties: + created_patterns: + type: array + description: The list of successfully created custom patterns. + items: + $ref: '#/components/schemas/secret-scanning-custom-pattern' + examples: + default: + $ref: >- + #/components/examples/secret-scanning-custom-pattern-bulk-create-response + '400': + $ref: '#/components/responses/bad_request' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + description: Validation failed for one or more patterns. + content: + application/json: + schema: + type: object + properties: + message: + type: string + description: A summary message describing the error. + validation_errors: + type: object + description: >- + A map of validation errors keyed by the zero-based index + of the pattern that failed. + additionalProperties: + type: object + properties: + errors: + type: array + description: List of validation errors for this pattern. + items: + $ref: >- + #/components/schemas/secret-scanning-custom-pattern-validation-error + x-stackQL-resource: custom_patterns + delete: + summary: Bulk delete repository custom patterns + description: >- + Bulk deletes secret scanning custom patterns for a repository. + + + 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. + tags: + - secret-scanning + operationId: secret-scanning/bulk-delete-repo-custom-patterns + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/secret-scanning/custom-patterns#bulk-delete-repository-custom-patterns + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: custom-patterns + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - patterns + properties: + patterns: + type: array + description: The list of custom patterns to delete. + maxItems: 500 + items: + $ref: >- + #/components/schemas/secret-scanning-custom-pattern-to-delete + post_delete_action: + type: string + description: |- + What to do with alerts associated with the deleted patterns. + `delete_alerts` permanently removes the alerts. + `resolve_alerts` resolves the alerts as "pattern deleted". + Defaults to `delete_alerts` when not specified. + enum: + - delete_alerts + - resolve_alerts + default: delete_alerts + examples: + default: + $ref: >- + #/components/examples/secret-scanning-custom-pattern-bulk-delete-request + responses: + '204': + description: All patterns deleted successfully. + '400': + $ref: '#/components/responses/bad_request' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '412': + $ref: '#/components/responses/precondition_failed' + x-stackQL-resource: custom_patterns + /repos/{owner}/{repo}/secret-scanning/custom-patterns/{pattern_id}: + patch: + summary: Update a repository custom pattern + description: >- + Updates a secret scanning custom pattern for a repository. + + + 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. + tags: + - secret-scanning + operationId: secret-scanning/update-repo-custom-pattern + externalDocs: + description: API method documentation + url: >- + https://docs.github.com/rest/secret-scanning/custom-patterns#update-a-repository-custom-pattern + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: custom-patterns + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - name: pattern_id + in: path + required: true + schema: + type: integer + description: The ID of the custom pattern. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/secret-scanning-custom-pattern-to-update' + examples: + default: + $ref: >- + #/components/examples/secret-scanning-custom-pattern-update-request + responses: + '200': + description: Pattern updated successfully. content: application/json: schema: - type: array - description: List of locations where the secret was detected - items: - $ref: '#/components/schemas/secret-scanning-location' + $ref: '#/components/schemas/secret-scanning-custom-pattern' examples: default: - $ref: '#/components/examples/secret-scanning-location-list' - headers: - Link: - $ref: '#/components/headers/link' + $ref: '#/components/examples/secret-scanning-custom-pattern' + '400': + $ref: '#/components/responses/bad_request' + '403': + $ref: '#/components/responses/forbidden' '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 - category: secret-scanning - subcategory: secret-scanning - x-stackQL-resource: secret_scanning + $ref: '#/components/responses/not_found' + '412': + $ref: '#/components/responses/precondition_failed' + '422': + $ref: '#/components/responses/validation_failed' + x-stackQL-resource: custom_patterns /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses: post: summary: Create a push protection bypass @@ -553,13 +1112,13 @@ paths: 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. + repository. > [!NOTE] > This endpoint requires [GitHub Advanced - Security](https://docs.github.com/get-started/learning-about-github/about-github-advanced-security)." + 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 @@ -730,6 +1289,178 @@ components: nullable: true closure_request_reviewer: $ref: '#/components/schemas/nullable-simple-user' + secret-scanning-custom-pattern: + title: Secret Scanning Custom Pattern + description: A custom pattern for secret scanning. + type: object + properties: + id: + type: integer + description: The ID of the custom pattern. + name: + type: string + description: The name of the custom pattern. + pattern: + type: string + description: The regular expression of the custom pattern. + slug: + type: string + description: >- + A URL-friendly identifier for the custom pattern, derived from its + name. + state: + type: string + description: The state of the custom pattern. + enum: + - published + - unpublished + push_protection_enabled: + type: boolean + description: Whether push protection is enabled for this custom pattern. + start_delimiter: + type: string + description: The start delimiter regex for the custom pattern. + nullable: true + end_delimiter: + type: string + description: The end delimiter regex for the custom pattern. + nullable: true + must_match: + type: array + description: List of regexes that the secret must match. + nullable: true + items: + type: string + must_not_match: + type: array + description: List of regexes that the secret must not match. + nullable: true + items: + type: string + custom_pattern_version: + $ref: '#/components/schemas/secret-scanning-row-version' + created_at: + type: string + format: date-time + description: The date and time the custom pattern was created in ISO 8601 format. + updated_at: + type: string + format: date-time + description: >- + The date and time the custom pattern was last updated in ISO 8601 + format. + required: + - id + - name + - pattern + - slug + - state + - push_protection_enabled + secret-scanning-custom-pattern-to-create: + title: Secret Scanning Custom Pattern To Create + description: A custom pattern to create in a bulk operation. + type: object + required: + - name + - pattern + properties: + name: + type: string + description: The name of the custom pattern. + pattern: + type: string + description: The regular expression of the custom pattern. + start_delimiter: + type: string + description: |- + The start delimiter regex for the custom pattern. + Defaults to `\A|[^0-9A-Za-z]` when not specified. + default: \A|[^0-9A-Za-z] + end_delimiter: + type: string + description: |- + The end delimiter regex for the custom pattern. + Defaults to `\z|[^0-9A-Za-z]` when not specified. + default: \z|[^0-9A-Za-z] + must_match: + type: array + description: List of regexes that the secret must match. + items: + type: string + must_not_match: + type: array + description: List of regexes that the secret must not match. + items: + type: string + secret-scanning-custom-pattern-validation-error: + title: Secret Scanning Custom Pattern Validation Error + description: A validation error for a custom pattern in a batch operation. + type: object + properties: + code: + type: string + description: A machine-readable code describing the error. + enum: + - invalid + - unprocessable + - start_delimiter + - end_delimiter + - name + - must_match + - must_not_match + - custom_pattern_version_mismatch + message: + type: string + description: A human-readable description of the error. + secret-scanning-custom-pattern-to-delete: + title: Secret Scanning Custom Pattern To Delete + description: A custom pattern to delete in a bulk operation. + type: object + required: + - pattern_id + properties: + pattern_id: + type: integer + description: The ID of the custom pattern to delete. + custom_pattern_version: + $ref: '#/components/schemas/secret-scanning-row-version' + secret-scanning-custom-pattern-to-update: + title: Secret Scanning Custom Pattern To Update + description: >- + Fields to update on a custom pattern. At least one updatable field + (`pattern`, `start_delimiter`, `end_delimiter`, `must_match`, or + `must_not_match`) must also be provided. Only provided fields will be + updated. + required: + - custom_pattern_version + - pattern + - start_delimiter + - end_delimiter + - must_match + - must_not_match + properties: + pattern: + type: string + description: The updated regular expression of the custom pattern. + start_delimiter: + type: string + description: The updated start delimiter regex for the custom pattern. + end_delimiter: + type: string + description: The updated end delimiter regex for the custom pattern. + must_match: + type: array + description: Updated list of regexes that the secret must match. + items: + type: string + must_not_match: + type: array + description: Updated list of regexes that the secret must not match. + items: + type: string + custom_pattern_version: + $ref: '#/components/schemas/secret-scanning-row-version' + type: object secret-scanning-pattern-configuration: title: Secret scanning pattern configuration description: >- @@ -884,6 +1615,136 @@ components: nullable: true closure_request_reviewer: $ref: '#/components/schemas/nullable-simple-user' + secret-scanning-alert-with-metadata: + 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`. + + For 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)." + provider: + type: string + description: The provider of the secret that was detected. + nullable: true + provider_slug: + type: string + description: >- + The slug identifier for the provider of the secret that was + detected. Use this value for filtering by provider with the + `providers` or `exclude_providers` parameters. + nullable: true + 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' + closure_request_comment: + type: string + description: An optional comment from the closure request author. + nullable: true + closure_request_reviewer_comment: + type: string + description: An optional comment from the closure request reviewer. + nullable: true + closure_request_reviewer: + $ref: '#/components/schemas/nullable-simple-user' + metadata: + $ref: '#/components/schemas/secret-scanning-alert-metadata' secret-scanning-alert-state: description: >- Sets the state of the secret scanning alert. You must provide @@ -1145,8 +2006,19 @@ components: status: type: string description: >- - The state of the scan. Either "completed", "running", or - "pending" + The state of the scan. Either "completed", "running", + "pending", "failed", or "unknown". + + + "failed": this scan type has hit its retry limit and has been + marked permanently failed. + + This usually resolves on its own at the next scheduled scan + attempt. If "failed" persists, contact Support. + + + "unknown": the scan is in an unrecognized or currently + unhandled state. completed_at: type: string format: date-time @@ -1169,6 +2041,10 @@ components: description: >- Level at which the custom pattern is defined, one of "repository", "organization", or "enterprise" + generic_secrets_backfill_scans: + type: array + items: + $ref: '#/components/schemas/secret-scanning-scan' alert-number: type: integer description: The security alert number. @@ -1750,10 +2626,72 @@ components: type: string documentation_url: type: string - url: + url: + type: string + status: + type: string + 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 secret-scanning-pattern-override: type: object properties: @@ -1818,68 +2756,24 @@ components: - not-set - disabled - enabled - 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: + secret-scanning-alert-metadata: + type: array + description: >- + A list of metadata key/value pairs associated with the secret scanning + alert. + readOnly: true + items: + type: object + properties: + key: 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 + description: The metadata key. + value: + type: string + description: The metadata value. + required: + - key + - value secret-scanning-location-commit: description: >- Represents a 'commit' secret scanning location type. This location type @@ -2215,7 +3109,20 @@ components: description: The type of scan status: type: string - description: The state of the scan. Either "completed", "running", or "pending" + description: >- + The state of the scan. Either "completed", "running", "pending", + "failed", or "unknown". + + + "failed": this scan type has hit its retry limit and has been marked + permanently failed. + + This usually resolves on its own at the next scheduled scan attempt. + If "failed" persists, contact Support. + + + "unknown": the scan is in an unrecognized or currently unhandled + state. completed_at: type: string format: date-time @@ -2360,8 +3267,8 @@ components: application/scim+json: schema: $ref: '#/components/schemas/scim-error' - conflict: - description: Conflict + precondition_failed: + description: Precondition Failed content: application/json: schema: @@ -2372,6 +3279,12 @@ components: application/json: schema: $ref: '#/components/schemas/validation-error' + conflict: + description: Conflict + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' not_modified: description: Not modified parameters: @@ -2590,6 +3503,91 @@ components: schema: type: boolean default: false + secret-scanning-alert-bypassed: + name: is_bypassed + in: query + description: >- + A boolean value (`true` or `false`) indicating whether to filter alerts + by their push protection bypass status. When set to `true`, only alerts + that were created because a push protection rule was bypassed will be + returned. When set to `false`, only alerts that were not caused by a + push protection bypass will be returned. + required: false + schema: + type: boolean + secret-scanning-alert-included-metadata: + name: included_metadata + in: query + description: >- + A comma-separated list of metadata fields to filter alerts by. Only + alerts that have all of the + + specified metadata fields attached will be returned. Possible values + are: `owner-email`, `owner-id`, + + `owner-name`, `secret-id`, `secret-name`, `secret-issued-date`, + `secret-expiration-date`, `organization-name`, + + `organization-id`, `last-used-date`, and `has-organization-access`. + required: false + schema: + type: string + secret-scanning-alert-owner-email-hash: + name: owner_email_hash + in: query + description: >- + Filters alerts to only those whose attached `owner_email` metadata field + matches the + + provided value. The value must be the lowercase hex-encoded SHA-256 hash + of the email + + address to match (for example, the SHA-256 of `user@example.com`). Only + alerts that + + have an `owner_email` metadata value whose SHA-256 hash equals this + parameter are + + returned. + required: false + schema: + type: string + secret-scanning-custom-pattern-state: + name: state + description: >- + Filter custom patterns by state. When absent, returns patterns in all + states. + in: query + required: false + schema: + type: string + enum: + - published + - unpublished + secret-scanning-custom-pattern-push-protection: + name: push_protection + description: >- + Filter custom patterns by whether push protection is enabled. When + absent, returns patterns regardless of push protection status. + in: query + required: false + schema: + type: string + enum: + - enabled + - disabled + secret-scanning-custom-pattern-sort: + name: sort + description: The property to sort the results by. + in: query + required: false + schema: + type: string + enum: + - created + - updated + - name + default: created owner: name: owner description: The account owner of the repository. The name is not case sensitive. @@ -2804,6 +3802,108 @@ components: received_events_url: https://api.github.com/users/octocat/received_events type: User site_admin: false + secret-scanning-custom-pattern-list: + value: + - id: 1 + name: Example Custom Pattern + pattern: '[a-z]+_token_[0-9]+' + slug: example-custom-pattern + state: published + push_protection_enabled: true + start_delimiter: null + end_delimiter: null + must_match: null + must_not_match: null + created_at: '2024-01-15T10:30:00Z' + updated_at: '2024-01-15T10:30:00Z' + - id: 2 + name: Another Custom Pattern + pattern: prefix_[a-zA-Z0-9]{32} + slug: another-custom-pattern + state: published + push_protection_enabled: false + start_delimiter: \b + end_delimiter: \b + must_match: + - ^prefix_prod + must_not_match: + - test + created_at: '2024-01-16T14:20:00Z' + updated_at: '2024-01-17T09:15:00Z' + secret-scanning-custom-pattern-bulk-create-request: + value: + patterns: + - name: Example Custom Pattern + pattern: '[a-z]+_token_[0-9]+' + - name: Another Custom Pattern + pattern: prefix_[a-zA-Z0-9]{32} + start_delimiter: \b + end_delimiter: \b + must_match: + - ^prefix_prod + must_not_match: + - test + secret-scanning-custom-pattern-bulk-create-response: + value: + created_patterns: + - id: 1 + name: Example Custom Pattern + pattern: '[a-z]+_token_[0-9]+' + slug: example-custom-pattern + state: unpublished + push_protection_enabled: false + start_delimiter: null + end_delimiter: null + must_match: null + must_not_match: null + created_at: '2024-01-15T10:30:00Z' + updated_at: '2024-01-15T10:30:00Z' + - id: 2 + name: Another Custom Pattern + pattern: prefix_[a-zA-Z0-9]{32} + slug: another-custom-pattern + state: unpublished + push_protection_enabled: false + start_delimiter: \b + end_delimiter: \b + must_match: + - ^prefix_prod + must_not_match: + - test + created_at: '2024-01-15T10:30:00Z' + updated_at: '2024-01-15T10:30:00Z' + secret-scanning-custom-pattern-bulk-delete-request: + value: + patterns: + - pattern_id: 2 + custom_pattern_version: 0ujsswThIGTUYm2K8FjOOfXtY1K + secret-scanning-custom-pattern-update-request: + value: + pattern: updated_secret_[0-9A-Z]{16} + start_delimiter: '[^0-9A-Za-z]' + end_delimiter: '[^0-9A-Za-z]' + must_match: + - updated_secret_[0-9]{2}* + must_not_match: + - updated_secret_1234567890ABCDEF + custom_pattern_version: 0ujsswThIGTUYm2K8FjOOfXtY1K + secret-scanning-custom-pattern: + value: + id: 1 + name: Example Custom Pattern + pattern: updated_secret_[0-9A-Z]{16} + slug: example_custom_pattern + state: published + push_protection_enabled: true + start_delimiter: '[^0-9A-Za-z]' + end_delimiter: '[^0-9A-Za-z]' + must_match: + - updated_secret_[0-9]{2}* + must_not_match: + - updated_secret_1234567890ABCDEF + custom_pattern_version: 0ujsswThIGTUYm2K8FjOOfXtY1K + created_at: '2024-01-15T10:30:00Z' + updated_at: '2024-06-01T12:00:00Z' secret-scanning-pattern-configuration: value: pattern_config_version: 0ujsswThIGTUYm2K8FjOOfXtY1K @@ -2972,6 +4072,9 @@ components: validity: unknown publicly_leaked: false multi_repo: false + metadata: + - key: owner_email + value: owner@example.com secret-scanning-alert-resolved: value: number: 42 @@ -3017,6 +4120,9 @@ components: validity: unknown publicly_leaked: false multi_repo: false + metadata: + - key: owner_email + value: owner@example.com assigned_to: login: octocat id: 1 @@ -3144,6 +4250,11 @@ components: completed_at: '2024-10-07T02:55:00Z' pattern_slug: my-custom-pattern pattern_scope: organization + generic_secrets_backfill_scans: + - type: git + status: completed + started_at: '2024-10-07T02:47:00Z' + completed_at: '2024-10-07T02:55:00Z' headers: link: example: >- @@ -3198,6 +4309,56 @@ components: - $ref: '#/components/x-stackQL-resources/alerts/methods/update_alert' delete: [] replace: [] + org_custom_patterns: + id: github.secret_scanning.org_custom_patterns + name: org_custom_patterns + title: Org Custom Patterns + methods: + list_org_custom_patterns: + operation: + $ref: '#/paths/~1orgs~1{org}~1secret-scanning~1custom-patterns/get' + response: + mediaType: application/json + openAPIDocKey: '200' + bulk_create_org_custom_patterns: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1orgs~1{org}~1secret-scanning~1custom-patterns/post' + response: + mediaType: application/json + openAPIDocKey: '201' + bulk_delete_org_custom_patterns: + operation: + $ref: '#/paths/~1orgs~1{org}~1secret-scanning~1custom-patterns/delete' + response: + mediaType: application/json + openAPIDocKey: '204' + update_org_custom_pattern: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: >- + #/paths/~1orgs~1{org}~1secret-scanning~1custom-patterns~1{pattern_id}/patch + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/org_custom_patterns/methods/list_org_custom_patterns + insert: + - $ref: >- + #/components/x-stackQL-resources/org_custom_patterns/methods/bulk_create_org_custom_patterns + update: + - $ref: >- + #/components/x-stackQL-resources/org_custom_patterns/methods/update_org_custom_pattern + delete: + - $ref: >- + #/components/x-stackQL-resources/org_custom_patterns/methods/bulk_delete_org_custom_patterns + replace: [] org_secret_scanning_pattern_configurations: id: github.secret_scanning.org_secret_scanning_pattern_configurations name: org_secret_scanning_pattern_configurations @@ -3249,6 +4410,59 @@ components: update: [] delete: [] replace: [] + repo_custom_patterns: + id: github.secret_scanning.repo_custom_patterns + name: repo_custom_patterns + title: Repo Custom Patterns + methods: + list_repo_custom_patterns: + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1secret-scanning~1custom-patterns/get + response: + mediaType: application/json + openAPIDocKey: '200' + bulk_create_repo_custom_patterns: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1secret-scanning~1custom-patterns/post + response: + mediaType: application/json + openAPIDocKey: '201' + bulk_delete_repo_custom_patterns: + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1secret-scanning~1custom-patterns/delete + response: + mediaType: application/json + openAPIDocKey: '204' + update_repo_custom_pattern: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: >- + #/paths/~1repos~1{owner}~1{repo}~1secret-scanning~1custom-patterns~1{pattern_id}/patch + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: >- + #/components/x-stackQL-resources/repo_custom_patterns/methods/list_repo_custom_patterns + insert: + - $ref: >- + #/components/x-stackQL-resources/repo_custom_patterns/methods/bulk_create_repo_custom_patterns + update: + - $ref: >- + #/components/x-stackQL-resources/repo_custom_patterns/methods/update_repo_custom_pattern + delete: + - $ref: >- + #/components/x-stackQL-resources/repo_custom_patterns/methods/bulk_delete_repo_custom_patterns + replace: [] repo_push_protection_bypasses: id: github.secret_scanning.repo_push_protection_bypasses name: repo_push_protection_bypasses @@ -3294,3 +4508,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/security_advisories.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/security_advisories.yaml index ba1c060..fdaf763 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/security_advisories.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/security_advisories.yaml @@ -3082,6 +3082,20 @@ components: enum: - enterprise - organization + access_source: + description: >- + How the team's access to the repository was granted. This property + is only + + present when the team is returned in a repository context, such as + + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs @@ -5240,6 +5254,12 @@ components: type: User site_admin: false type: analyst + x-github-breaking-changes: + - changeset: deprecate_cvss + patch: + - op: remove + path: /value/cvss + version: '2026-03-10' list-repository-advisories: value: - ghsa_id: GHSA-abcd-1234-efgh @@ -5890,6 +5910,12 @@ components: 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} + x-github-breaking-changes: + - changeset: deprecate_cvss + patch: + - op: remove + path: /value/cvss + version: '2026-03-10' repository-advisory-pvr: value: ghsa_id: GHSA-abcd-1234-efgh @@ -6010,6 +6036,12 @@ components: permission: admin parent: null private_fork: null + x-github-breaking-changes: + - changeset: deprecate_cvss + patch: + - op: remove + path: /value/cvss + version: '2026-03-10' full-repository: value: id: 1296269 @@ -6545,6 +6577,12 @@ components: forks: 1 open_issues: 1 watchers: 1 + x-github-breaking-changes: + - changeset: remove_has_downloads + patch: + - op: remove + path: /value/has_downloads + version: '2026-03-10' x-stackQL-resources: global_advisories: id: github.security_advisories.global_advisories @@ -6686,3 +6724,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/teams.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/teams.yaml index d7c9102..6d7d2f7 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/teams.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/teams.yaml @@ -134,6 +134,11 @@ paths: parent_team_id: type: integer description: The ID of a team to set as the parent team. + parent_team_slug: + type: string + description: >- + The slug of a team to set as the parent team. Ignored when + `parent_team_id` is also provided. required: - name examples: @@ -292,6 +297,12 @@ paths: type: integer description: The ID of a team to set as the parent team. nullable: true + parent_team_slug: + type: string + description: >- + The slug of a team to set as the parent team. Ignored when + `parent_team_id` is also provided. + nullable: true examples: default: value: @@ -422,6 +433,13 @@ paths: Team members will include the members of child teams. + Each member includes their `role` on the team (`member` or `maintainer`) + and an `inherited` flag indicating whether the membership is inherited + from a child team (`true`) or is a direct membership (`false`). These + fields let you read a member's role and direct/inherited status without + additional requests. + + To list members in a team, the team must be visible to the authenticated user. tags: @@ -454,10 +472,10 @@ paths: schema: type: array items: - $ref: '#/components/schemas/simple-user' + $ref: '#/components/schemas/team-member' examples: default: - $ref: '#/components/examples/simple-user-items' + $ref: '#/components/examples/team-member-items' headers: Link: $ref: '#/components/headers/link' @@ -681,6 +699,10 @@ paths: Lists a team's repositories visible to the authenticated user. + OAuth app tokens and personal access tokens (classic) need the + `read:org` or `repo` scope to use this endpoint. + + > [!NOTE] > You can also specify a team by `org_id` and `team_id` using the route @@ -1050,6 +1072,12 @@ paths: type: integer description: The ID of a team to set as the parent team. nullable: true + parent_team_slug: + type: string + description: >- + The slug of a team to set as the parent team. Ignored when + `parent_team_id` is also provided. + nullable: true required: - name examples: @@ -1201,6 +1229,11 @@ paths: Team members will include the members of child teams. + + + Each member includes their `role` on the team (`member` or `maintainer`) + and an `inherited` flag indicating whether the membership is inherited + from a child team (`true`) or is a direct membership (`false`). tags: - teams operationId: teams/list-members-legacy @@ -1230,10 +1263,10 @@ paths: schema: type: array items: - $ref: '#/components/schemas/simple-user' + $ref: '#/components/schemas/team-member' examples: default: - $ref: '#/components/examples/simple-user-items' + $ref: '#/components/examples/team-member-items' headers: Link: $ref: '#/components/headers/link' @@ -2028,6 +2061,20 @@ components: enum: - enterprise - organization + access_source: + description: >- + How the team's access to the repository was granted. This property + is only + + present when the team is returned in a repository context, such as + + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs @@ -2208,9 +2255,11 @@ components: - team_count - invitation_teams_url - node_id - simple-user: - title: Simple User - description: A GitHub user. + team-member: + title: Team Member + description: >- + A user that is a member of a team, including their role on the team and + whether the membership is inherited from a child team. type: object properties: name: @@ -2288,6 +2337,25 @@ components: user_view_type: type: string example: public + role: + type: string + description: >- + The member's role on the team. Only present on the `List team + members` endpoint, and only when the feature is enabled for the + organization. + enum: + - member + - maintainer + example: member + inherited: + type: boolean + description: >- + Whether the user is a member of the team only through a child team. + `true` means the membership is inherited from a child team; `false` + means the user is a direct (immediate) member of the team. Only + present on the `List team members` endpoint, and only when the + feature is enabled for the organization. + example: false required: - avatar_url - events_url @@ -3541,6 +3609,105 @@ components: nullable: true items: type: string + 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 code-of-conduct: title: Code Of Conduct description: Code Of Conduct @@ -4116,7 +4283,7 @@ components: team_count: 2 invitation_teams_url: https://api.github.com/organizations/2/invitations/1/teams invitation_source: member - simple-user-items: + team-member-items: value: - login: octocat id: 1 @@ -4136,6 +4303,8 @@ components: received_events_url: https://api.github.com/users/octocat/received_events type: User site_admin: false + role: member + inherited: false team-membership-response-if-user-is-a-team-maintainer: summary: Response if user is a team maintainer value: @@ -4393,6 +4562,12 @@ components: forks: 1 open_issues: 1 watchers: 1 + x-github-breaking-changes: + - changeset: remove_has_downloads + patch: + - op: remove + path: /value/has_downloads + version: '2026-03-10' team-items-response-if-child-teams-exist: value: - id: 2 @@ -4547,6 +4722,12 @@ components: forks: 1 open_issues: 1 watchers: 1 + x-github-breaking-changes: + - changeset: remove_has_downloads + patch: + - op: remove + path: /value/has_downloads + version: '2026-03-10' team-full-items: value: - id: 1 @@ -4973,3 +5154,11 @@ components: replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/openapi/src/github/v00.00.00000/services/users.yaml b/provider-dev/openapi/src/github/v00.00.00000/services/users.yaml index f2fd28c..cb68b23 100644 --- a/provider-dev/openapi/src/github/v00.00.00000/services/users.yaml +++ b/provider-dev/openapi/src/github/v00.00.00000/services/users.yaml @@ -7,9 +7,7 @@ paths: /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. + 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 @@ -66,15 +64,13 @@ paths: example: https://api.github.com/users/octocat/followers following_url: type: string - example: >- - https://api.github.com/users/octocat/following{/other_user} + 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} + example: https://api.github.com/users/octocat/starred{/owner}{/repo} subscriptions_url: type: string format: uri @@ -235,11 +231,9 @@ paths: additionalProperties: false examples: response-with-public-and-private-profile-information: - $ref: >- - #/components/examples/private-user-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 + $ref: '#/components/examples/private-user-response-with-public-profile-information' '304': $ref: '#/components/responses/not_modified' '401': @@ -254,11 +248,7 @@ paths: x-stackQL-resource: 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. + 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 @@ -345,8 +335,7 @@ paths: 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 + url: https://docs.github.com/rest/users/blocking#list-users-blocked-by-the-authenticated-user parameters: - $ref: '#/components/parameters/per-page' - $ref: '#/components/parameters/page' @@ -379,18 +368,13 @@ paths: /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. + 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 + url: https://docs.github.com/rest/users/blocking#check-if-a-user-is-blocked-by-the-authenticated-user parameters: - $ref: '#/components/parameters/username' responses: @@ -416,9 +400,7 @@ paths: x-stackQL-resource: blocking 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. + 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 @@ -483,8 +465,7 @@ paths: 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 + url: https://docs.github.com/rest/users/emails#set-primary-email-visibility-for-the-authenticated-user parameters: [] requestBody: required: true @@ -537,21 +518,17 @@ paths: /user/emails: get: summary: List email addresses for the authenticated user - description: >- + description: |- Lists all of your email addresses, and specifies which one is visible - to the public. - - OAuth app tokens and personal access tokens (classic) need the - `user:email` scope to use this endpoint. + OAuth 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 + url: https://docs.github.com/rest/users/emails#list-email-addresses-for-the-authenticated-user parameters: - $ref: '#/components/parameters/per-page' - $ref: '#/components/parameters/page' @@ -586,16 +563,13 @@ paths: x-stackQL-resource: emails 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. + 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 + url: https://docs.github.com/rest/users/emails#add-an-email-address-for-the-authenticated-user parameters: [] requestBody: required: false @@ -605,12 +579,7 @@ paths: 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. + 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 @@ -665,28 +634,20 @@ paths: x-stackQL-resource: emails 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. + 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 + url: https://docs.github.com/rest/users/emails#delete-an-email-address-for-the-authenticated-user parameters: [] requestBody: content: application/json: schema: 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. + 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. @@ -740,8 +701,7 @@ paths: 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 + url: https://docs.github.com/rest/users/followers#list-followers-of-the-authenticated-user parameters: - $ref: '#/components/parameters/per-page' - $ref: '#/components/parameters/page' @@ -781,8 +741,7 @@ paths: 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 + 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' @@ -822,8 +781,7 @@ paths: 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 + url: https://docs.github.com/rest/users/followers#check-if-a-person-is-followed-by-the-authenticated-user parameters: - $ref: '#/components/parameters/username' responses: @@ -849,14 +807,10 @@ paths: x-stackQL-resource: 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/guides/getting-started-with-the-rest-api#http-method)." - + 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)." - OAuth app tokens and personal access tokens (classic) need the - `user:follow` scope to use this endpoint. + OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint. tags: - users operationId: users/follow @@ -886,9 +840,7 @@ paths: x-stackQL-resource: followers delete: summary: Unfollow a user - description: >- - OAuth app tokens and personal access tokens (classic) need the - `user:follow` scope to use this endpoint. + description: OAuth app tokens and personal access tokens (classic) need the `user:follow` scope to use this endpoint. tags: - users operationId: users/unfollow @@ -917,19 +869,16 @@ paths: /user/gpg_keys: get: summary: List GPG keys for the authenticated user - description: >- + description: |- Lists the current user's GPG keys. - - OAuth app tokens and personal access tokens (classic) need the - `read:gpg_key` scope to use this endpoint. + OAuth 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 + url: https://docs.github.com/rest/users/gpg-keys#list-gpg-keys-for-the-authenticated-user parameters: - $ref: '#/components/parameters/per-page' - $ref: '#/components/parameters/page' @@ -964,19 +913,16 @@ paths: x-stackQL-resource: gpg_keys post: summary: Create a GPG key for the authenticated user - description: >- + description: |- Adds a GPG key to the authenticated user's GitHub account. - - OAuth app tokens and personal access tokens (classic) need the - `write:gpg_key` scope to use this endpoint. + OAuth 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 + url: https://docs.github.com/rest/users/gpg-keys#create-a-gpg-key-for-the-authenticated-user parameters: [] requestBody: required: true @@ -1032,19 +978,16 @@ paths: /user/gpg_keys/{gpg_key_id}: get: summary: Get a GPG key for the authenticated user - description: >- + description: |- View extended details for a single GPG key. - - OAuth app tokens and personal access tokens (classic) need the - `read:gpg_key` scope to use this endpoint. + OAuth 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 + 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: @@ -1073,19 +1016,16 @@ paths: x-stackQL-resource: gpg_keys delete: summary: Delete a GPG key for the authenticated user - description: >- + description: |- Removes a GPG key from the authenticated user's GitHub account. - - OAuth app tokens and personal access tokens (classic) need the - `admin:gpg_key` scope to use this endpoint. + OAuth 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 + url: https://docs.github.com/rest/users/gpg-keys#delete-a-gpg-key-for-the-authenticated-user parameters: - $ref: '#/components/parameters/gpg-key-id' responses: @@ -1110,19 +1050,16 @@ paths: /user/keys: get: summary: List public SSH keys for the authenticated user - description: >- + description: |- Lists the public SSH keys for the authenticated user's GitHub account. - - OAuth app tokens and personal access tokens (classic) need the - `read:public_key` scope to use this endpoint. + OAuth 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 + url: https://docs.github.com/rest/users/keys#list-public-ssh-keys-for-the-authenticated-user parameters: - $ref: '#/components/parameters/per-page' - $ref: '#/components/parameters/page' @@ -1157,19 +1094,16 @@ paths: x-stackQL-resource: keys post: summary: Create a public SSH key for the authenticated user - description: >- + description: |- Adds a public SSH key to the authenticated user's GitHub account. - - OAuth app tokens and personal access tokens (classic) need the - `write:public_key` scope to use this endpoint. + OAuth 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 + url: https://docs.github.com/rest/users/keys#create-a-public-ssh-key-for-the-authenticated-user parameters: [] requestBody: required: true @@ -1222,19 +1156,16 @@ paths: /user/keys/{key_id}: get: summary: Get a public SSH key for the authenticated user - description: >- + description: |- View extended details for a single public SSH key. - - OAuth app tokens and personal access tokens (classic) need the - `read:public_key` scope to use this endpoint. + OAuth 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 + url: https://docs.github.com/rest/users/keys#get-a-public-ssh-key-for-the-authenticated-user parameters: - $ref: '#/components/parameters/key-id' responses: @@ -1263,19 +1194,16 @@ paths: x-stackQL-resource: keys delete: summary: Delete a public SSH key for the authenticated user - description: >- + description: |- Removes a public SSH key from the authenticated user's GitHub account. - - OAuth app tokens and personal access tokens (classic) need the - `admin:public_key` scope to use this endpoint. + OAuth 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 + url: https://docs.github.com/rest/users/keys#delete-a-public-ssh-key-for-the-authenticated-user parameters: - $ref: '#/components/parameters/key-id' responses: @@ -1298,24 +1226,18 @@ paths: /user/public_emails: get: summary: List public email addresses for the authenticated user - description: >- + 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/users/emails#set-primary-email-visibility-for-the-authenticated-user) - + [Set primary email visibility for the authenticated user](https://docs.github.com/rest/users/emails#set-primary-email-visibility-for-the-authenticated-user) endpoint. - - OAuth app tokens and personal access tokens (classic) need the - `user:email` scope to use this endpoint. + OAuth 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 + url: https://docs.github.com/rest/users/emails#list-public-email-addresses-for-the-authenticated-user parameters: - $ref: '#/components/parameters/per-page' - $ref: '#/components/parameters/page' @@ -1357,8 +1279,7 @@ paths: 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 + url: https://docs.github.com/rest/users/social-accounts#list-social-accounts-for-the-authenticated-user parameters: - $ref: '#/components/parameters/per-page' - $ref: '#/components/parameters/page' @@ -1393,19 +1314,16 @@ paths: x-stackQL-resource: social_accounts post: summary: Add social accounts for the authenticated user - description: >- + description: |- Add one or more social accounts to the authenticated user's profile. - - OAuth app tokens and personal access tokens (classic) need the `user` - scope to use this endpoint. + OAuth 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 + url: https://docs.github.com/rest/users/social-accounts#add-social-accounts-for-the-authenticated-user parameters: [] requestBody: required: true @@ -1464,20 +1382,16 @@ paths: x-stackQL-resource: social_accounts delete: summary: Delete social accounts for the authenticated user - description: >- - Deletes one or more social accounts from the authenticated user's - profile. + description: |- + Deletes one or more social accounts from the authenticated user's profile. - - OAuth app tokens and personal access tokens (classic) need the `user` - scope to use this endpoint. + OAuth 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 + url: https://docs.github.com/rest/users/social-accounts#delete-social-accounts-for-the-authenticated-user parameters: [] requestBody: required: true @@ -1528,19 +1442,16 @@ paths: /user/ssh_signing_keys: get: summary: List SSH signing keys for the authenticated user - description: >- + description: |- Lists the SSH signing keys for the authenticated user's GitHub account. - - OAuth app tokens and personal access tokens (classic) need the - `read:ssh_signing_key` scope to use this endpoint. + OAuth 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 + url: https://docs.github.com/rest/users/ssh-signing-keys#list-ssh-signing-keys-for-the-authenticated-user parameters: - $ref: '#/components/parameters/per-page' - $ref: '#/components/parameters/page' @@ -1576,19 +1487,16 @@ paths: x-stackQL-resource: ssh_signing_keys post: summary: Create a SSH signing key for the authenticated user - description: >- + description: |- Creates an SSH signing key for the authenticated user's GitHub account. - - OAuth app tokens and personal access tokens (classic) need the - `write:ssh_signing_key` scope to use this endpoint. + OAuth 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 + url: https://docs.github.com/rest/users/ssh-signing-keys#create-a-ssh-signing-key-for-the-authenticated-user parameters: [] requestBody: required: true @@ -1601,14 +1509,9 @@ paths: 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)." + 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 + pattern: '^ssh-(rsa|dss|ed25519) |^ecdsa-sha2-nistp(256|384|521) |^(sk-ssh-ed25519|sk-ecdsa-sha2-nistp256)@openssh.com ' required: - key type: object @@ -1646,19 +1549,16 @@ paths: /user/ssh_signing_keys/{ssh_signing_key_id}: get: summary: Get an SSH signing key for the authenticated user - description: >- + description: |- Gets extended details for an SSH signing key. - - OAuth app tokens and personal access tokens (classic) need the - `read:ssh_signing_key` scope to use this endpoint. + OAuth 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 + 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: @@ -1687,19 +1587,16 @@ paths: x-stackQL-resource: ssh_signing_keys delete: summary: Delete an SSH signing key for the authenticated user - description: >- + description: |- Deletes an SSH signing key from the authenticated user's GitHub account. - - OAuth app tokens and personal access tokens (classic) need the - `admin:ssh_signing_key` scope to use this endpoint. + OAuth 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 + 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: @@ -1722,35 +1619,14 @@ paths: /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. + 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. + If 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. - If 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. + The `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). - - The `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). - - - The 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). + The 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 @@ -1808,15 +1684,13 @@ paths: example: https://api.github.com/users/octocat/followers following_url: type: string - example: >- - https://api.github.com/users/octocat/following{/other_user} + 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} + example: https://api.github.com/users/octocat/starred{/owner}{/repo} subscriptions_url: type: string format: uri @@ -1979,8 +1853,7 @@ paths: 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 + $ref: '#/components/examples/public-user-response-with-git-hub-plan-information' '404': $ref: '#/components/responses/not_found' x-github: @@ -1992,15 +1865,10 @@ paths: /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. + description: |- + Lists all users, in the order that they signed up on GitHub. This list includes personal user accounts and organization accounts. - - 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 users. + 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 users. tags: - users operationId: users/list @@ -2038,34 +1906,14 @@ paths: /users/{username}: get: summary: Get a user - description: >- - Provides publicly available information about someone with a GitHub - account. - + description: |- + Provides publicly available information about someone with a GitHub account. - If 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. + If 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. + The `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). - The `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). - - - The 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). + The 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 @@ -2123,15 +1971,13 @@ paths: example: https://api.github.com/users/octocat/followers following_url: type: string - example: >- - https://api.github.com/users/octocat/following{/other_user} + 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} + example: https://api.github.com/users/octocat/starred{/owner}{/repo} subscriptions_url: type: string format: uri @@ -2294,8 +2140,7 @@ paths: 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 + $ref: '#/components/examples/public-user-response-with-git-hub-plan-information' '404': $ref: '#/components/responses/not_found' x-github: @@ -2307,35 +2152,18 @@ paths: /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. - + description: |- + List a collection of artifact attestations associated with any entry in a list of subject digests owned by a user. - 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. + 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). + **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 + url: https://docs.github.com/rest/users/attestations#list-attestations-by-bulk-subject-digests parameters: - $ref: '#/components/parameters/per-page' - $ref: '#/components/parameters/pagination-before' @@ -2357,13 +2185,9 @@ paths: maxItems: 1024 predicate_type: type: string - description: >- - Optional filter for fetching attestations with a given - predicate type. - - This option accepts `provenance`, `sbom`, `release`, or - freeform text - + description: |- + Optional filter for fetching attestations with a given predicate type. + This option accepts `provenance`, `sbom`, `release`, or freeform text for custom predicate types. required: - subject_digests @@ -2371,8 +2195,7 @@ paths: default: $ref: '#/components/examples/bulk-subject-digest-body' withPredicateType: - $ref: >- - #/components/examples/bulk-subject-digest-body-with-predicate-type + $ref: '#/components/examples/bulk-subject-digest-body-with-predicate-type' responses: '200': description: Response @@ -2453,16 +2276,13 @@ paths: /users/{username}/attestations/delete-request: post: summary: Delete attestations in bulk - description: >- - Delete artifact attestations in bulk by either subject digests or unique - ID. + 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 + url: https://docs.github.com/rest/users/attestations#delete-attestations-in-bulk parameters: - $ref: '#/components/parameters/username' requestBody: @@ -2471,26 +2291,20 @@ paths: application/json: schema: type: object - description: >- - The request body must include either `subject_digests` or - `attestation_ids`, but not both. + description: The request body must include either `subject_digests` or `attestation_ids`, but not both. properties: subject_digests: type: array items: type: string - description: >- - List of subject digests associated with the artifact - attestations to delete. + description: List of subject digests associated with the artifact attestations to delete. minItems: 1 maxItems: 1024 attestation_ids: type: array items: type: integer - description: >- - List of unique IDs associated with the artifact attestations - to delete. + description: List of unique IDs associated with the artifact attestations to delete. minItems: 1 maxItems: 1024 required: @@ -2529,8 +2343,7 @@ paths: 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 + url: https://docs.github.com/rest/users/attestations#delete-attestations-by-subject-digest parameters: - $ref: '#/components/parameters/username' - name: subject_digest @@ -2556,16 +2369,13 @@ paths: /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. + 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 + url: https://docs.github.com/rest/users/attestations#delete-attestations-by-id parameters: - $ref: '#/components/parameters/username' - name: attestation_id @@ -2592,28 +2402,12 @@ paths: /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. - - - 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. + description: |- + List a collection of artifact attestations with a given subject digest that are associated with repositories owned by a user. + 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). + **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 @@ -2633,13 +2427,9 @@ paths: type: string x-multi-segment: true - name: predicate_type - description: >- - Optional filter for fetching attestations with a given predicate - type. - - This option accepts `provenance`, `sbom`, `release`, or freeform - text - + description: |- + Optional filter for fetching attestations with a given predicate type. + This option accepts `provenance`, `sbom`, `release`, or freeform text for custom predicate types. in: query required: false @@ -2671,12 +2461,9 @@ paths: type: object properties: {} additionalProperties: true - description: >- + description: |- The attestation's Sigstore Bundle. - - Refer to the [Sigstore Bundle - Specification](https://github.com/sigstore/protobuf-specs/blob/main/protos/sigstore_bundle.proto) - for more information. + Refer 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: @@ -2765,8 +2552,7 @@ paths: 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 + url: https://docs.github.com/rest/users/followers#list-the-people-a-user-follows parameters: - $ref: '#/components/parameters/username' - $ref: '#/components/parameters/per-page' @@ -2801,8 +2587,7 @@ paths: 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 + url: https://docs.github.com/rest/users/followers#check-if-a-user-follows-another-user parameters: - $ref: '#/components/parameters/username' - name: target_user @@ -2859,29 +2644,22 @@ paths: /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. + description: |- + Provides hovercard information. You can find out more about someone in relation to their pull requests, issues, repositories, and organizations. 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). - OAuth app tokens and personal access tokens (classic) need the `repo` - scope to use this endpoint. + OAuth 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 + url: https://docs.github.com/rest/users/users#get-contextual-information-for-a-user parameters: - $ref: '#/components/parameters/username' - 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`. + 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: @@ -2892,9 +2670,7 @@ paths: - issue - pull_request - name: subject_id - description: >- - Uses the ID for the `subject_type` you specified. **Required** when - using `subject_type`. + description: Uses the ID for the `subject_type` you specified. **Required** when using `subject_type`. in: query required: false schema: @@ -2922,9 +2698,7 @@ paths: /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. + description: Lists the _verified_ public SSH keys for a user. This is accessible by anyone. tags: - users operationId: users/list-public-keys-for-user @@ -2959,16 +2733,13 @@ paths: /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. + 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 + url: https://docs.github.com/rest/users/social-accounts#list-social-accounts-for-a-user parameters: - $ref: '#/components/parameters/username' - $ref: '#/components/parameters/per-page' @@ -2997,16 +2768,13 @@ paths: /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. + 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 + url: https://docs.github.com/rest/users/ssh-signing-keys#list-ssh-signing-keys-for-a-user parameters: - $ref: '#/components/parameters/username' - $ref: '#/components/parameters/per-page' @@ -3032,6 +2800,217 @@ paths: category: users subcategory: ssh-signing-keys x-stackQL-resource: ssh_signing_keys + /graphql?resource=contribution_calendar: + post: + operationId: graphql/users/contribution_calendar/list + summary: Contribution Calendar + description: A user's contribution calendar (the profile contribution graph), one row per week with the daily counts as a JSON array - expand with `json_each`. Defaults to the trailing year; pass `from` and `to` (ISO 8601 timestamps, at most one year apart) for another window. Backed by the GitHub GraphQL API (`user.contributionsCollection.contributionCalendar`). + x-stackQL-graphQL: + url: https://api.github.com/graphql + httpVerb: POST + responseSelection: + jsonPath: $.data.user.contributionsCollection.contributionCalendar.weeks[*] + cursor: + jsonPath: $.data.__no_cursor + query: | + query { + user(login: "{{ .username }}") { + contributionsCollection{{ if or .from .to }}({{ if .from }}from: "{{ .from }}" {{ end }}{{ if .to }}to: "{{ .to }}"{{ end }}){{ end }} { + contributionCalendar { + weeks { + first_day: firstDay + contribution_days: contributionDays { + date + weekday + contribution_count: contributionCount + color + } + } + } + } + } + } + x-stackql-protocol: graphql + externalDocs: + description: GitHub GraphQL API documentation + url: https://docs.github.com/graphql + parameters: + - name: username + in: query + required: true + schema: + type: string + description: The handle for the GitHub user account. + - name: from + in: query + required: false + schema: + type: string + format: date-time + description: Only contributions made at this time or later will be counted. ISO 8601, e.g. 2025-01-01T00:00:00Z. + - name: to + in: query + required: false + schema: + type: string + format: date-time + description: Only contributions made before and up to this time will be counted. ISO 8601. + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + user: + type: object + properties: + contributionsCollection: + type: object + properties: + contributionCalendar: + type: object + properties: + weeks: + type: array + items: + type: object + properties: + first_day: + type: string + format: date + description: The date of the first day (Sunday) of the week. + contribution_days: + type: array + description: 'Daily entries for the week: `date`, `weekday` (0 = Sunday), `contribution_count`, `color`.' + items: + type: object + properties: + date: + type: string + format: date + weekday: + type: integer + contribution_count: + type: integer + color: + type: string + /graphql?resource=sponsorships: + post: + operationId: graphql/users/sponsorships/list + summary: Sponsorships + description: GitHub Sponsors sponsorships where the user is the maintainer being sponsored. Backed by the GitHub GraphQL API (`user.sponsorshipsAsMaintainer`). Private sponsorships are only visible to the sponsored account. + x-stackQL-graphQL: + url: https://api.github.com/graphql + httpVerb: POST + responseSelection: + jsonPath: $.data.user.sponsorshipsAsMaintainer.nodes[*] + cursor: + strategy: page_info + jsonPath: $.data.user.sponsorshipsAsMaintainer.pageInfo.endCursor + terminateOnJsonPath: $.data.user.sponsorshipsAsMaintainer.pageInfo.hasNextPage + query: | + query { + user(login: "{{ .username }}") { + sponsorshipsAsMaintainer(first: 100, includePrivate: true{{ .cursor }}) { + pageInfo { endCursor hasNextPage } + nodes { + id + created_at: createdAt + is_one_time_payment: isOneTimePayment + is_active: isActive + privacy_level: privacyLevel + tier { + name + monthly_price_in_dollars: monthlyPriceInDollars + monthly_price_in_cents: monthlyPriceInCents + is_one_time: isOneTime + } + sponsor_entity: sponsorEntity { + ... on User { login name } + ... on Organization { login name } + } + } + } + } + } + x-stackql-protocol: graphql + externalDocs: + description: GitHub GraphQL API documentation + url: https://docs.github.com/graphql + parameters: + - name: username + in: query + required: true + schema: + type: string + description: The handle for the GitHub user account. + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + data: + type: object + properties: + user: + type: object + properties: + sponsorshipsAsMaintainer: + type: object + properties: + nodes: + type: array + items: + type: object + properties: + id: + type: string + description: The GraphQL node ID of the sponsorship. + created_at: + type: string + format: date-time + is_one_time_payment: + type: boolean + is_active: + type: boolean + privacy_level: + type: string + description: PUBLIC or PRIVATE. + tier: + type: object + description: The sponsorship tier (`name`, `monthly_price_in_dollars`, `monthly_price_in_cents`, `is_one_time`). + properties: + name: + type: string + monthly_price_in_dollars: + type: integer + monthly_price_in_cents: + type: integer + is_one_time: + type: boolean + sponsor_entity: + type: object + description: The sponsoring user or organization (`login`, `name`). + properties: + login: + type: string + name: + type: string + pageInfo: + type: object + properties: + endCursor: + type: string + hasNextPage: + type: boolean components: schemas: private-user: @@ -3842,20 +3821,14 @@ components: parameters: 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)." + 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 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)." + 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 @@ -3904,24 +3877,14 @@ components: type: integer 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)." + 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 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)." + 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: @@ -4160,10 +4123,7 @@ components: 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-----" + 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-----"' key-items: value: - key: 2Sg8iYjAxxmI2LvUXpJjkYrMxURPc8r+dB7TJyvv1234 @@ -4311,8 +4271,7 @@ components: version: 0.0.1 integratedTime: '1716998992' inclusionPromise: - signedEntryTimestamp: >- - MEYCIQCeEsQAy+qXtULkh52wbnHrkt2R2JQ05P9STK/xmdpQ2AIhANiG5Gw6cQiMnwvUz1+9UKtG/vlC8dduq07wsFOViwSL + signedEntryTimestamp: MEYCIQCeEsQAy+qXtULkh52wbnHrkt2R2JQ05P9STK/xmdpQ2AIhANiG5Gw6cQiMnwvUz1+9UKtG/vlC8dduq07wsFOViwSL inclusionProof: logIndex: '93750549' rootHash: KgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60= @@ -4332,24 +4291,16 @@ components: - 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= + 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== + 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 + payload: eyJfdHlwZSI6Imh0dHBzOi8vaW4tdG90by5pby9TdGF0ZW1lbnQvdjEiLCJzdWJqZWN0IjpbeyJuYW1lIjoiZ2hfMi41MC4wX3dpbmRvd3NfYXJtNjQuemlwIiwiZGlnZXN0Ijp7InNoYTI1NiI6IjhhYWQxMjBiNDE2Mzg2YjQyNjllZjYyYzhmZGViY2FkMzFhNzA4NDcyOTc4MTdhMTQ5ZGFmOTI3ZWRjODU1NDgifX1dLCJwcmVkaWNhdGVUeXBlIjoiaHR0cHM6Ly9zbHNhLmRldi9wcm92ZW5hbmNlL3YxIiwicHJlZGljYXRlIjp7ImJ1aWxkRGVmaW5pdGlvbiI6eyJidWlsZFR5cGUiOiJodHRwczovL3Nsc2EtZnJhbWV3b3JrLmdpdGh1Yi5pby9naXRodWItYWN0aW9ucy1idWlsZHR5cGVzL3dvcmtmbG93L3YxIiwiZXh0ZXJuYWxQYXJhbWV0ZXJzIjp7IndvcmtmbG93Ijp7InJlZiI6InJlZnMvaGVhZHMvdHJ1bmsiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkiLCJwYXRoIjoiLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWwifX0sImludGVybmFsUGFyYW1ldGVycyI6eyJnaXRodWIiOnsiZXZlbnRfbmFtZSI6IndvcmtmbG93X2Rpc3BhdGNoIiwicmVwb3NpdG9yeV9pZCI6IjIxMjYxMzA0OSIsInJlcG9zaXRvcnlfb3duZXJfaWQiOiI1OTcwNDcxMSJ9fSwicmVzb2x2ZWREZXBlbmRlbmNpZXMiOlt7InVyaSI6ImdpdCtodHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaUByZWZzL2hlYWRzL3RydW5rIiwiZGlnZXN0Ijp7ImdpdENvbW1pdCI6ImZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAifX1dfSwicnVuRGV0YWlscyI6eyJidWlsZGVyIjp7ImlkIjoiaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvcnVubmVyL2dpdGh1Yi1ob3N0ZWQifSwibWV0YWRhdGEiOnsiaW52b2NhdGlvbklkIjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvYWN0aW9ucy9ydW5zLzkyODkwNzU3NTIvYXR0ZW1wdHMvMSJ9fX19 payloadType: application/vnd.in-toto+json signatures: - - sig: >- - MEQCIEGIGAm7gZVLLpsrPcjndEjiuctE2/c9+j9KGvazz3rlAiAd6O16T5hkzRM3IbRPzm+xT40mNQZxefd7laDP6x2XLQ== + - sig: MEQCIEGIGAm7gZVLLpsrPcjndEjiuctE2/c9+j9KGvazz3rlAiAd6O16T5hkzRM3IbRPzm+xT40mNQZxefd7laDP6x2XLQ== repository_id: 1 - bundle: mediaType: application/vnd.dev.sigstore.bundle.v0.3+json @@ -4363,8 +4314,7 @@ components: version: 0.0.1 integratedTime: '1716998992' inclusionPromise: - signedEntryTimestamp: >- - MEYCIQCeEsQAy+qXtULkh52wbnHrkt2R2JQ05P9STK/xmdpQ2AIhANiG5Gw6cQiMnwvUz1+9UKtG/vlC8dduq07wsFOViwSL + signedEntryTimestamp: MEYCIQCeEsQAy+qXtULkh52wbnHrkt2R2JQ05P9STK/xmdpQ2AIhANiG5Gw6cQiMnwvUz1+9UKtG/vlC8dduq07wsFOViwSL inclusionProof: logIndex: '93750549' rootHash: KgKiXoOl8rM5d4y6Xlbm2QLftvj/FYvTs6z7dJlNO60= @@ -4384,132 +4334,26 @@ components: - 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= + 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== + 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 + payload: eyJfdHlwZSI6Imh0dHBzOi8vaW4tdG90by5pby9TdGF0ZW1lbnQvdjEiLCJzdWJqZWN0IjpbeyJuYW1lIjoiZ2hfMi41MC4wX3dpbmRvd3NfYXJtNjQuemlwIiwiZGlnZXN0Ijp7InNoYTI1NiI6IjhhYWQxMjBiNDE2Mzg2YjQyNjllZjYyYzhmZGViY2FkMzFhNzA4NDcyOTc4MTdhMTQ5ZGFmOTI3ZWRjODU1NDgifX1dLCJwcmVkaWNhdGVUeXBlIjoiaHR0cHM6Ly9zbHNhLmRldi9wcm92ZW5hbmNlL3YxIiwicHJlZGljYXRlIjp7ImJ1aWxkRGVmaW5pdGlvbiI6eyJidWlsZFR5cGUiOiJodHRwczovL3Nsc2EtZnJhbWV3b3JrLmdpdGh1Yi5pby9naXRodWItYWN0aW9ucy1idWlsZHR5cGVzL3dvcmtmbG93L3YxIiwiZXh0ZXJuYWxQYXJhbWV0ZXJzIjp7IndvcmtmbG93Ijp7InJlZiI6InJlZnMvaGVhZHMvdHJ1bmsiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkiLCJwYXRoIjoiLmdpdGh1Yi93b3JrZmxvd3MvZGVwbG95bWVudC55bWwifX0sImludGVybmFsUGFyYW1ldGVycyI6eyJnaXRodWIiOnsiZXZlbnRfbmFtZSI6IndvcmtmbG93X2Rpc3BhdGNoIiwicmVwb3NpdG9yeV9pZCI6IjIxMjYxMzA0OSIsInJlcG9zaXRvcnlfb3duZXJfaWQiOiI1OTcwNDcxMSJ9fSwicmVzb2x2ZWREZXBlbmRlbmNpZXMiOlt7InVyaSI6ImdpdCtodHRwczovL2dpdGh1Yi5jb20vY2xpL2NsaUByZWZzL2hlYWRzL3RydW5rIiwiZGlnZXN0Ijp7ImdpdENvbW1pdCI6ImZhZWYyZGRkODFiMDczNjc0ODQxM2E3YzY0NmNkMGJmYzI2YzAwYTAifX1dfSwicnVuRGV0YWlscyI6eyJidWlsZGVyIjp7ImlkIjoiaHR0cHM6Ly9naXRodWIuY29tL2FjdGlvbnMvcnVubmVyL2dpdGh1Yi1ob3N0ZWQifSwibWV0YWRhdGEiOnsiaW52b2NhdGlvbklkIjoiaHR0cHM6Ly9naXRodWIuY29tL2NsaS9jbGkvYWN0aW9ucy9ydW5zLzkyODkwNzU3NTIvYXR0ZW1wdHMvMSJ9fX19 payloadType: application/vnd.in-toto+json signatures: - - sig: >- - MEQCIEGIGAm7gZVLLpsrPcjndEjiuctE2/c9+j9KGvazz3rlAiAd6O16T5hkzRM3IbRPzm+xT40mNQZxefd7laDP6x2XLQ== + - sig: MEQCIEGIGAm7gZVLLpsrPcjndEjiuctE2/c9+j9KGvazz3rlAiAd6O16T5hkzRM3IbRPzm+xT40mNQZxefd7laDP6x2XLQ== repository_id: 1 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 + - repository_id: 1 + bundle_url: https://tmastaging.blob.core.windows.net/attestations/1/2024/11/08/4.json.sn?se=2024-11-09T17%3A13%3A43Z&sig=jPSbbJnIEshUyCjBLU5Ykq0uuGc5UYxTZE1%2FhdBNMXk%3D&sp=r&spr=https%2Chttp&sr=b&st=2024-11-08T17%3A13%3A43Z&sv=2024-08-04 + initiator: user + - repository_id: 1 + bundle_url: https://tmastaging.blob.core.windows.net/attestations/1/2024/11/08/5.json.sn?se=2024-11-09T17%3A13%3A43Z&sig=jPSbbJnIEshUyCjBLU5Ykq0uuGc5UYxTZE1%2FhdBNMXk%3D&sp=r&spr=https%2Chttp&sr=b&st=2024-11-08T17%3A13%3A43Z&sv=2024-08-04 + initiator: user hovercard: value: contexts: @@ -4521,53 +4365,82 @@ components: key: ssh-rsa AAA... headers: link: - example: >- - ; rel="next", - ; rel="last" + example: ; rel="next", ; rel="last" schema: type: string x-stackQL-resources: - users: - id: github.users.users - name: users - title: Users + attestations: + id: github.users.attestations + name: attestations + title: Attestations methods: - get_authenticated: + delete_attestations_by_subject_digest: operation: - $ref: '#/paths/~1user/get' + $ref: '#/paths/~1users~1{username}~1attestations~1digest~1{subject_digest}/delete' response: mediaType: application/json openAPIDocKey: '200' - update_authenticated: - config: - requestBodyTranslate: - algorithm: naive + delete_attestations_by_id: operation: - $ref: '#/paths/~1user/patch' + $ref: '#/paths/~1users~1{username}~1attestations~1{attestation_id}/delete' response: mediaType: application/json openAPIDocKey: '200' - get_by_id: + list_attestations: operation: - $ref: '#/paths/~1user~1{account_id}/get' + $ref: '#/paths/~1users~1{username}~1attestations~1{subject_digest}/get' response: mediaType: application/json openAPIDocKey: '200' - get_by_username: + objectKey: $.attestations + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/attestations/methods/list_attestations' + insert: [] + update: [] + delete: + - $ref: '#/components/x-stackQL-resources/attestations/methods/delete_attestations_by_subject_digest' + - $ref: '#/components/x-stackQL-resources/attestations/methods/delete_attestations_by_id' + replace: [] + attestations_bulk_deletes: + id: github.users.attestations_bulk_deletes + name: attestations_bulk_deletes + title: Attestations Bulk Deletes + methods: + delete_attestations_bulk: + config: + requestBodyTranslate: + algorithm: naive operation: - $ref: '#/paths/~1users~1{username}/get' + $ref: '#/paths/~1users~1{username}~1attestations~1delete-request/post' response: mediaType: application/json openAPIDocKey: '200' sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/users/methods/get_by_id' - - $ref: '#/components/x-stackQL-resources/users/methods/get_by_username' - - $ref: '#/components/x-stackQL-resources/users/methods/get_authenticated' + select: [] insert: [] - update: - - $ref: >- - #/components/x-stackQL-resources/users/methods/update_authenticated + update: [] + delete: [] + replace: [] + attestations_bulk_list: + id: github.users.attestations_bulk_list + name: attestations_bulk_list + title: Attestations Bulk List + methods: + list_attestations_bulk: + config: + requestBodyTranslate: + algorithm: naive + operation: + $ref: '#/paths/~1users~1{username}~1attestations~1bulk-list/post' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: [] + insert: + - $ref: '#/components/x-stackQL-resources/attestations_bulk_list/methods/list_attestations_bulk' + update: [] delete: [] replace: [] blocking: @@ -4601,8 +4474,27 @@ components: openAPIDocKey: '204' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/blocking/methods/list_blocked_by_authenticated_user + - $ref: '#/components/x-stackQL-resources/blocking/methods/list_blocked_by_authenticated_user' + insert: [] + update: [] + delete: [] + replace: [] + contribution_calendar: + id: github.users.contribution_calendar + name: contribution_calendar + title: Contribution Calendar + methods: + list: + operation: + $ref: '#/paths/~1graphql?resource=contribution_calendar/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.user.contributionsCollection.contributionCalendar.weeks + x-stackql-protocol: graphql + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/contribution_calendar/methods/list' insert: [] update: [] delete: [] @@ -4644,17 +4536,13 @@ components: openAPIDocKey: '204' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/emails/methods/list_emails_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/emails/methods/list_emails_for_authenticated_user' insert: - - $ref: >- - #/components/x-stackQL-resources/emails/methods/add_email_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/emails/methods/add_email_for_authenticated_user' update: - - $ref: >- - #/components/x-stackQL-resources/emails/methods/set_primary_email_visibility_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/emails/methods/set_primary_email_visibility_for_authenticated_user' delete: - - $ref: >- - #/components/x-stackQL-resources/emails/methods/delete_email_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/emails/methods/delete_email_for_authenticated_user' replace: [] followers: id: github.users.followers @@ -4675,10 +4563,8 @@ components: openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/followers/methods/list_followers_for_user - - $ref: >- - #/components/x-stackQL-resources/followers/methods/list_followers_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/followers/methods/list_followers_for_user' + - $ref: '#/components/x-stackQL-resources/followers/methods/list_followers_for_authenticated_user' insert: [] update: [] delete: [] @@ -4726,10 +4612,8 @@ components: openAPIDocKey: '204' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/following/methods/list_following_for_user - - $ref: >- - #/components/x-stackQL-resources/following/methods/list_followed_by_authenticated_user + - $ref: '#/components/x-stackQL-resources/following/methods/list_following_for_user' + - $ref: '#/components/x-stackQL-resources/following/methods/list_followed_by_authenticated_user' insert: [] update: [] delete: [] @@ -4774,19 +4658,33 @@ components: openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/gpg_keys/methods/get_gpg_key_for_authenticated_user - - $ref: >- - #/components/x-stackQL-resources/gpg_keys/methods/list_gpg_keys_for_user - - $ref: >- - #/components/x-stackQL-resources/gpg_keys/methods/list_gpg_keys_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/gpg_keys/methods/get_gpg_key_for_authenticated_user' + - $ref: '#/components/x-stackQL-resources/gpg_keys/methods/list_gpg_keys_for_user' + - $ref: '#/components/x-stackQL-resources/gpg_keys/methods/list_gpg_keys_for_authenticated_user' insert: - - $ref: >- - #/components/x-stackQL-resources/gpg_keys/methods/create_gpg_key_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/gpg_keys/methods/create_gpg_key_for_authenticated_user' update: [] delete: - - $ref: >- - #/components/x-stackQL-resources/gpg_keys/methods/delete_gpg_key_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/gpg_keys/methods/delete_gpg_key_for_authenticated_user' + replace: [] + hovercard: + id: github.users.hovercard + name: hovercard + title: Hovercard + methods: + get_context_for_user: + operation: + $ref: '#/paths/~1users~1{username}~1hovercard/get' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.contexts + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/hovercard/methods/get_context_for_user' + insert: [] + update: [] + delete: [] replace: [] keys: id: github.users.keys @@ -4828,19 +4726,14 @@ components: openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/keys/methods/get_public_ssh_key_for_authenticated_user - - $ref: >- - #/components/x-stackQL-resources/keys/methods/list_public_keys_for_user - - $ref: >- - #/components/x-stackQL-resources/keys/methods/list_public_ssh_keys_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/keys/methods/get_public_ssh_key_for_authenticated_user' + - $ref: '#/components/x-stackQL-resources/keys/methods/list_public_keys_for_user' + - $ref: '#/components/x-stackQL-resources/keys/methods/list_public_ssh_keys_for_authenticated_user' insert: - - $ref: >- - #/components/x-stackQL-resources/keys/methods/create_public_ssh_key_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/keys/methods/create_public_ssh_key_for_authenticated_user' update: [] delete: - - $ref: >- - #/components/x-stackQL-resources/keys/methods/delete_public_ssh_key_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/keys/methods/delete_public_ssh_key_for_authenticated_user' replace: [] public_emails: id: github.users.public_emails @@ -4855,8 +4748,25 @@ components: openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/public_emails/methods/list_public_emails_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/public_emails/methods/list_public_emails_for_authenticated_user' + insert: [] + update: [] + delete: [] + replace: [] + public_users: + id: github.users.public_users + name: public_users + title: Public Users + methods: + list: + operation: + $ref: '#/paths/~1users/get' + response: + mediaType: application/json + openAPIDocKey: '200' + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/public_users/methods/list' insert: [] update: [] delete: [] @@ -4895,17 +4805,33 @@ components: openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/social_accounts/methods/list_social_accounts_for_user - - $ref: >- - #/components/x-stackQL-resources/social_accounts/methods/list_social_accounts_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/social_accounts/methods/list_social_accounts_for_user' + - $ref: '#/components/x-stackQL-resources/social_accounts/methods/list_social_accounts_for_authenticated_user' insert: - - $ref: >- - #/components/x-stackQL-resources/social_accounts/methods/add_social_account_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/social_accounts/methods/add_social_account_for_authenticated_user' update: [] delete: - - $ref: >- - #/components/x-stackQL-resources/social_accounts/methods/delete_social_account_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/social_accounts/methods/delete_social_account_for_authenticated_user' + replace: [] + sponsorships: + id: github.users.sponsorships + name: sponsorships + title: Sponsorships + methods: + list: + operation: + $ref: '#/paths/~1graphql?resource=sponsorships/post' + response: + mediaType: application/json + openAPIDocKey: '200' + objectKey: $.data.user.sponsorshipsAsMaintainer.nodes + x-stackql-protocol: graphql + sqlVerbs: + select: + - $ref: '#/components/x-stackQL-resources/sponsorships/methods/list' + insert: [] + update: [] + delete: [] replace: [] ssh_signing_keys: id: github.users.ssh_signing_keys @@ -4947,136 +4873,64 @@ components: openAPIDocKey: '200' sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/ssh_signing_keys/methods/get_ssh_signing_key_for_authenticated_user - - $ref: >- - #/components/x-stackQL-resources/ssh_signing_keys/methods/list_ssh_signing_keys_for_user - - $ref: >- - #/components/x-stackQL-resources/ssh_signing_keys/methods/list_ssh_signing_keys_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/ssh_signing_keys/methods/get_ssh_signing_key_for_authenticated_user' + - $ref: '#/components/x-stackQL-resources/ssh_signing_keys/methods/list_ssh_signing_keys_for_user' + - $ref: '#/components/x-stackQL-resources/ssh_signing_keys/methods/list_ssh_signing_keys_for_authenticated_user' insert: - - $ref: >- - #/components/x-stackQL-resources/ssh_signing_keys/methods/create_ssh_signing_key_for_authenticated_user + - $ref: '#/components/x-stackQL-resources/ssh_signing_keys/methods/create_ssh_signing_key_for_authenticated_user' update: [] delete: - - $ref: >- - #/components/x-stackQL-resources/ssh_signing_keys/methods/delete_ssh_signing_key_for_authenticated_user - replace: [] - public_users: - id: github.users.public_users - name: public_users - title: Public Users - methods: - list: - operation: - $ref: '#/paths/~1users/get' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: - - $ref: '#/components/x-stackQL-resources/public_users/methods/list' - insert: [] - update: [] - delete: [] + - $ref: '#/components/x-stackQL-resources/ssh_signing_keys/methods/delete_ssh_signing_key_for_authenticated_user' replace: [] - attestations_bulk_list: - id: github.users.attestations_bulk_list - name: attestations_bulk_list - title: Attestations Bulk List + users: + id: github.users.users + name: users + title: Users methods: - list_attestations_bulk: - config: - requestBodyTranslate: - algorithm: naive + get_authenticated: operation: - $ref: '#/paths/~1users~1{username}~1attestations~1bulk-list/post' + $ref: '#/paths/~1user/get' response: mediaType: application/json openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: - - $ref: >- - #/components/x-stackQL-resources/attestations_bulk_list/methods/list_attestations_bulk - update: [] - delete: [] - replace: [] - attestations_bulk_deletes: - id: github.users.attestations_bulk_deletes - name: attestations_bulk_deletes - title: Attestations Bulk Deletes - methods: - delete_attestations_bulk: + update_authenticated: config: requestBodyTranslate: algorithm: naive operation: - $ref: '#/paths/~1users~1{username}~1attestations~1delete-request/post' - response: - mediaType: application/json - openAPIDocKey: '200' - sqlVerbs: - select: [] - insert: [] - update: [] - delete: [] - replace: [] - attestations: - id: github.users.attestations - name: attestations - title: Attestations - methods: - delete_attestations_by_subject_digest: - operation: - $ref: >- - #/paths/~1users~1{username}~1attestations~1digest~1{subject_digest}/delete - response: - mediaType: application/json - openAPIDocKey: '200' - delete_attestations_by_id: - operation: - $ref: '#/paths/~1users~1{username}~1attestations~1{attestation_id}/delete' + $ref: '#/paths/~1user/patch' response: mediaType: application/json openAPIDocKey: '200' - list_attestations: + get_by_id: operation: - $ref: '#/paths/~1users~1{username}~1attestations~1{subject_digest}/get' + $ref: '#/paths/~1user~1{account_id}/get' response: mediaType: application/json openAPIDocKey: '200' - objectKey: $.attestations - sqlVerbs: - select: - - $ref: >- - #/components/x-stackQL-resources/attestations/methods/list_attestations - insert: [] - update: [] - delete: - - $ref: >- - #/components/x-stackQL-resources/attestations/methods/delete_attestations_by_subject_digest - - $ref: >- - #/components/x-stackQL-resources/attestations/methods/delete_attestations_by_id - replace: [] - hovercard: - id: github.users.hovercard - name: hovercard - title: Hovercard - methods: - get_context_for_user: + get_by_username: operation: - $ref: '#/paths/~1users~1{username}~1hovercard/get' + $ref: '#/paths/~1users~1{username}/get' response: mediaType: application/json openAPIDocKey: '200' - objectKey: $.contexts sqlVerbs: select: - - $ref: >- - #/components/x-stackQL-resources/hovercard/methods/get_context_for_user + - $ref: '#/components/x-stackQL-resources/users/methods/get_by_id' + - $ref: '#/components/x-stackQL-resources/users/methods/get_by_username' + - $ref: '#/components/x-stackQL-resources/users/methods/get_authenticated' insert: [] - update: [] + update: + - $ref: '#/components/x-stackQL-resources/users/methods/update_authenticated' delete: [] replace: [] servers: - url: https://api.github.com +x-stackQL-config: + pagination: + requestToken: + key: '' + location: request + responseToken: + key: Link + location: header diff --git a/provider-dev/scripts/graphql_merge.mjs b/provider-dev/scripts/graphql_merge.mjs new file mode 100644 index 0000000..228b975 --- /dev/null +++ b/provider-dev/scripts/graphql_merge.mjs @@ -0,0 +1,300 @@ +#!/usr/bin/env node +// graphql_merge.mjs +// +// Shims hand-authored GitHub GraphQL operations (provider-dev/source-graphql/) +// into the GENERATED provider under provider-dev/openapi/src/github//. +// Runs after `generate-provider`; idempotent (previous shims are stripped +// before re-adding, keyed on the `x-stackql-protocol: graphql` marker). +// +// For each op spec this writes: +// paths./graphql?resource=.post +// - an operation carrying x-stackQL-graphQL +// (url, httpVerb, query template, +// responseSelection, cursor) plus the +// declared parameters and a response +// schema built from `selection` + +// `rowSchema` (so DESCRIBE and the docgen +// Fields table see the row columns) +// components.x-stackQL-resources. +// - a select-only resource whose `list` +// method refs the operation; objectKey is +// the dotted form of `selection` +// +// Why the odd path key: stackql builds the request URL from `servers` + the +// path key (x-stackQL-graphQL.url is not used for routing), and OpenAPI needs +// a unique path+verb per operation. GitHub serves every GraphQL query from +// POST /graphql, so each op gets `/graphql?resource=` - any-sdk's query +// router matches on the query pairs (the same idiom the aws provider uses for +// `/?Action=...` keys) and the GraphQL reader strips the query string before +// the request goes on the wire, so GitHub sees a plain POST /graphql. +// +// Services named in manifest.services that do not exist yet are created from +// scratch (and registered in provider.yaml); REST services are edited in place. +// +// Usage: node provider-dev/scripts/graphql_merge.mjs [--provider-dir provider-dev/openapi/src/github/v00.00.00000] +// [--source-dir provider-dev/source-graphql] [--verbose] + +import { readFileSync, writeFileSync, existsSync } from 'fs'; +import { resolve, join, dirname } from 'path'; +import yaml from 'js-yaml'; + +function getArg(flag, fallback) { + const i = process.argv.indexOf(flag); + return i === -1 ? fallback : (process.argv[i + 1] ?? fallback); +} +const providerDir = resolve(getArg('--provider-dir', 'provider-dev/openapi/src/github/v00.00.00000')); +const sourceDir = resolve(getArg('--source-dir', 'provider-dev/source-graphql')); +const verbose = process.argv.includes('--verbose'); + +const PROTOCOL_MARKER = 'x-stackql-protocol'; +const PROVIDER_ID = 'github'; +const VERSION = providerDir.split(/[\\/]/).pop(); + +const loadYaml = (p) => yaml.load(readFileSync(p, 'utf8')); +const dumpYaml = (doc) => yaml.dump(doc, { lineWidth: -1, noRefs: true, quotingType: "'" }); + +const manifest = loadYaml(join(sourceDir, 'manifest.yaml')); +const graphqlUrl = manifest.graphql_url; +if (!graphqlUrl) throw new Error('manifest.yaml: graphql_url is required'); + +// --- helpers --------------------------------------------------------------- + +// '$.data.repository.discussions.nodes' -> ['data','repository','discussions','nodes'] +function selectionSegments(selection) { + if (!selection.startsWith('$.')) throw new Error(`selection must start with '$.': ${selection}`); + const segs = selection.slice(2).split('.'); + if (segs.some(s => !s || /[\[\]]/.test(s))) { + throw new Error(`selection must be a plain dotted path without [*] (it is appended automatically): ${selection}`); + } + return segs; +} + +// Build the nested response schema for a selection path: every segment is an +// object property, the last one is the row array. When a page_info cursor is +// declared, a `pageInfo` sibling is added next to the row array so the +// schema matches what the query actually returns. +function buildResponseSchema(selection, rowSchema, cursor) { + const segs = selectionSegments(selection); + const leafName = segs[segs.length - 1]; + const connection = { + type: 'object', + properties: { + [leafName]: { type: 'array', items: rowSchema }, + }, + }; + if (cursor && cursor.strategy === 'page_info') { + connection.properties.pageInfo = { + type: 'object', + properties: { + endCursor: { type: 'string' }, + hasNextPage: { type: 'boolean' }, + }, + }; + } + let schema = connection; + for (let i = segs.length - 2; i >= 0; i--) { + schema = { type: 'object', properties: { [segs[i]]: schema } }; + } + return schema; +} + +function buildCursor(op) { + if (!op.cursor) { + // Single page: any-sdk's default cursor_after strategy treats a failed + // jsonpath lookup as EOF, so point it at a key that never exists. + return { jsonPath: '$.data.__no_cursor' }; + } + const c = { ...op.cursor }; + if (c.strategy === 'page_info' && !c.terminateOnJsonPath) { + throw new Error(`${op.resource}: page_info cursor requires terminateOnJsonPath`); + } + if (!c.jsonPath && c.strategy !== 'offset') { + throw new Error(`${op.resource}: cursor.jsonPath is required for strategy ${c.strategy || 'cursor_after'}`); + } + return c; +} + +function buildOperation(op) { + return { + operationId: `graphql/${op.service}/${op.resource}/list`, + summary: op.title, + description: op.description, + 'x-stackQL-graphQL': { + url: graphqlUrl, + httpVerb: 'POST', + responseSelection: { jsonPath: `${op.selection}[*]` }, + cursor: buildCursor(op), + query: op.query, + }, + [PROTOCOL_MARKER]: 'graphql', + externalDocs: { + description: 'GitHub GraphQL API documentation', + url: 'https://docs.github.com/graphql', + }, + parameters: op.parameters ?? [], + responses: { + '200': { + description: 'Response', + content: { + 'application/json': { + schema: buildResponseSchema(op.selection, op.rowSchema, op.cursor), + }, + }, + }, + }, + }; +} + +function buildResource(op, pathKey) { + const methodRef = `#/components/x-stackQL-resources/${op.resource}/methods/list`; + return { + id: `${PROVIDER_ID}.${op.service}.${op.resource}`, + name: op.resource, + title: op.title, + methods: { + list: { + operation: { $ref: `#/paths/${pathKey.replace(/\//g, '~1')}/post` }, + response: { + mediaType: 'application/json', + openAPIDocKey: '200', + objectKey: op.selection, + }, + [PROTOCOL_MARKER]: 'graphql', + }, + }, + sqlVerbs: { + select: [{ $ref: methodRef }], + insert: [], + update: [], + delete: [], + replace: [], + }, + }; +} + +function newServiceDoc(serviceName, meta) { + return { + openapi: '3.0.3', + info: { + title: meta.title ?? `${serviceName} API`, + description: meta.description ?? '', + version: VERSION, + }, + servers: [{ url: 'https://api.github.com' }], + paths: {}, + components: { schemas: {}, 'x-stackQL-resources': {} }, + }; +} + +// Remove every operation / resource carrying the protocol marker so a re-run +// starts from the REST-only state of the service. +function stripPreviousShims(doc) { + let stripped = 0; + for (const [p, pathItem] of Object.entries(doc.paths ?? {})) { + for (const [verb, op] of Object.entries(pathItem ?? {})) { + if (op && typeof op === 'object' && op[PROTOCOL_MARKER] === 'graphql') { + delete pathItem[verb]; + stripped++; + } + } + if (pathItem && Object.keys(pathItem).length === 0) delete doc.paths[p]; + } + const resources = doc.components?.['x-stackQL-resources'] ?? {}; + for (const [name, res] of Object.entries(resources)) { + const methods = res?.methods ?? {}; + const names = Object.keys(methods); + if (names.length && names.every(m => methods[m]?.[PROTOCOL_MARKER] === 'graphql')) { + delete resources[name]; + } + } + return stripped; +} + +// --- main ------------------------------------------------------------------ + +const ops = (manifest.ops ?? []).map(rel => { + const op = loadYaml(join(sourceDir, rel)); + for (const k of ['service', 'resource', 'title', 'description', 'selection', 'query', 'rowSchema']) { + if (!op[k]) throw new Error(`${rel}: missing required field '${k}'`); + } + return op; +}); + +const byService = new Map(); +for (const op of ops) { + if (!byService.has(op.service)) byService.set(op.service, []); + byService.get(op.service).push(op); +} + +const providerYamlPath = join(providerDir, 'provider.yaml'); +const provider = loadYaml(providerYamlPath); +let providerChanged = false; +const summary = []; + +for (const [serviceName, serviceOps] of byService) { + const servicePath = join(providerDir, 'services', `${serviceName}.yaml`); + let doc; + let created = false; + if (existsSync(servicePath)) { + doc = loadYaml(servicePath); + } else { + const meta = manifest.services?.[serviceName]; + if (!meta) { + throw new Error(`service '${serviceName}' does not exist under ${providerDir}/services and is not declared in manifest.services`); + } + doc = newServiceDoc(serviceName, meta); + created = true; + } + doc.paths ??= {}; + doc.components ??= {}; + doc.components['x-stackQL-resources'] ??= {}; + + const stripped = stripPreviousShims(doc); + + for (const op of serviceOps) { + const pathKey = `/graphql?resource=${op.resource}`; + if (doc.paths[pathKey]?.post) { + throw new Error(`${serviceName}: path ${pathKey} already has a non-GraphQL POST operation`); + } + if (doc.components['x-stackQL-resources'][op.resource]) { + throw new Error(`${serviceName}: resource '${op.resource}' already exists as a REST resource - pick another name`); + } + doc.paths[pathKey] = { post: buildOperation(op) }; + doc.components['x-stackQL-resources'][op.resource] = buildResource(op, pathKey); + if (verbose) console.log(`${serviceName}: shimmed ${op.resource} (${pathKey})`); + } + + // Keep resources sorted so REST + GraphQL interleave deterministically. + const sorted = {}; + for (const k of Object.keys(doc.components['x-stackQL-resources']).sort()) { + sorted[k] = doc.components['x-stackQL-resources'][k]; + } + doc.components['x-stackQL-resources'] = sorted; + + writeFileSync(servicePath, dumpYaml(doc)); + + if (!provider.providerServices?.[serviceName]) { + const meta = manifest.services?.[serviceName] ?? {}; + provider.providerServices[serviceName] = { + id: `${serviceName}:${VERSION}`, + name: serviceName, + preferred: true, + service: { $ref: `${PROVIDER_ID}/${VERSION}/services/${serviceName}.yaml` }, + title: meta.title ?? `${serviceName} API`, + version: VERSION, + description: meta.description ?? '', + }; + providerChanged = true; + } + summary.push({ service: serviceName, created, stripped, added: serviceOps.map(o => o.resource) }); +} + +if (providerChanged) { + // Keep providerServices sorted by key like the generator does. + const sortedServices = {}; + for (const k of Object.keys(provider.providerServices).sort()) sortedServices[k] = provider.providerServices[k]; + provider.providerServices = sortedServices; + writeFileSync(providerYamlPath, dumpYaml(provider)); +} + +console.log(JSON.stringify({ providerDir, providerYamlUpdated: providerChanged, services: summary }, null, 2)); diff --git a/provider-dev/scripts/map_new_operations.mjs b/provider-dev/scripts/map_new_operations.mjs new file mode 100644 index 0000000..1b74a1f --- /dev/null +++ b/provider-dev/scripts/map_new_operations.mjs @@ -0,0 +1,246 @@ +#!/usr/bin/env node +// map_new_operations.mjs +// +// Fills in stackql_resource_name / stackql_method_name / stackql_verb / +// stackql_object_key for operations in provider-dev/config/all_services.csv +// that `generate-mappings` (analyze) left unmapped after a spec refresh. +// Mappings are recorded here as data so a refresh is a reviewed diff rather +// than a hand edit of the CSV. Rows that are already mapped are left alone. +// +// Usage: node provider-dev/scripts/map_new_operations.mjs [--csv provider-dev/config/all_services.csv] + +import { readFileSync, writeFileSync, readdirSync } from 'fs'; +import { resolve, join, extname } from 'path'; +import yaml from 'js-yaml'; + +const csvArgIdx = process.argv.indexOf('--csv'); +const csvPath = resolve(csvArgIdx === -1 ? 'provider-dev/config/all_services.csv' : process.argv[csvArgIdx + 1]); +const srcArgIdx = process.argv.indexOf('--source-dir'); +const sourceDir = resolve(srcArgIdx === -1 ? 'provider-dev/source' : process.argv[srcArgIdx + 1]); + +// Collect every operationId present in the split specs. `analyze` carries +// previously mapped rows forward even when the operation has been removed +// upstream, so rows not in this set are pruned (and reported). +// operationId -> { filename, path, verb } so rows whose path moved upstream +// (analyze keeps the stale path for an already-mapped operationId) can be +// resynced in place. +const liveOps = new Map(); +for (const f of readdirSync(sourceDir)) { + if (!['.yaml', '.yml'].includes(extname(f).toLowerCase())) continue; + const doc = yaml.load(readFileSync(join(sourceDir, f), 'utf8')); + for (const [p, pathItem] of Object.entries(doc?.paths ?? {})) { + for (const [verb, op] of Object.entries(pathItem ?? {})) { + if (op && typeof op === 'object' && typeof op.operationId === 'string') { + liveOps.set(op.operationId, { filename: f, path: p, verb }); + } + } + } +} + +// operationId -> [resource, method, verb, objectKey] +const M = { + // actions - concurrency groups (2026-08 spec) + 'actions/list-concurrency-groups-for-repository': ['concurrency_groups', 'list_concurrency_groups_for_repository', 'select', '$.concurrency_groups'], + 'actions/get-concurrency-group-for-repository': ['concurrency_groups', 'get_concurrency_group_for_repository', 'select', ''], + 'actions/list-concurrency-groups-for-workflow-run': ['workflow_run_concurrency_groups', 'list_concurrency_groups_for_workflow_run', 'select', '$.concurrency_groups'], + + // agents - secrets / variables (mirrors the actions service layout) + 'agents/list-org-secrets': ['secrets', 'list_org_secrets', 'select', '$.secrets'], + 'agents/get-org-public-key': ['public_keys', 'get_org_public_key', 'select', ''], + 'agents/get-org-secret': ['secrets', 'get_org_secret', 'select', ''], + 'agents/create-or-update-org-secret': ['secrets', 'create_or_update_org_secret', 'insert', ''], + 'agents/delete-org-secret': ['secrets', 'delete_org_secret', 'delete', ''], + 'agents/list-selected-repos-for-org-secret': ['repos_for_secret', 'list_selected_repos_for_org_secret', 'select', '$.repositories'], + 'agents/set-selected-repos-for-org-secret': ['repos_for_secret', 'set_selected_repos_for_org_secret', 'replace', ''], + 'agents/add-selected-repo-to-org-secret': ['repos_for_secret', 'add_selected_repo_to_org_secret', 'insert', ''], + 'agents/remove-selected-repo-from-org-secret': ['repos_for_secret', 'remove_selected_repo_from_org_secret', 'delete', ''], + 'agents/list-org-variables': ['variables', 'list_org_variables', 'select', '$.variables'], + 'agents/create-org-variable': ['variables', 'create_org_variable', 'insert', ''], + 'agents/get-org-variable': ['variables', 'get_org_variable', 'select', ''], + 'agents/update-org-variable': ['variables', 'update_org_variable', 'update', ''], + 'agents/delete-org-variable': ['variables', 'delete_org_variable', 'delete', ''], + 'agents/list-selected-repos-for-org-variable': ['repos_for_org_variable', 'list_selected_repos_for_org_variable', 'select', '$.repositories'], + 'agents/set-selected-repos-for-org-variable': ['repos_for_org_variable', 'set_selected_repos_for_org_variable', 'replace', ''], + 'agents/add-selected-repo-to-org-variable': ['repos_for_org_variable', 'add_selected_repo_to_org_variable', 'insert', ''], + 'agents/remove-selected-repo-from-org-variable': ['repos_for_org_variable', 'remove_selected_repo_from_org_variable', 'delete', ''], + 'agents/list-repo-organization-secrets': ['repo_org_secrets', 'list_repo_organization_secrets', 'select', '$.secrets'], + 'agents/list-repo-organization-variables': ['repo_org_variables', 'list_repo_organization_variables', 'select', '$.variables'], + 'agents/list-repo-secrets': ['secrets', 'list_repo_secrets', 'select', '$.secrets'], + 'agents/get-repo-public-key': ['public_keys', 'get_repo_public_key', 'select', ''], + 'agents/get-repo-secret': ['secrets', 'get_repo_secret', 'select', ''], + 'agents/create-or-update-repo-secret': ['secrets', 'create_or_update_repo_secret', 'insert', ''], + 'agents/delete-repo-secret': ['secrets', 'delete_repo_secret', 'delete', ''], + 'agents/list-repo-variables': ['variables', 'list_repo_variables', 'select', '$.variables'], + 'agents/create-repo-variable': ['variables', 'create_repo_variable', 'insert', ''], + 'agents/get-repo-variable': ['variables', 'get_repo_variable', 'select', ''], + 'agents/update-repo-variable': ['variables', 'update_repo_variable', 'update', ''], + 'agents/delete-repo-variable': ['variables', 'delete_repo_variable', 'delete', ''], + + // agent_tasks - create-task moved under /agents/repos/{owner}/{repo}/tasks + 'agent-tasks/create-task-in-repo': ['repo_tasks', 'create_task_in_repo', 'insert', ''], + + // billing + 'billing/get-github-billing-ai-credit-usage-report-org': ['org_ai_credit_usage', 'get_github_billing_ai_credit_usage_report_org', 'select', '$.usageItems'], + 'billing/get-github-billing-ai-credit-usage-report-user': ['ai_credit_usage', 'get_github_billing_ai_credit_usage_report_user', 'select', '$.usageItems'], + 'billing/create-organization-budget': ['org_budgets', 'create_organization_budget', 'insert', ''], + + // code_quality (new service) + 'code-quality/list-findings-for-repo': ['findings', 'list_findings_for_repo', 'select', ''], + 'code-quality/get-finding': ['findings', 'get_finding', 'select', ''], + 'code-quality/get-setup': ['setup', 'get_setup', 'select', ''], + 'code-quality/update-setup': ['setup', 'update_setup', 'update', ''], + + // copilot + 'copilot/copilot-enterprise-repos-one-day-report': ['copilot_repos_one_day_report', 'copilot_enterprise_repos_one_day_report', 'select', ''], + 'copilot/copilot-enterprise-user-teams-one-day-report': ['copilot_user_teams_one_day_report', 'copilot_enterprise_user_teams_one_day_report', 'select', ''], + 'copilot/set-enterprise-coding-agent-policy': ['coding_agent_policy', 'set_enterprise_coding_agent_policy', 'replace', ''], + 'copilot/add-organizations-to-enterprise-coding-agent-policy': ['coding_agent_policy_orgs', 'add_organizations_to_enterprise_coding_agent_policy', 'insert', ''], + 'copilot/remove-organizations-from-enterprise-coding-agent-policy': ['coding_agent_policy_orgs', 'remove_organizations_from_enterprise_coding_agent_policy', 'delete', ''], + 'copilot/copilot-organization-repos-one-day-report': ['org_copilot_repos_one_day_report', 'copilot_organization_repos_one_day_report', 'select', ''], + 'copilot/copilot-organization-user-teams-one-day-report': ['org_copilot_user_teams_one_day_report', 'copilot_organization_user_teams_one_day_report', 'select', ''], + 'copilot/get-copilot-cloud-agent-configuration': ['repo_cloud_agent_configuration', 'get_copilot_cloud_agent_configuration', 'select', ''], + + // copilot_spaces (new service) - org and user scoped methods share a resource + 'copilot-spaces/list-for-org': ['spaces', 'list_for_org', 'select', '$.spaces'], + 'copilot-spaces/create-for-org': ['spaces', 'create_for_org', 'insert', ''], + 'copilot-spaces/get-for-org': ['spaces', 'get_for_org', 'select', ''], + 'copilot-spaces/update-for-org': ['spaces', 'update_for_org', 'replace', ''], + 'copilot-spaces/delete-for-org': ['spaces', 'delete_for_org', 'delete', ''], + 'copilot-spaces/list-collaborators-for-org': ['collaborators', 'list_collaborators_for_org', 'select', '$.collaborators'], + 'copilot-spaces/add-collaborator-for-org': ['collaborators', 'add_collaborator_for_org', 'insert', ''], + 'copilot-spaces/update-collaborator-for-org': ['collaborators', 'update_collaborator_for_org', 'replace', ''], + 'copilot-spaces/remove-collaborator-for-org': ['collaborators', 'remove_collaborator_for_org', 'delete', ''], + 'copilot-spaces/list-resources-for-org': ['resources', 'list_resources_for_org', 'select', '$.resources'], + 'copilot-spaces/create-resource-for-org': ['resources', 'create_resource_for_org', 'insert', ''], + 'copilot-spaces/get-resource-for-org': ['resources', 'get_resource_for_org', 'select', ''], + 'copilot-spaces/update-resource-for-org': ['resources', 'update_resource_for_org', 'replace', ''], + 'copilot-spaces/delete-resource-for-org': ['resources', 'delete_resource_for_org', 'delete', ''], + 'copilot-spaces/list-for-user': ['spaces', 'list_for_user', 'select', '$.spaces'], + 'copilot-spaces/create-for-user': ['spaces', 'create_for_user', 'insert', ''], + 'copilot-spaces/get-for-user': ['spaces', 'get_for_user', 'select', ''], + 'copilot-spaces/update-for-user': ['spaces', 'update_for_user', 'replace', ''], + 'copilot-spaces/delete-for-user': ['spaces', 'delete_for_user', 'delete', ''], + 'copilot-spaces/list-collaborators-for-user': ['collaborators', 'list_collaborators_for_user', 'select', '$.collaborators'], + 'copilot-spaces/add-collaborator-for-user': ['collaborators', 'add_collaborator_for_user', 'insert', ''], + 'copilot-spaces/update-collaborator-for-user': ['collaborators', 'update_collaborator_for_user', 'replace', ''], + 'copilot-spaces/remove-collaborator-for-user': ['collaborators', 'remove_collaborator_for_user', 'delete', ''], + 'copilot-spaces/list-resources-for-user': ['resources', 'list_resources_for_user', 'select', '$.resources'], + 'copilot-spaces/create-resource-for-user': ['resources', 'create_resource_for_user', 'insert', ''], + 'copilot-spaces/get-resource-for-user': ['resources', 'get_resource_for_user', 'select', ''], + 'copilot-spaces/update-resource-for-user': ['resources', 'update_resource_for_user', 'replace', ''], + 'copilot-spaces/delete-resource-for-user': ['resources', 'delete_resource_for_user', 'delete', ''], + + // dependabot - enterprise repository access + 'dependabot/repository-access-for-enterprise': ['enterprise_dependabot_repository_access', 'repository_access_for_enterprise', 'select', ''], + 'dependabot/update-repository-access-for-enterprise': ['enterprise_dependabot_repository_access', 'update_repository_access_for_enterprise', 'update', ''], + 'dependabot/set-repository-access-default-level-for-enterprise': ['enterprise_dependabot_repository_access', 'set_repository_access_default_level_for_enterprise', 'replace', ''], + + // dependency_graph - async SBOM reports + 'dependency-graph/generate-sbom-report': ['sbom_reports', 'generate_sbom_report', 'exec', ''], + 'dependency-graph/fetch-sbom-report': ['sbom_reports', 'fetch_sbom_report', 'exec', ''], + + // interactions - pull request creation caps / bypass lists + 'interactions/get-pull-request-creation-cap-for-org': ['org_pull_request_creation_caps', 'get_pull_request_creation_cap_for_org', 'select', ''], + 'interactions/update-pull-request-creation-cap-for-org': ['org_pull_request_creation_caps', 'update_pull_request_creation_cap_for_org', 'update', ''], + 'interactions/get-pull-request-bypass-list-for-repo': ['repo_pull_request_bypass_lists', 'get_pull_request_bypass_list_for_repo', 'select', ''], + 'interactions/set-pull-request-bypass-list-for-repo': ['repo_pull_request_bypass_lists', 'set_pull_request_bypass_list_for_repo', 'replace', ''], + 'interactions/remove-pull-request-bypass-list-for-repo': ['repo_pull_request_bypass_lists', 'remove_pull_request_bypass_list_for_repo', 'delete', ''], + 'interactions/get-pull-request-creation-cap-for-repo': ['repo_pull_request_creation_caps', 'get_pull_request_creation_cap_for_repo', 'select', ''], + 'interactions/update-pull-request-creation-cap-for-repo': ['repo_pull_request_creation_caps', 'update_pull_request_creation_cap_for_repo', 'update', ''], + + // issues - suggestions + 'issues/list-suggestions': ['issue_suggestions', 'list_suggestions', 'select', ''], + 'issues/approve-suggestion': ['issue_suggestions', 'approve_suggestion', 'exec', ''], + 'issues/dismiss-suggestion': ['issue_suggestions', 'dismiss_suggestion', 'exec', ''], + + // orgs - cluster deployment record jobs + 'orgs/create-cluster-deployment-records-job': ['cluster_deployment_records_jobs', 'create_cluster_deployment_records_job', 'insert', ''], + 'orgs/get-cluster-deployment-records-job': ['cluster_deployment_records_jobs', 'get_cluster_deployment_records_job', 'select', ''], + + // pulls - async merge and stacks + 'pulls/merge-async': ['pull_request_async_merges', 'merge_async', 'exec', ''], + 'pulls/get-merge-async-result': ['pull_request_async_merges', 'get_merge_async_result', 'select', ''], + 'pull-request-stacks/list': ['stacks', 'list', 'select', ''], + 'pull-request-stacks/create': ['stacks', 'create', 'insert', ''], + 'pull-request-stacks/get': ['stacks', 'get', 'select', ''], + 'pull-request-stacks/add': ['stacks', 'add', 'exec', ''], + 'pull-request-stacks/unstack': ['stacks', 'unstack', 'exec', ''], + + // repos + 'repos/get-hash-algorithm': ['hash_algorithm', 'get_hash_algorithm', 'select', ''], + 'repos/list-issue-types': ['issue_types', 'list_issue_types', 'select', ''], + + // secret_scanning - custom patterns + 'secret-scanning/list-org-custom-patterns': ['org_custom_patterns', 'list_org_custom_patterns', 'select', ''], + 'secret-scanning/bulk-create-org-custom-patterns': ['org_custom_patterns', 'bulk_create_org_custom_patterns', 'insert', ''], + 'secret-scanning/bulk-delete-org-custom-patterns': ['org_custom_patterns', 'bulk_delete_org_custom_patterns', 'delete', ''], + 'secret-scanning/update-org-custom-pattern': ['org_custom_patterns', 'update_org_custom_pattern', 'update', ''], + 'secret-scanning/list-repo-custom-patterns': ['repo_custom_patterns', 'list_repo_custom_patterns', 'select', ''], + 'secret-scanning/bulk-create-repo-custom-patterns': ['repo_custom_patterns', 'bulk_create_repo_custom_patterns', 'insert', ''], + 'secret-scanning/bulk-delete-repo-custom-patterns': ['repo_custom_patterns', 'bulk_delete_repo_custom_patterns', 'delete', ''], + 'secret-scanning/update-repo-custom-pattern': ['repo_custom_patterns', 'update_repo_custom_pattern', 'update', ''], +}; + +// Minimal CSV line parser that respects double-quoted fields (op_description +// can contain commas). +function parseLine(line) { + const out = []; + let cur = ''; + let q = false; + for (let i = 0; i < line.length; i++) { + const ch = line[i]; + if (q) { + if (ch === '"' && line[i + 1] === '"') { cur += '"'; i++; } + else if (ch === '"') q = false; + else cur += ch; + } else if (ch === '"') q = true; + else if (ch === ',') { out.push(cur); cur = ''; } + else cur += ch; + } + out.push(cur); + return out; +} +function fmt(v) { + return /[",\n]/.test(v) ? `"${v.replace(/"/g, '""')}"` : v; +} + +const text = readFileSync(csvPath, 'utf8'); +const lines = text.split(/\r?\n/); +const header = lines[0]; +const out = [header]; +let applied = 0; +const stillUnmapped = []; +const pruned = []; +const resynced = []; +const used = new Set(); +for (const line of lines.slice(1)) { + if (!line.trim()) continue; + const c = parseLine(line); + const opId = c[2]; + const live = liveOps.get(opId); + if (!live) { + pruned.push(opId); + continue; + } + if (c[0] !== live.filename || c[1] !== live.path || c[4] !== live.verb) { + resynced.push(`${opId}: ${c[0]} ${c[4].toUpperCase()} ${c[1]} -> ${live.filename} ${live.verb.toUpperCase()} ${live.path}`); + c[0] = live.filename; c[1] = live.path; c[4] = live.verb; + } + // analyze prefills stackql_method_name with the `svc/op` formatted id for + // unmapped rows, so a slash in the method name also means "unmapped". + if (c[8] !== 'skip_this_resource' && (!c[8] || !c[9] || !c[10] || c[9].includes('/'))) { + const m = M[opId]; + if (m) { + [c[8], c[9], c[10], c[11]] = m; + applied++; + used.add(opId); + } else { + stillUnmapped.push(opId); + } + } + out.push(c.map(fmt).join(',')); +} +writeFileSync(csvPath, out.join('\n') + '\n'); +const unused = Object.keys(M).filter(k => !liveOps.has(k)); +console.log(JSON.stringify({ applied, pruned, resynced, stillUnmapped, unusedMappings: unused }, null, 2)); +if (stillUnmapped.length) process.exit(1); diff --git a/provider-dev/scripts/post_normalize.mjs b/provider-dev/scripts/post_normalize.mjs new file mode 100644 index 0000000..6ef6772 --- /dev/null +++ b/provider-dev/scripts/post_normalize.mjs @@ -0,0 +1,97 @@ +#!/usr/bin/env node +// post_normalize.mjs +// +// Reverts the bare-array envelope that `@stackql/provider-utils` normalize +// (pass 1f, "wrapBareArrayResponses") applies to every operation whose 2xx +// response is a top-level `type: array`. +// +// Why this is needed for GitHub: +// +// 1. GitHub operationIds are `tag/op-id` (e.g. `issues/list-suggestions`). +// Normalize derives the wrapper key and the wrapper schema name from the +// operationId, producing `objectKey: $.issues/list_suggestions` and +// `$ref: '#/components/schemas/Issues/list-suggestionsResponse'`. The +// slash breaks both the JSONPath and the JSON pointer, so the generated +// provider would not resolve. +// 2. stackql iterates bare-array JSON responses natively. The published +// github provider has always shipped ~260 bare-array list endpoints +// (repos, issues, contributors, releases, ...) with no objectKey and no +// transform, and they work. The golang-template transform the wrap +// emits adds runtime cost and risk for no functional gain here. +// +// The revert is exact: the synthesised wrapper schema holds the original +// array schema under `properties[]`, so we put that back as the +// response schema, delete the wrapper schema, and drop the marker. The pass +// is idempotent - re-running on already-unwrapped specs is a no-op. +// +// Usage: node provider-dev/scripts/post_normalize.mjs [--api-dir provider-dev/source] [--verbose] + +import { readdirSync, readFileSync, writeFileSync } from 'fs'; +import { join, extname, resolve } from 'path'; +import yaml from 'js-yaml'; + +const MARKER = 'x-stackql-bare-array-wrap'; +const OPS = new Set(['get', 'put', 'post', 'delete', 'patch', 'head', 'options', 'trace']); + +function getArg(flag, fallback) { + const i = process.argv.indexOf(flag); + if (i === -1) return fallback; + return process.argv[i + 1] ?? fallback; +} + +const apiDir = resolve(getArg('--api-dir', 'provider-dev/source')); +const verbose = process.argv.includes('--verbose'); + +let filesTouched = 0; +let unwrapped = 0; +const problems = []; + +for (const f of readdirSync(apiDir)) { + const ext = extname(f).toLowerCase(); + if (ext !== '.yaml' && ext !== '.yml') continue; + const full = join(apiDir, f); + const doc = yaml.load(readFileSync(full, 'utf8')); + if (!doc || typeof doc !== 'object' || !doc.paths) continue; + + let changed = false; + const schemas = doc.components?.schemas ?? {}; + + for (const [p, pathItem] of Object.entries(doc.paths)) { + if (!pathItem || typeof pathItem !== 'object') continue; + for (const [verb, op] of Object.entries(pathItem)) { + if (!OPS.has(verb) || !op || typeof op !== 'object') continue; + const wrap = op[MARKER]; + if (!wrap || typeof wrap !== 'object') continue; + + const { wrapperKey, wrapperName, mediaType } = wrap; + const wrapper = schemas[wrapperName]; + const original = wrapper?.properties?.[wrapperKey]; + if (!original) { + problems.push(`${f} ${verb.toUpperCase()} ${p}: wrapper schema '${wrapperName}' / key '${wrapperKey}' not found`); + continue; + } + + // Restore the bare array schema on every 2xx response that refs the wrapper. + for (const [code, resp] of Object.entries(op.responses ?? {})) { + if (!/^2\d\d$/.test(code)) continue; + const mt = resp?.content?.[mediaType]; + if (mt?.schema?.$ref === `#/components/schemas/${wrapperName}`) { + mt.schema = original; + } + } + delete schemas[wrapperName]; + delete op[MARKER]; + unwrapped++; + changed = true; + if (verbose) console.log(`unwrapped ${f} ${verb.toUpperCase()} ${p} (${wrapperKey})`); + } + } + + if (changed) { + writeFileSync(full, yaml.dump(doc, { lineWidth: -1, noRefs: true })); + filesTouched++; + } +} + +console.log(JSON.stringify({ apiDir, filesTouched, unwrapped, problems }, null, 2)); +if (problems.length) process.exit(1); diff --git a/provider-dev/source-graphql/manifest.yaml b/provider-dev/source-graphql/manifest.yaml new file mode 100644 index 0000000..65b1668 --- /dev/null +++ b/provider-dev/source-graphql/manifest.yaml @@ -0,0 +1,38 @@ +# GitHub GraphQL operations surfaced in the stackql github provider. +# +# Each entry under `ops` names a per-operation spec in ./ops/. The specs are +# merged into the GENERATED service yamls under +# provider-dev/openapi/src/github//services/ by +# provider-dev/scripts/graphql_merge.mjs (run as the last step of +# `make provider`). The merge is idempotent: it strips any previously +# shimmed GraphQL operation before re-adding, and only touches services +# named here. +# +# Selection criteria: surfaces that are GraphQL-only (no REST equivalent) +# or where GraphQL returns data the REST endpoint cannot (e.g. stargazer +# timestamps), and that work with an ordinary personal access token. +# +# `services` declares services that exist only because of GraphQL (created +# from scratch by the merge). Ops targeting an existing REST service (users, +# orgs, pulls, activity) are added alongside the REST resources. + +graphql_url: https://api.github.com/graphql + +services: + discussions: + title: discussions API + description: >- + GitHub Discussions for a repository - discussions, categories and + comments. GitHub exposes Discussions through the GraphQL API only; + these resources are backed by GraphQL queries. + +ops: + - ops/discussions.yaml + - ops/discussion_categories.yaml + - ops/discussion_comments.yaml + - ops/star_history.yaml + - ops/contribution_calendar.yaml + - ops/review_threads.yaml + - ops/saml_identities.yaml + - ops/user_sponsorships.yaml + - ops/org_sponsorships.yaml diff --git a/provider-dev/source-graphql/ops/contribution_calendar.yaml b/provider-dev/source-graphql/ops/contribution_calendar.yaml new file mode 100644 index 0000000..b7d7e51 --- /dev/null +++ b/provider-dev/source-graphql/ops/contribution_calendar.yaml @@ -0,0 +1,59 @@ +# A user's contribution calendar (the profile heatmap) - GraphQL only. +service: users +resource: contribution_calendar +title: Contribution Calendar +description: >- + A user's contribution calendar (the profile contribution graph), one row + per week with the daily counts as a JSON array - expand with `json_each`. + Defaults to the trailing year; pass `from` and `to` (ISO 8601 timestamps, + at most one year apart) for another window. Backed by the GitHub GraphQL + API (`user.contributionsCollection.contributionCalendar`). +parameters: + - name: username + in: query + required: true + schema: { type: string } + description: The handle for the GitHub user account. + - name: from + in: query + required: false + schema: { type: string, format: date-time } + description: "Only contributions made at this time or later will be counted. ISO 8601, e.g. 2025-01-01T00:00:00Z." + - name: to + in: query + required: false + schema: { type: string, format: date-time } + description: "Only contributions made before and up to this time will be counted. ISO 8601." +selection: $.data.user.contributionsCollection.contributionCalendar.weeks +query: | + query { + user(login: "{{ .username }}") { + contributionsCollection{{ if or .from .to }}({{ if .from }}from: "{{ .from }}" {{ end }}{{ if .to }}to: "{{ .to }}"{{ end }}){{ end }} { + contributionCalendar { + weeks { + first_day: firstDay + contribution_days: contributionDays { + date + weekday + contribution_count: contributionCount + color + } + } + } + } + } + } +rowSchema: + type: object + properties: + first_day: { type: string, format: date, description: "The date of the first day (Sunday) of the week." } + contribution_days: + type: array + description: "Daily entries for the week: `date`, `weekday` (0 = Sunday), `contribution_count`, `color`." + items: + type: object + properties: + date: { type: string, format: date } + weekday: { type: integer } + contribution_count: { type: integer } + color: { type: string } diff --git a/provider-dev/source-graphql/ops/discussion_categories.yaml b/provider-dev/source-graphql/ops/discussion_categories.yaml new file mode 100644 index 0000000..70c147b --- /dev/null +++ b/provider-dev/source-graphql/ops/discussion_categories.yaml @@ -0,0 +1,53 @@ +# Discussion categories configured on a repository (GraphQL only). +service: discussions +resource: discussion_categories +title: Discussion Categories +description: >- + Discussion categories configured for a repository (for example + Announcements, Q&A, Ideas). Backed by the GitHub GraphQL API + (`repository.discussionCategories`). +parameters: + - name: owner + in: query + required: true + schema: { type: string } + description: The account owner of the repository. + - name: repo + in: query + required: true + schema: { type: string } + description: The name of the repository. +selection: $.data.repository.discussionCategories.nodes +cursor: + strategy: page_info + jsonPath: $.data.repository.discussionCategories.pageInfo.endCursor + terminateOnJsonPath: $.data.repository.discussionCategories.pageInfo.hasNextPage +query: | + query { + repository(owner: "{{ .owner }}", name: "{{ .repo }}") { + discussionCategories(first: 100{{ .cursor }}) { + pageInfo { endCursor hasNextPage } + nodes { + id + name + slug + emoji + description + is_answerable: isAnswerable + created_at: createdAt + updated_at: updatedAt + } + } + } + } +rowSchema: + type: object + properties: + id: { type: string, description: "The GraphQL node ID of the category." } + name: { type: string } + slug: { type: string } + emoji: { type: string, description: "The emoji shortcode for the category." } + description: { type: string } + is_answerable: { type: boolean, description: "Whether discussions in this category can be marked as answered." } + created_at: { type: string, format: date-time } + updated_at: { type: string, format: date-time } diff --git a/provider-dev/source-graphql/ops/discussion_comments.yaml b/provider-dev/source-graphql/ops/discussion_comments.yaml new file mode 100644 index 0000000..b8e78a7 --- /dev/null +++ b/provider-dev/source-graphql/ops/discussion_comments.yaml @@ -0,0 +1,81 @@ +# Comments on a single discussion (GraphQL only). +service: discussions +resource: discussion_comments +title: Discussion Comments +description: >- + Top-level comments on a discussion, with reply counts. Backed by the + GitHub GraphQL API (`repository.discussion.comments`). +parameters: + - name: owner + in: query + required: true + schema: { type: string } + description: The account owner of the repository. + - name: repo + in: query + required: true + schema: { type: string } + description: The name of the repository. + - name: discussion_number + in: query + required: true + schema: { type: integer } + description: The number that identifies the discussion. +selection: $.data.repository.discussion.comments.nodes +cursor: + strategy: page_info + jsonPath: $.data.repository.discussion.comments.pageInfo.endCursor + terminateOnJsonPath: $.data.repository.discussion.comments.pageInfo.hasNextPage +query: | + query { + repository(owner: "{{ .owner }}", name: "{{ .repo }}") { + discussion(number: {{ .discussion_number }}) { + comments(first: 100{{ .cursor }}) { + pageInfo { endCursor hasNextPage } + nodes { + id + url + body + created_at: createdAt + updated_at: updatedAt + published_at: publishedAt + is_answer: isAnswer + is_minimized: isMinimized + minimized_reason: minimizedReason + upvote_count: upvoteCount + author { login } + replies { total_count: totalCount } + reactions { total_count: totalCount } + } + } + } + } + } +rowSchema: + type: object + properties: + id: { type: string, description: "The GraphQL node ID of the comment." } + url: { type: string, description: "The HTML URL of the comment." } + body: { type: string, description: "The comment body as Markdown." } + created_at: { type: string, format: date-time } + updated_at: { type: string, format: date-time } + published_at: { type: string, format: date-time } + is_answer: { type: boolean, description: "Whether this comment is the chosen answer." } + is_minimized: { type: boolean } + minimized_reason: { type: string } + upvote_count: { type: integer } + author: + type: object + description: "The comment author (`login`)." + properties: + login: { type: string } + replies: + type: object + description: "Reply counts (`total_count`)." + properties: + total_count: { type: integer } + reactions: + type: object + description: "Reaction counts (`total_count`)." + properties: + total_count: { type: integer } diff --git a/provider-dev/source-graphql/ops/discussions.yaml b/provider-dev/source-graphql/ops/discussions.yaml new file mode 100644 index 0000000..f1f151d --- /dev/null +++ b/provider-dev/source-graphql/ops/discussions.yaml @@ -0,0 +1,116 @@ +# GitHub Discussions in a repository (GraphQL only - no REST equivalent). +service: discussions +resource: discussions +title: Discussions +description: >- + Discussions in a repository, newest first. Backed by the GitHub GraphQL + API (`repository.discussions`); GitHub Discussions are not available + through the REST API. Use `discussion_comments` for the comment thread + of a single discussion. +parameters: + - name: owner + in: query + required: true + schema: { type: string } + description: The account owner of the repository. + - name: repo + in: query + required: true + schema: { type: string } + description: The name of the repository. +selection: $.data.repository.discussions.nodes +cursor: + strategy: page_info + jsonPath: $.data.repository.discussions.pageInfo.endCursor + terminateOnJsonPath: $.data.repository.discussions.pageInfo.hasNextPage +query: | + query { + repository(owner: "{{ .owner }}", name: "{{ .repo }}") { + discussions(first: 100, orderBy: {field: CREATED_AT, direction: DESC}{{ .cursor }}) { + pageInfo { endCursor hasNextPage } + nodes { + id + number + title + url + body + created_at: createdAt + updated_at: updatedAt + published_at: publishedAt + last_edited_at: lastEditedAt + locked + closed + closed_at: closedAt + is_answered: isAnswered + answer_chosen_at: answerChosenAt + upvote_count: upvoteCount + author { login } + category { id name slug } + comments { total_count: totalCount } + reactions { total_count: totalCount } + labels(first: 20) { nodes { name } } + answer { id url author { login } } + } + } + } + } +rowSchema: + type: object + properties: + id: { type: string, description: "The GraphQL node ID of the discussion." } + number: { type: integer, description: "The discussion number, unique within the repository." } + title: { type: string } + url: { type: string, description: "The HTML URL of the discussion." } + body: { type: string, description: "The discussion body as Markdown." } + created_at: { type: string, format: date-time } + updated_at: { type: string, format: date-time } + published_at: { type: string, format: date-time } + last_edited_at: { type: string, format: date-time } + locked: { type: boolean } + closed: { type: boolean } + closed_at: { type: string, format: date-time } + is_answered: { type: boolean, description: "Whether an answer has been chosen (answerable categories only)." } + answer_chosen_at: { type: string, format: date-time } + upvote_count: { type: integer } + author: + type: object + description: "The author of the discussion (`login`)." + properties: + login: { type: string } + category: + type: object + description: "The discussion category (`id`, `name`, `slug`)." + properties: + id: { type: string } + name: { type: string } + slug: { type: string } + comments: + type: object + description: "Comment counts (`total_count`)." + properties: + total_count: { type: integer } + reactions: + type: object + description: "Reaction counts (`total_count`)." + properties: + total_count: { type: integer } + labels: + type: object + description: "Up to 20 labels applied to the discussion (`nodes[].name`)." + properties: + nodes: + type: array + items: + type: object + properties: + name: { type: string } + answer: + type: object + description: "The chosen answer comment, if any (`id`, `url`, `author.login`)." + properties: + id: { type: string } + url: { type: string } + author: + type: object + properties: + login: { type: string } diff --git a/provider-dev/source-graphql/ops/org_sponsorships.yaml b/provider-dev/source-graphql/ops/org_sponsorships.yaml new file mode 100644 index 0000000..0e20d2b --- /dev/null +++ b/provider-dev/source-graphql/ops/org_sponsorships.yaml @@ -0,0 +1,67 @@ +# GitHub Sponsors sponsorships received by a org - GraphQL only. +service: orgs +resource: sponsorships +title: Sponsorships +description: >- + GitHub Sponsors sponsorships where the org is the maintainer being + sponsored. Backed by the GitHub GraphQL API + (`organization.sponsorshipsAsMaintainer`). Private sponsorships are only + visible to the sponsored account. +parameters: + - name: org + in: query + required: true + schema: { type: string } + description: The organization name. +selection: $.data.organization.sponsorshipsAsMaintainer.nodes +cursor: + strategy: page_info + jsonPath: $.data.organization.sponsorshipsAsMaintainer.pageInfo.endCursor + terminateOnJsonPath: $.data.organization.sponsorshipsAsMaintainer.pageInfo.hasNextPage +query: | + query { + organization(login: "{{ .org }}") { + sponsorshipsAsMaintainer(first: 100, includePrivate: true{{ .cursor }}) { + pageInfo { endCursor hasNextPage } + nodes { + id + created_at: createdAt + is_one_time_payment: isOneTimePayment + is_active: isActive + privacy_level: privacyLevel + tier { + name + monthly_price_in_dollars: monthlyPriceInDollars + monthly_price_in_cents: monthlyPriceInCents + is_one_time: isOneTime + } + sponsor_entity: sponsorEntity { + ... on User { login name } + ... on Organization { login name } + } + } + } + } + } +rowSchema: + type: object + properties: + id: { type: string, description: "The GraphQL node ID of the sponsorship." } + created_at: { type: string, format: date-time } + is_one_time_payment: { type: boolean } + is_active: { type: boolean } + privacy_level: { type: string, description: "PUBLIC or PRIVATE." } + tier: + type: object + description: "The sponsorship tier (`name`, `monthly_price_in_dollars`, `monthly_price_in_cents`, `is_one_time`)." + properties: + name: { type: string } + monthly_price_in_dollars: { type: integer } + monthly_price_in_cents: { type: integer } + is_one_time: { type: boolean } + sponsor_entity: + type: object + description: "The sponsoring user or organization (`login`, `name`)." + properties: + login: { type: string } + name: { type: string } diff --git a/provider-dev/source-graphql/ops/review_threads.yaml b/provider-dev/source-graphql/ops/review_threads.yaml new file mode 100644 index 0000000..fc0308e --- /dev/null +++ b/provider-dev/source-graphql/ops/review_threads.yaml @@ -0,0 +1,98 @@ +# Pull request review threads with resolution state - GraphQL only (the REST +# API exposes review comments but not the thread / resolved grouping). +service: pulls +resource: review_threads +title: Review Threads +description: >- + Review comment threads on a pull request with their resolved / outdated + state and the comments in each thread. Backed by the GitHub GraphQL API + (`pullRequest.reviewThreads`); the REST API does not expose thread + resolution. +parameters: + - name: owner + in: query + required: true + schema: { type: string } + description: The account owner of the repository. + - name: repo + in: query + required: true + schema: { type: string } + description: The name of the repository. + - name: pull_number + in: query + required: true + schema: { type: integer } + description: The number that identifies the pull request. +selection: $.data.repository.pullRequest.reviewThreads.nodes +cursor: + strategy: page_info + jsonPath: $.data.repository.pullRequest.reviewThreads.pageInfo.endCursor + terminateOnJsonPath: $.data.repository.pullRequest.reviewThreads.pageInfo.hasNextPage +query: | + query { + repository(owner: "{{ .owner }}", name: "{{ .repo }}") { + pullRequest(number: {{ .pull_number }}) { + reviewThreads(first: 100{{ .cursor }}) { + pageInfo { endCursor hasNextPage } + nodes { + id + is_resolved: isResolved + is_outdated: isOutdated + is_collapsed: isCollapsed + path + line + start_line: startLine + diff_side: diffSide + subject_type: subjectType + resolved_by: resolvedBy { login } + comments(first: 100) { + total_count: totalCount + nodes { + id + url + body + created_at: createdAt + author { login } + } + } + } + } + } + } + } +rowSchema: + type: object + properties: + id: { type: string, description: "The GraphQL node ID of the thread." } + is_resolved: { type: boolean } + is_outdated: { type: boolean, description: "Whether the thread is on a line that has since changed." } + is_collapsed: { type: boolean } + path: { type: string, description: "The file the thread is attached to." } + line: { type: integer, description: "The line in the diff the thread is attached to." } + start_line: { type: integer, description: "The first line of a multi-line comment range." } + diff_side: { type: string, description: "LEFT or RIGHT." } + subject_type: { type: string, description: "LINE or FILE." } + resolved_by: + type: object + description: "The user who resolved the thread (`login`)." + properties: + login: { type: string } + comments: + type: object + description: "The comments in the thread (`total_count`, `nodes[]` with `id`, `url`, `body`, `created_at`, `author.login`)." + properties: + total_count: { type: integer } + nodes: + type: array + items: + type: object + properties: + id: { type: string } + url: { type: string } + body: { type: string } + created_at: { type: string, format: date-time } + author: + type: object + properties: + login: { type: string } diff --git a/provider-dev/source-graphql/ops/saml_identities.yaml b/provider-dev/source-graphql/ops/saml_identities.yaml new file mode 100644 index 0000000..c1e33a0 --- /dev/null +++ b/provider-dev/source-graphql/ops/saml_identities.yaml @@ -0,0 +1,80 @@ +# SAML / SCIM external identities linked to an organization - GraphQL only. +service: orgs +resource: saml_identities +title: SAML Identities +description: >- + External identities (SAML and SCIM) linked to organization members when + the organization uses SAML single sign-on. Backed by the GitHub GraphQL + API (`organization.samlIdentityProvider.externalIdentities`). Requires + organization owner access and an organization with SAML SSO configured. +parameters: + - name: org + in: query + required: true + schema: { type: string } + description: The organization name. +selection: $.data.organization.samlIdentityProvider.externalIdentities.nodes +cursor: + strategy: page_info + jsonPath: $.data.organization.samlIdentityProvider.externalIdentities.pageInfo.endCursor + terminateOnJsonPath: $.data.organization.samlIdentityProvider.externalIdentities.pageInfo.hasNextPage +query: | + query { + organization(login: "{{ .org }}") { + samlIdentityProvider { + externalIdentities(first: 100{{ .cursor }}) { + pageInfo { endCursor hasNextPage } + nodes { + id + guid + saml_identity: samlIdentity { + name_id: nameId + username + emails { value primary } + } + scim_identity: scimIdentity { + username + emails { value primary } + } + user { login id } + } + } + } + } + } +rowSchema: + type: object + properties: + id: { type: string, description: "The GraphQL node ID of the external identity." } + guid: { type: string, description: "The GUID for this identity." } + saml_identity: + type: object + description: "The SAML identity (`name_id`, `username`, `emails[]`)." + properties: + name_id: { type: string } + username: { type: string } + emails: + type: array + items: + type: object + properties: + value: { type: string } + primary: { type: boolean } + scim_identity: + type: object + description: "The SCIM identity (`username`, `emails[]`)." + properties: + username: { type: string } + emails: + type: array + items: + type: object + properties: + value: { type: string } + primary: { type: boolean } + user: + type: object + description: "The linked GitHub user, null for unlinked identities (`login`, `id`)." + properties: + login: { type: string } + id: { type: string } diff --git a/provider-dev/source-graphql/ops/star_history.yaml b/provider-dev/source-graphql/ops/star_history.yaml new file mode 100644 index 0000000..ac70f25 --- /dev/null +++ b/provider-dev/source-graphql/ops/star_history.yaml @@ -0,0 +1,65 @@ +# Stargazers with the time each star was given. The REST stargazers endpoint +# only returns starred_at with a non-default Accept media type, which the +# provider does not set; GraphQL returns it natively and in STARRED_AT order. +service: activity +resource: star_history +title: Star History +description: >- + Every star on a repository with the time it was given, oldest first - + suitable for star growth over time. Backed by the GitHub GraphQL API + (`repository.stargazers` ordered by `STARRED_AT`). Since July 2026 GitHub + limits stargazer listings to repository admins and collaborators; other + tokens get "Resource not accessible by personal access token". +parameters: + - name: owner + in: query + required: true + schema: { type: string } + description: The account owner of the repository. + - name: repo + in: query + required: true + schema: { type: string } + description: The name of the repository. +selection: $.data.repository.stargazers.edges +cursor: + strategy: page_info + jsonPath: $.data.repository.stargazers.pageInfo.endCursor + terminateOnJsonPath: $.data.repository.stargazers.pageInfo.hasNextPage +query: | + query { + repository(owner: "{{ .owner }}", name: "{{ .repo }}") { + stargazers(first: 100, orderBy: {field: STARRED_AT, direction: ASC}{{ .cursor }}) { + pageInfo { endCursor hasNextPage } + edges { + starred_at: starredAt + user: node { + login + id + database_id: databaseId + name + company + location + url + avatar_url: avatarUrl + } + } + } + } + } +rowSchema: + type: object + properties: + starred_at: { type: string, format: date-time, description: "When the star was given." } + user: + type: object + description: "The user who starred the repository (`login`, `id`, `database_id`, `name`, `company`, `location`, `url`, `avatar_url`)." + properties: + login: { type: string } + id: { type: string } + database_id: { type: integer } + name: { type: string } + company: { type: string } + location: { type: string } + url: { type: string } + avatar_url: { type: string } diff --git a/provider-dev/source-graphql/ops/user_sponsorships.yaml b/provider-dev/source-graphql/ops/user_sponsorships.yaml new file mode 100644 index 0000000..e6466c9 --- /dev/null +++ b/provider-dev/source-graphql/ops/user_sponsorships.yaml @@ -0,0 +1,67 @@ +# GitHub Sponsors sponsorships received by a user - GraphQL only. +service: users +resource: sponsorships +title: Sponsorships +description: >- + GitHub Sponsors sponsorships where the user is the maintainer being + sponsored. Backed by the GitHub GraphQL API + (`user.sponsorshipsAsMaintainer`). Private sponsorships are only + visible to the sponsored account. +parameters: + - name: username + in: query + required: true + schema: { type: string } + description: The handle for the GitHub user account. +selection: $.data.user.sponsorshipsAsMaintainer.nodes +cursor: + strategy: page_info + jsonPath: $.data.user.sponsorshipsAsMaintainer.pageInfo.endCursor + terminateOnJsonPath: $.data.user.sponsorshipsAsMaintainer.pageInfo.hasNextPage +query: | + query { + user(login: "{{ .username }}") { + sponsorshipsAsMaintainer(first: 100, includePrivate: true{{ .cursor }}) { + pageInfo { endCursor hasNextPage } + nodes { + id + created_at: createdAt + is_one_time_payment: isOneTimePayment + is_active: isActive + privacy_level: privacyLevel + tier { + name + monthly_price_in_dollars: monthlyPriceInDollars + monthly_price_in_cents: monthlyPriceInCents + is_one_time: isOneTime + } + sponsor_entity: sponsorEntity { + ... on User { login name } + ... on Organization { login name } + } + } + } + } + } +rowSchema: + type: object + properties: + id: { type: string, description: "The GraphQL node ID of the sponsorship." } + created_at: { type: string, format: date-time } + is_one_time_payment: { type: boolean } + is_active: { type: boolean } + privacy_level: { type: string, description: "PUBLIC or PRIVATE." } + tier: + type: object + description: "The sponsorship tier (`name`, `monthly_price_in_dollars`, `monthly_price_in_cents`, `is_one_time`)." + properties: + name: { type: string } + monthly_price_in_dollars: { type: integer } + monthly_price_in_cents: { type: integer } + is_one_time: { type: boolean } + sponsor_entity: + type: object + description: "The sponsoring user or organization (`login`, `name`)." + properties: + login: { type: string } + name: { type: string } diff --git a/provider-dev/source/actions.yaml b/provider-dev/source/actions.yaml index 1c33be3..6387947 100644 --- a/provider-dev/source/actions.yaml +++ b/provider-dev/source/actions.yaml @@ -973,6 +973,13 @@ paths: size: description: The machine size of the runner. To list available sizes, use `GET actions/hosted-runners/machine-sizes` type: string + image_source: + description: The source type of the runner image to use. Must match the source of the image specified by `image_id`. Can be one of `github`, `partner`, or `custom`. + type: string + enum: + - github + - partner + - custom image_id: description: The unique identifier of the runner image. To list available images, use `GET /actions/hosted-runners/images/github-owned`, `GET /actions/hosted-runners/images/partner`, or `GET /actions/hosted-runners/images/custom`. type: string @@ -980,6 +987,9 @@ paths: description: The version of the runner image to deploy. This is relevant only for runners using custom images. type: string nullable: true + image_gen: + description: Whether to enable image generation for this runner pool. When enabled, the runner pool is used to build and publish custom runner images. + type: boolean examples: default: value: @@ -4148,6 +4158,113 @@ paths: category: actions subcategory: cache x-stackQL-resource: cache + /repos/{owner}/{repo}/actions/concurrency_groups: + get: + summary: List concurrency groups for a repository + description: |- + Lists the active concurrency groups for a repository. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + tags: + - actions + operationId: actions/list-concurrency-groups-for-repository + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/concurrency-groups#list-concurrency-groups-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/per-page' + - $ref: '#/components/parameters/pagination-after' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/concurrency-group-list' + examples: + default: + $ref: '#/components/examples/concurrency-group-list' + headers: + Link: + $ref: '#/components/headers/link' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: concurrency-groups + x-stackQL-resource: concurrency_groups + /repos/{owner}/{repo}/actions/concurrency_groups/{concurrency_group_name}: + get: + summary: Get a concurrency group for a repository + description: |- + Gets a specific concurrency group for a repository, including all instances in the group's queue. + Returns 404 if the group is inactive or does not exist. + + Optionally, pass `ahead_of_run` or `ahead_of_job` to filter the results to only the items + ahead of the specified workflow run or job in the queue, plus the specified item itself + (returned as the last element). This is useful for determining what is blocking a particular + run or job. Returns 422 if the specified run or job is not in this concurrency group. + + When using `ahead_of_run`, this matches workflow-level concurrency and any reusable-workflow + leases held on behalf of that run. Job-level leases within the run are not considered to + block the run as a whole. Use `ahead_of_job` to match job-level concurrency and reusable-workflow + leases on the job's ancestor paths. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + tags: + - actions + operationId: actions/get-concurrency-group-for-repository + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/concurrency-groups#get-a-concurrency-group-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/concurrency-group-name' + - name: ahead_of_run + description: |- + Filter to items ahead of this workflow run ID in the queue, plus the run itself. + Matches workflow-level concurrency and reusable-workflow leases held on behalf of + the run. Mutually exclusive with `ahead_of_job`. + in: query + required: false + schema: + type: integer + minimum: 1 + - name: ahead_of_job + description: |- + Filter to items ahead of this job ID in the queue, plus the job itself. + Matches job-level concurrency and reusable-workflow leases on the job's + ancestor paths. Mutually exclusive with `ahead_of_run`. + in: query + required: false + schema: + type: integer + minimum: 1 + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/concurrency-group' + examples: + default: + $ref: '#/components/examples/concurrency-group' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: concurrency-groups + x-stackQL-resource: concurrency_groups /repos/{owner}/{repo}/actions/jobs/{job_id}: get: summary: Get a job for a workflow run @@ -4246,6 +4363,10 @@ paths: type: boolean default: false description: Whether to enable debug logging for the re-run. + enable_debugger: + type: boolean + default: false + description: Whether to enable the debugger for the re-run of this job. examples: default: value: null @@ -4337,6 +4458,9 @@ paths: type: array items: type: string + use_immutable_subject: + description: Whether to opt in to the immutable OIDC subject claim format for this repository. When `true`, OIDC tokens will use a stable, repository-ID-based `sub` claim. + type: boolean examples: default: value: @@ -5881,6 +6005,65 @@ paths: category: actions subcategory: workflow-runs x-stackQL-resource: workflow_runs + /repos/{owner}/{repo}/actions/runs/{run_id}/concurrency_groups: + get: + summary: List concurrency groups for a workflow run + description: |- + Lists all concurrency groups associated with a workflow run or its jobs. + + The set of groups is derived from the run's configuration, so a group is + included even when the run no longer has any items currently holding or + waiting in it. In that case the `group_members` array will be empty. + `total_count` reflects the number of groups the run participates in by + configuration, not the number with active items. + + This differs from `GET /repos/{owner}/{repo}/actions/concurrency_groups/{group_name}`, + which returns 404 when a group has no active items. That endpoint reports + the live state of a group repo-wide, while this endpoint reports the + groups associated with a specific run by configuration. + + Results are sorted by group name and support cursor-based pagination via + `before` and `after`. The `after` cursor paginates forward only and does + not emit a `rel="prev"` Link; use `before` to page backward from a + forward page's `next` cursor. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + tags: + - actions + operationId: actions/list-concurrency-groups-for-workflow-run + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/actions/concurrency-groups#list-concurrency-groups-for-a-workflow-run + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/run-id' + - $ref: '#/components/parameters/per-page' + - $ref: '#/components/parameters/pagination-before' + - $ref: '#/components/parameters/pagination-after' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/concurrency-group-run-list' + examples: + default: + $ref: '#/components/examples/concurrency-group-run-list' + headers: + Link: + $ref: '#/components/headers/link' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: actions + subcategory: concurrency-groups + x-stackQL-resource: concurrency_groups /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule: post: summary: Review custom deployment protection rules for a workflow run @@ -6942,6 +7125,9 @@ paths: path: /responses/204 - op: remove path: /requestBody/content/application~1json/schema/properties/return_run_details + - op: replace + path: /responses/200/description + value: Response including the workflow run ID and URLs. version: '2026-03-10' x-stackQL-resource: workflows /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable: @@ -8965,6 +9151,11 @@ components: $ref: '#/components/schemas/runner-label' ephemeral: type: boolean + version: + description: The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once. + nullable: true + type: string + example: 2.323.0 required: - id - name @@ -9272,6 +9463,105 @@ components: required: - total_count - actions_caches + concurrency-group-list: + title: Concurrency Group List + description: A list of active concurrency groups for a repository. + type: object + required: + - total_count + - concurrency_groups + properties: + total_count: + type: integer + concurrency_groups: + type: array + items: + type: object + required: + - group_name + - group_url + - last_acquired_at + properties: + group_name: + type: string + description: The name of the concurrency group. + group_url: + type: string + format: uri + description: API URL for this concurrency group. + last_acquired_at: + type: string + format: date-time + nullable: true + concurrency-group: + title: Concurrency Group + description: |- + A concurrency group with the workflow runs and jobs that are either currently holding + or waiting for the concurrency group lease. + type: object + required: + - group_name + - group_url + - total_count + - group_members + properties: + group_name: + type: string + description: The name of the concurrency group. + group_url: + type: string + format: uri + description: API URL for this concurrency group. + total_count: + type: integer + group_members: + type: array + items: + type: object + required: + - run_id + - run_name + - run_url + - run_html_url + - status + properties: + run_id: + type: integer + description: The ID of the workflow run. + run_name: + type: string + description: The name of the workflow run. + run_url: + type: string + format: uri + description: API URL for the workflow run. + nullable: true + run_html_url: + type: string + format: uri + description: Web URL for the workflow run. + nullable: true + job_id: + type: integer + description: The ID of the job, when the item represents a job-level or reusable-workflow-level lease. + job_name: + type: string + description: The display name of the job, when the item represents a job-level or reusable-workflow-level lease. + job_url: + type: string + format: uri + description: API URL for the job. + nullable: true + job_html_url: + type: string + format: uri + description: Web URL for the job. + nullable: true + status: + type: string + enum: + - in_progress + - pending job: title: Job description: Information of a job execution in a workflow run @@ -9281,10 +9571,12 @@ components: description: The id of the job. example: 21 type: integer + format: int64 run_id: description: The id of the associated workflow run. example: 5 type: integer + format: int64 run_url: type: string example: https://api.github.com/repos/github/hello-world/actions/runs/5 @@ -9470,6 +9762,12 @@ components: type: array items: type: string + use_immutable_subject: + description: Whether the repository has opted in to the immutable OIDC subject claim format. When `true`, OIDC tokens will use a stable, repository-ID-based `sub` claim. If not set at the repository level, falls back to the organization-level setting. + type: boolean + sub_claim_prefix: + description: The current `sub` claim prefix for this repository. + type: string required: - use_default actions-secret: @@ -9557,6 +9855,7 @@ components: properties: id: type: integer + format: int64 description: The ID of the workflow run. example: 5 name: @@ -9569,6 +9868,7 @@ components: example: MDEwOkNoZWNrU3VpdGU1 check_suite_id: type: integer + format: int64 description: The ID of the associated check suite. example: 42 check_suite_node_id: @@ -9772,6 +10072,106 @@ components: - state - user - comment + concurrency-group-run-list: + title: Concurrency Group Run List + description: A list of concurrency groups associated with a workflow run. + type: object + required: + - total_count + - concurrency_groups + properties: + total_count: + type: integer + description: |- + The total number of concurrency groups this workflow run participates in, + derived from the run's configuration. This count is not filtered by + whether the run currently holds or is waiting in each group, so it can + include groups whose `group_members` array is empty (for example, when + the run has already released its lease in that group). + concurrency_groups: + type: array + items: + type: object + required: + - group_name + - group_url + - group_members + properties: + group_name: + type: string + description: The name of the concurrency group. + group_url: + type: string + format: uri + description: |- + API URL for this concurrency group. May return 404 if the group + has no active items at the time it is requested, since the + get-by-name endpoint reports the live repo-wide state of a group + while this endpoint lists groups associated with a run by + configuration. + group_members: + type: array + description: |- + Items belonging to this workflow run that are either currently holding or + waiting for the concurrency group lease. May be empty if the run no + longer has any active or queued items in this group. + items: + type: object + required: + - run_id + - run_name + - run_url + - run_html_url + - status + - position + - position_url + properties: + run_id: + type: integer + description: The ID of the workflow run. + run_name: + type: string + description: The name of the workflow run. + run_url: + type: string + format: uri + description: API URL for the workflow run. + nullable: true + run_html_url: + type: string + format: uri + description: Web URL for the workflow run. + nullable: true + position: + type: integer + description: Queue position. 0 means the item holds the concurrency lease (in_progress), 1 or higher means queued (pending). + position_url: + type: string + format: uri + description: API URL to get items ahead of this item in the concurrency group. + job_id: + type: integer + description: The ID of the job, when the item represents a job-level or reusable-workflow-level lease. + nullable: true + job_name: + type: string + description: The display name of the job, when the item represents a job-level or reusable-workflow-level lease. + nullable: true + job_url: + type: string + format: uri + description: API URL for the job. + nullable: true + job_html_url: + type: string + format: uri + description: Web URL for the job. + nullable: true + status: + type: string + enum: + - in_progress + - pending review-custom-gates-comment-required: type: object properties: @@ -10808,6 +11208,17 @@ components: enum: - enterprise - organization + access_source: + description: |- + How the team's access to the repository was granted. This property is only + present when the team is returned in a repository context, such as + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs @@ -11581,6 +11992,20 @@ components: required: true schema: type: integer + 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 + concurrency-group-name: + name: concurrency_group_name + description: The name of the concurrency group. + in: path + required: true + schema: + type: string job-id: name: job_id description: The unique identifier of the job. @@ -11588,6 +12013,7 @@ components: required: true schema: type: integer + format: int64 actor: name: actor description: Returns someone's workflow runs. Use the login for the user who created the `push` associated with the check suite or workflow run. @@ -11653,6 +12079,7 @@ components: in: query schema: type: integer + format: int64 workflow-run-head-sha: name: head_sha description: Only returns workflow runs that are associated with the specified `head_sha`. @@ -11674,6 +12101,13 @@ components: required: true schema: type: integer + 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 workflow-id: name: workflow_id in: path @@ -12281,6 +12715,7 @@ components: status: online busy: true ephemeral: false + version: 2.323.0 labels: - id: 5 name: self-hosted @@ -12297,6 +12732,7 @@ components: status: offline busy: false ephemeral: false + version: 2.323.0 labels: - id: 5 name: self-hosted @@ -12348,6 +12784,7 @@ components: status: online busy: true ephemeral: false + version: 2.323.0 labels: - id: 5 name: self-hosted @@ -12560,6 +12997,41 @@ components: last_accessed_at: '2019-01-24T22:45:36.000Z' created_at: '2019-01-24T22:45:36.000Z' size_in_bytes: 1024 + concurrency-group-list: + value: + total_count: 2 + concurrency_groups: + - group_name: deploy-prod + group_url: https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/deploy-prod + last_acquired_at: '2026-01-15T16:14:23Z' + - group_name: ci-build + group_url: https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/ci-build + last_acquired_at: '2026-01-15T16:13:55Z' + concurrency-group: + value: + group_name: deploy-prod + group_url: https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/deploy-prod + total_count: 3 + group_members: + - run_id: 30433642 + run_name: Deploy to production + run_url: https://api.github.com/repos/octocat/Hello-World/actions/runs/30433642 + run_html_url: https://github.com/octocat/Hello-World/actions/runs/30433642 + status: in_progress + - run_id: 30433643 + run_name: Deploy to production + run_url: https://api.github.com/repos/octocat/Hello-World/actions/runs/30433643 + run_html_url: https://github.com/octocat/Hello-World/actions/runs/30433643 + status: pending + - run_id: 30433644 + run_name: Deploy hotfix + run_url: https://api.github.com/repos/octocat/Hello-World/actions/runs/30433644 + run_html_url: https://github.com/octocat/Hello-World/actions/runs/30433644 + job_id: 798245260 + job_name: deploy + job_url: https://api.github.com/repos/octocat/Hello-World/actions/jobs/798245260 + job_html_url: https://github.com/octocat/Hello-World/actions/runs/30433644/job/798245260 + status: pending job: value: id: 399444496 @@ -13236,6 +13708,34 @@ components: runner_group_name: my runner group workflow_name: CI head_branch: main + concurrency-group-run-list: + value: + total_count: 2 + concurrency_groups: + - group_name: deploy-prod + group_url: https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/deploy-prod + group_members: + - run_id: 30433642 + run_name: Deploy to production + run_url: https://api.github.com/repos/octocat/Hello-World/actions/runs/30433642 + run_html_url: https://github.com/octocat/Hello-World/actions/runs/30433642 + status: in_progress + position: 0 + position_url: https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/deploy-prod?ahead_of_run=30433642 + - group_name: ci-build + group_url: https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/ci-build + group_members: + - run_id: 30433642 + run_name: Deploy to production + run_url: https://api.github.com/repos/octocat/Hello-World/actions/runs/30433642 + run_html_url: https://github.com/octocat/Hello-World/actions/runs/30433642 + status: pending + position: 2 + position_url: https://api.github.com/repos/octocat/Hello-World/actions/concurrency_groups/ci-build?ahead_of_job=798245260 + job_id: 798245260 + job_name: build + job_url: https://api.github.com/repos/octocat/Hello-World/actions/jobs/798245260 + job_html_url: https://github.com/octocat/Hello-World/actions/runs/30433642/job/798245260 pending-deployment-items: value: - environment: diff --git a/provider-dev/source/activity.yaml b/provider-dev/source/activity.yaml index a5d850a..a9f4c94 100644 --- a/provider-dev/source/activity.yaml +++ b/provider-dev/source/activity.yaml @@ -4766,6 +4766,8 @@ components: $ref: '#/components/schemas/reaction-rollup' pin: $ref: '#/components/schemas/nullable-pinned-issue-comment' + minimized: + $ref: '#/components/schemas/nullable-issue-comment-minimized' required: - id - node_id @@ -5068,7 +5070,7 @@ components: nullable: true issue-type: title: Issue Type - description: The type of issue. + description: The type assigned to the issue. This is only present for issues in repositories where issue types are supported. type: object nullable: true properties: @@ -5404,6 +5406,8 @@ components: $ref: '#/components/schemas/reaction-rollup' pin: $ref: '#/components/schemas/nullable-pinned-issue-comment' + minimized: + $ref: '#/components/schemas/nullable-issue-comment-minimized' required: - id - node_id @@ -5441,6 +5445,10 @@ components: type: integer format: int64 example: 1 + issue_field_name: + description: The human-readable name of the issue field. + type: string + example: Priority node_id: type: string example: IFT_GDKND @@ -5450,6 +5458,7 @@ components: enum: - text - single_select + - multi_select - number - date example: text @@ -5480,6 +5489,30 @@ components: - name - color nullable: true + multi_select_options: + description: Details about the selected options + type: array + items: + 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 @@ -5500,6 +5533,19 @@ components: - pinned_at - pinned_by nullable: true + nullable-issue-comment-minimized: + title: Minimized Issue Comment + description: Details about why an issue comment was minimized. + type: object + properties: + reason: + description: The reason the comment was minimized. + type: string + nullable: true + example: low-quality + required: + - reason + nullable: true release-asset: title: Release Asset description: Data related to a release. diff --git a/provider-dev/source/agent_tasks.yaml b/provider-dev/source/agent_tasks.yaml index a7a6fda..aea891a 100644 --- a/provider-dev/source/agent_tasks.yaml +++ b/provider-dev/source/agent_tasks.yaml @@ -12,6 +12,19 @@ paths: > This endpoint is in public preview and is subject to change. Returns a list of tasks for a specific repository + + **Fine-grained access tokens for "List tasks for repository"** + + This endpoint works with the following fine-grained token types: + + * [GitHub App user access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app) + * [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) + + The fine-grained token must have the following permission set: + + * "Agent tasks" repository permissions (read) + + GitHub App installation access tokens are not supported for this endpoint. tags: - agent-tasks operationId: agent-tasks/list-tasks-for-repo @@ -89,8 +102,10 @@ paths: - name: creator_id in: query schema: - type: integer - description: Filter tasks by creator user ID + type: array + items: + type: integer + description: Filter tasks by creator user ID. Accepts one or more user IDs. responses: '200': description: Tasks retrieved successfully @@ -254,6 +269,13 @@ paths: type: string format: date-time description: Timestamp when the task was created + custom_agent: + type: object + description: Custom agent metadata associated with this task + properties: + id: + type: string + description: The custom agent's filename without the extension - for example, `performance-optimizer` for a `.github/agents/performance-optimizer.agent.md` custom agent. description: List of tasks total_active_count: type: integer @@ -505,18 +527,33 @@ paths: description: URL to relevant API documentation x-stackQL-resource: agent_tasks post: - summary: Create a task + summary: Start a task description: | > [!NOTE] > This endpoint is in public preview and is subject to change. - Creates a new task for a repository. + Starts a new Copilot cloud agent task for a repository. + + This endpoint is only available to users with a Copilot Business or Copilot Enterprise subscription. + + **Fine-grained access tokens for "Start a task"** + + This endpoint works with the following fine-grained token types: + + * [GitHub App user access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app) + * [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) + + The fine-grained token must have the following permission set: + + * "Agent tasks" repository permissions (read and write) + + GitHub App installation access tokens are not supported for this endpoint. tags: - agent-tasks - operationId: agent-tasks/create-task + operationId: agent-tasks/create-task-in-repo externalDocs: description: API method documentation - url: https://docs.github.com/rest/agent-tasks/agent-tasks#create-a-task + url: https://docs.github.com/rest/agent-tasks/agent-tasks#start-a-task x-github: githubCloudOnly: false enabledForGitHubApps: true @@ -537,6 +574,7 @@ paths: description: The name of the repository. The name is not case sensitive. requestBody: required: true + description: The task creation parameters, including the user's prompt and optional agent settings. content: application/json: schema: @@ -550,6 +588,9 @@ paths: model: type: string description: 'The model to use for this task. The allowed models may change over time and depend on the user''s GitHub Copilot plan and organization policies. Currently supported values: `claude-sonnet-4.6`, `claude-opus-4.6`, `gpt-5.2-codex`, `gpt-5.3-codex`, `gpt-5.4`, `claude-sonnet-4.5`, `claude-opus-4.5`' + custom_agent: + type: string + description: Optional identifier for a custom agent to use for this task. Use the custom agent's filename without the extension - for example, for a `.github/agents/performance-optimizer.agent.md` custom agent, use `performance-optimizer`. create_pull_request: type: boolean description: Whether to create a PR. @@ -557,11 +598,20 @@ paths: base_ref: type: string description: Base ref for new branch/PR + head_ref: + type: string + description: Head ref for existing branch/PR. If provided with `base_ref`, the agent looks up open PR context for `head_ref` targeting `base_ref` and commits to `head_ref` instead of creating a new branch. examples: default: value: prompt: Fix the login button on the homepage base_ref: main + with-custom-agent: + summary: Task with a custom agent + value: + prompt: Fix the login button on the homepage + base_ref: main + custom_agent: my-custom-agent responses: '201': description: Task created successfully @@ -707,6 +757,13 @@ paths: type: string format: date-time description: Timestamp when the task was created + custom_agent: + type: object + description: Custom agent metadata associated with this task + properties: + id: + type: string + description: The custom agent's filename without the extension - for example, `performance-optimizer` for a `.github/agents/performance-optimizer.agent.md` custom agent. examples: default: value: @@ -727,6 +784,28 @@ paths: archived_at: null created_at: '2025-01-01T00:00:00Z' updated_at: '2025-01-01T00:00:00Z' + with-custom-agent: + summary: Task created with a custom agent + value: + id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 + url: https://api.github.com/agents/repos/octocat/hello-world/tasks/a1b2c3d4-e5f6-7890-abcd-ef1234567890 + html_url: https://github.com/octocat/hello-world/copilot/tasks/a1b2c3d4-e5f6-7890-abcd-ef1234567890 + name: Fix the login button on the homepage + creator: + id: 1 + creator_type: user + owner: + id: 1 + repository: + id: 1296269 + state: queued + session_count: 1 + custom_agent: + id: my-custom-agent + artifacts: [] + archived_at: null + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T00:00:00Z' '400': description: Problems parsing JSON content: @@ -908,6 +987,19 @@ paths: > This endpoint is in public preview and is subject to change. Returns a task by ID scoped to an owner/repo path + + **Fine-grained access tokens for "Get a task by repo"** + + This endpoint works with the following fine-grained token types: + + * [GitHub App user access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app) + * [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) + + The fine-grained token must have the following permission set: + + * "Agent tasks" repository permissions (read) + + GitHub App installation access tokens are not supported for this endpoint. tags: - agent-tasks operationId: agent-tasks/get-task-by-repo-and-id @@ -1085,6 +1177,13 @@ paths: type: string format: date-time description: Timestamp when the task was created + custom_agent: + type: object + description: Custom agent metadata associated with this task + properties: + id: + type: string + description: The custom agent's filename without the extension - for example, `performance-optimizer` for a `.github/agents/performance-optimizer.agent.md` custom agent. sessions: type: array items: @@ -1164,6 +1263,23 @@ paths: model: type: string description: Model used for this session + usage: + type: object + description: Structured information about billing units consumed by the session. + required: + - type + - amount + properties: + type: + type: string + description: Billing unit used for this session. New sessions since June 1, 2026 use `ai_credits`, but older sessions use `premium_requests`. + enum: + - ai_credits + - premium_requests + amount: + type: number + format: double + description: Number of billing units used by this session. When the `type` is `ai_credits`, the value is a whole number, expressed in nano units. When presenting this to a human, divide by 1,000,000,000 and round to one decimal place. When aggregating (for example, summing usage across sessions), sum the nano values first, and divide once at the end before presenting to a human to avoid losing precision. When the `type` is `premium_requests`, the value may be fractional (for example `1.5`). error: type: object description: Error details for a failed session @@ -1438,6 +1554,19 @@ paths: > This endpoint is in public preview and is subject to change. Returns a list of tasks for the authenticated user + + **Fine-grained access tokens for "List tasks"** + + This endpoint works with the following fine-grained token types: + + * [GitHub App user access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app) + * [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) + + The fine-grained token must have the following permission set: + + * "Agent tasks" repository permissions (read) + + GitHub App installation access tokens are not supported for this endpoint. tags: - agent-tasks operationId: agent-tasks/list-tasks @@ -1662,6 +1791,13 @@ paths: type: string format: date-time description: Timestamp when the task was created + custom_agent: + type: object + description: Custom agent metadata associated with this task + properties: + id: + type: string + description: The custom agent's filename without the extension - for example, `performance-optimizer` for a `.github/agents/performance-optimizer.agent.md` custom agent. description: List of tasks total_active_count: type: integer @@ -1875,6 +2011,19 @@ paths: > This endpoint is in public preview and is subject to change. Returns a task by ID with its associated sessions + + **Fine-grained access tokens for "Get a task by ID"** + + This endpoint works with the following fine-grained token types: + + * [GitHub App user access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app) + * [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token) + + The fine-grained token must have the following permission set: + + * "Agent tasks" repository permissions (read) + + GitHub App installation access tokens are not supported for this endpoint. tags: - agent-tasks operationId: agent-tasks/get-task-by-id @@ -2040,6 +2189,13 @@ paths: type: string format: date-time description: Timestamp when the task was created + custom_agent: + type: object + description: Custom agent metadata associated with this task + properties: + id: + type: string + description: The custom agent's filename without the extension - for example, `performance-optimizer` for a `.github/agents/performance-optimizer.agent.md` custom agent. sessions: type: array items: @@ -2119,6 +2275,23 @@ paths: model: type: string description: Model used for this session + usage: + type: object + description: Structured information about billing units consumed by the session. + required: + - type + - amount + properties: + type: + type: string + description: Billing unit used for this session. New sessions since June 1, 2026 use `ai_credits`, but older sessions use `premium_requests`. + enum: + - ai_credits + - premium_requests + amount: + type: number + format: double + description: Number of billing units used by this session. When the `type` is `ai_credits`, the value is a whole number, expressed in nano units. When presenting this to a human, divide by 1,000,000,000 and round to one decimal place. When aggregating (for example, summing usage across sessions), sum the nano values first, and divide once at the end before presenting to a human to avoid losing precision. When the `type` is `premium_requests`, the value may be fractional (for example `1.5`). error: type: object description: Error details for a failed session diff --git a/provider-dev/source/agents.yaml b/provider-dev/source/agents.yaml new file mode 100644 index 0000000..2521d9a --- /dev/null +++ b/provider-dev/source/agents.yaml @@ -0,0 +1,2318 @@ +openapi: 3.0.3 +info: + title: agents API + description: Endpoints for Agents secrets and variables. + version: 1.1.4 +paths: + /orgs/{org}/agents/secrets: + get: + summary: List organization secrets + description: |- + 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. + tags: + - agents + operationId: agents/list-org-secrets + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/secrets#list-organization-secrets + parameters: + - $ref: '#/components/parameters/org' + - $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/organization-actions-secret' + examples: + default: + $ref: '#/components/examples/organization-actions-secret-paginated' + headers: + Link: + $ref: '#/components/headers/link' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + /orgs/{org}/agents/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. + + 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. + tags: + - agents + operationId: agents/get-org-public-key + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/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' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + /orgs/{org}/agents/secrets/{secret_name}: + get: + summary: Get an organization secret + description: |- + 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. + tags: + - agents + operationId: agents/get-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/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: agents + subcategory: secrets + x-stackQL-resource: secrets + put: + summary: Create or update an organization secret + description: |- + 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. + tags: + - agents + operationId: agents/create-or-update-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/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: + 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/agents/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/agents/secrets#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/agents/secrets#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/agents/secrets#remove-selected-repository-from-an-organization-secret) endpoints. + items: + type: integer + required: + - encrypted_value + - key_id + - visibility + examples: + default: + value: + encrypted_value: c2VjcmV0 + key_id: '012345678912345678' + visibility: selected + selected_repository_ids: + - 1296269 + - 1296280 + responses: + '201': + description: Response when creating a secret + content: + application/json: + schema: + $ref: '#/components/schemas/empty-object' + examples: + default: + value: null + '204': + description: Response when updating a secret + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + delete: + summary: Delete an organization secret + description: |- + 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. + tags: + - agents + operationId: agents/delete-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/secrets#delete-an-organization-secret + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/secret-name' + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + /orgs/{org}/agents/secrets/{secret_name}/repositories: + 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`. + + 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. + tags: + - agents + operationId: agents/list-selected-repos-for-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/secrets#list-selected-repositories-for-an-organization-secret + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/secret-name' + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/per-page' + 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/public-repository-paginated' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + 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/agents/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. + tags: + - agents + operationId: agents/set-selected-repos-for-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/secrets#set-selected-repositories-for-an-organization-secret + parameters: + - $ref: '#/components/parameters/org' + - $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/agents/secrets#add-selected-repository-to-an-organization-secret) and [Remove selected repository from an organization secret](https://docs.github.com/rest/agents/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 + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + /orgs/{org}/agents/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 + 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/agents/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. + tags: + - agents + operationId: agents/add-selected-repo-to-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/secrets#add-selected-repository-to-an-organization-secret + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/secret-name' + - name: repository_id + in: path + required: true + schema: + type: integer + responses: + '204': + description: No Content when repository was added to the selected list + '409': + description: Conflict when visibility type is not set to selected + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + 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/agents/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. + tags: + - agents + operationId: agents/remove-selected-repo-from-org-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/secrets#remove-selected-repository-from-an-organization-secret + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/secret-name' + - name: repository_id + in: path + required: true + schema: + type: integer + responses: + '204': + description: Response when repository was removed from the selected list + '409': + description: Conflict when visibility type not set to selected + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + /orgs/{org}/agents/variables: + get: + summary: List organization variables + description: |- + Lists all agent variables available in an organization. + Returned variables include their values. + + 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. + tags: + - agents + operationId: agents/list-org-variables + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/variables#list-organization-variables + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/variables-per-page' + - $ref: '#/components/parameters/page' + responses: + '200': + description: Response + content: + application/json: + schema: + 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/organization-actions-variables-paginated' + headers: + Link: + $ref: '#/components/headers/link' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + post: + summary: Create an organization variable + description: |- + Creates an organization agent 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. + tags: + - agents + operationId: agents/create-org-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/variables#create-an-organization-variable + parameters: + - $ref: '#/components/parameters/org' + 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 + required: + - name + - value + - visibility + examples: + default: + value: + name: USERNAME + value: octocat + visibility: selected + selected_repository_ids: + - 1296269 + - 1296280 + responses: + '201': + description: Response when creating a variable + content: + application/json: + schema: + $ref: '#/components/schemas/empty-object' + examples: + default: + value: null + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + /orgs/{org}/agents/variables/{name}: + get: + summary: Get an organization variable + description: |- + Gets a specific agent 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. + tags: + - agents + operationId: agents/get-org-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/variables#get-an-organization-variable + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/variable-name' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/organization-actions-variable' + examples: + default: + $ref: '#/components/examples/organization-actions-variable' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + patch: + summary: Update an organization variable + description: |- + Updates an organization agent 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. + tags: + - agents + operationId: agents/update-org-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/variables#update-an-organization-variable + parameters: + - $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 + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + delete: + summary: Delete an organization variable + description: |- + Deletes an organization agent 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. + tags: + - agents + operationId: agents/delete-org-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/variables#delete-an-organization-variable + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/variable-name' + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + /orgs/{org}/agents/variables/{name}/repositories: + get: + summary: List selected repositories for an organization variable + description: |- + Lists all repositories that can access an organization agent 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. + tags: + - agents + operationId: agents/list-selected-repos-for-org-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/variables#list-selected-repositories-for-an-organization-variable + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/variable-name' + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/per-page' + 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/public-repository-paginated' + '409': + description: Response when the visibility of the variable is not set to `selected` + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + put: + summary: Set selected repositories for an organization variable + description: |- + Replaces all repositories for an organization agent 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. + tags: + - agents + operationId: agents/set-selected-repos-for-org-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/variables#set-selected-repositories-for-an-organization-variable + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/variable-name' + 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 + 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: true + category: agents + subcategory: variables + x-stackQL-resource: variables + /orgs/{org}/agents/variables/{name}/repositories/{repository_id}: + put: + summary: Add selected repository to an organization variable + description: |- + Adds a repository to an organization agent 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 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: + - agents + operationId: agents/add-selected-repo-to-org-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/variables#add-selected-repository-to-an-organization-variable + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/variable-name' + - name: repository_id + in: path + required: true + schema: + type: integer + responses: + '204': + description: Response + '409': + description: Response when the visibility of the variable is not set to `selected` + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + delete: + summary: Remove selected repository from an organization variable + description: |- + Removes a repository from an organization agent 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. + tags: + - agents + operationId: agents/remove-selected-repo-from-org-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/variables#remove-selected-repository-from-an-organization-variable + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/variable-name' + - name: repository_id + in: path + required: true + schema: + type: integer + responses: + '204': + description: Response + '409': + description: Response when the visibility of the variable is not set to `selected` + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + /repos/{owner}/{repo}/agents/organization-secrets: + get: + summary: List repository organization secrets + description: |- + 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. + tags: + - agents + operationId: agents/list-repo-organization-secrets + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/secrets#list-repository-organization-secrets + 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 + required: + - total_count + - secrets + properties: + total_count: + type: integer + secrets: + type: array + items: + $ref: '#/components/schemas/actions-secret' + examples: + default: + $ref: '#/components/examples/actions-secret-paginated' + headers: + Link: + $ref: '#/components/headers/link' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + /repos/{owner}/{repo}/agents/organization-variables: + get: + summary: List repository organization variables + description: |- + 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. + tags: + - agents + operationId: agents/list-repo-organization-variables + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/variables#list-repository-organization-variables + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/variables-per-page' + - $ref: '#/components/parameters/page' + responses: + '200': + description: Response + content: + application/json: + schema: + 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/actions-variables-paginated' + headers: + Link: + $ref: '#/components/headers/link' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + /repos/{owner}/{repo}/agents/secrets: + get: + summary: List repository secrets + description: |- + Lists all secrets available in 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. + tags: + - agents + operationId: agents/list-repo-secrets + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/secrets#list-repository-secrets + 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 + required: + - total_count + - secrets + properties: + total_count: + type: integer + secrets: + type: array + items: + $ref: '#/components/schemas/actions-secret' + examples: + default: + $ref: '#/components/examples/actions-secret-paginated' + headers: + Link: + $ref: '#/components/headers/link' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + /repos/{owner}/{repo}/agents/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, OAuth tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - agents + operationId: agents/get-repo-public-key + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/secrets#get-a-repository-public-key + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + responses: + '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 + category: agents + subcategory: secrets + x-stackQL-resource: secrets + /repos/{owner}/{repo}/agents/secrets/{secret_name}: + get: + summary: Get a repository secret + description: |- + Gets a single repository secret without revealing its encrypted value. + + 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. + tags: + - agents + operationId: agents/get-repo-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/secrets#get-a-repository-secret + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/secret-name' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/actions-secret' + examples: + default: + $ref: '#/components/examples/actions-secret' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + put: + summary: Create or update a repository secret + description: |- + 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)." + + 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. + tags: + - agents + operationId: agents/create-or-update-repo-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/secrets#create-or-update-a-repository-secret + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $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 a repository public key](https://docs.github.com/rest/agents/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: + - encrypted_value + - key_id + examples: + default: + value: + encrypted_value: c2VjcmV0 + key_id: '012345678912345678' + responses: + '201': + description: Response when creating a secret + content: + application/json: + schema: + $ref: '#/components/schemas/empty-object' + examples: + default: + value: null + '204': + description: Response when updating a secret + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + delete: + summary: Delete a repository secret + description: |- + Deletes a secret in a repository 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 `repo` scope to use this endpoint. + tags: + - agents + operationId: agents/delete-repo-secret + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/secrets#delete-a-repository-secret + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/secret-name' + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: secrets + x-stackQL-resource: secrets + /repos/{owner}/{repo}/agents/variables: + get: + summary: List repository variables + description: |- + 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. + tags: + - agents + operationId: agents/list-repo-variables + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/variables#list-repository-variables + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/variables-per-page' + - $ref: '#/components/parameters/page' + responses: + '200': + description: Response + content: + application/json: + schema: + 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/actions-variables-paginated' + headers: + Link: + $ref: '#/components/headers/link' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + post: + summary: Create a repository variable + description: |- + 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. + tags: + - agents + operationId: agents/create-repo-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/variables#create-a-repository-variable + 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 variable. + value: + type: string + description: The value of the variable. + required: + - name + - value + examples: + default: + value: + name: USERNAME + value: octocat + responses: + '201': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/empty-object' + examples: + default: + value: null + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + /repos/{owner}/{repo}/agents/variables/{name}: + get: + summary: Get a repository variable + description: |- + Gets a specific variable in a repository. + + 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. + tags: + - agents + operationId: agents/get-repo-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/variables#get-a-repository-variable + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/variable-name' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/actions-variable' + examples: + default: + $ref: '#/components/examples/actions-variable' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + patch: + summary: Update a repository variable + description: |- + Updates 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 app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - agents + operationId: agents/update-repo-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/variables#update-a-repository-variable + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $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. + examples: + default: + value: + name: USERNAME + value: octocat + responses: + '204': + description: Response + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: agents + subcategory: variables + x-stackQL-resource: variables + delete: + summary: Delete a repository variable + description: |- + Deletes a repository 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. + tags: + - agents + operationId: agents/delete-repo-variable + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/agents/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: agents + subcategory: variables + x-stackQL-resource: variables +components: + schemas: + 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 + empty-object: + title: Empty Object + description: An object without any properties. + type: object + properties: {} + additionalProperties: false + 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 + pull_request_creation_policy: + description: 'The policy controlling who can create pull requests: all or collaborators_only.' + type: string + enum: + - all + - collaborators_only + 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 + x-github-breaking-changes: + - changeset: remove_has_downloads + patch: + properties: + has_downloads: null + type: object + version: '2026-03-10' + 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 + 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 + 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 + 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 + + ## Our Pledge + + In 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. + + ## Our Standards + + Examples of behavior that contributes to creating a positive environment include: + + * Using welcoming and inclusive language + * Being respectful of differing viewpoints and experiences + * Gracefully accepting constructive criticism + * Focusing on what is best for the community + * Showing empathy towards other community members + + Examples of unacceptable behavior by participants include: + + * The use of sexualized language or imagery and unwelcome sexual attention or advances + * Trolling, insulting/derogatory comments, and personal or political attacks + * Public or private harassment + * Publishing others' private information, such as a physical or electronic address, without explicit permission + * Other conduct which could reasonably be considered inappropriate in a professional setting + + ## Our Responsibilities + + Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response + to any instances of unacceptable behavior. + + Project 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. + + ## Scope + + This 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, + 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. + + ## Enforcement + + Instances 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. + + Project 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. + + ## Attribution + + This 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/). + html_url: + type: string + format: uri + nullable: true + required: + - url + - html_url + - key + - name + security-and-analysis: + nullable: true + type: object + properties: + advanced_security: + description: | + Enable or disable GitHub Advanced Security for the repository. + + For standalone Code Scanning or Secret Protection products, this parameter cannot be used. + 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 + secret_scanning_delegated_bypass: + type: object + properties: + status: + type: string + enum: + - enabled + - disabled + secret_scanning_delegated_bypass_options: + type: object + 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 + mode: + type: string + description: The bypass mode for the reviewer + enum: + - ALWAYS + - EXEMPT + default: ALWAYS + parameters: + org: + name: org + description: The organization name. The name is not case sensitive. + in: path + required: true + schema: + type: string + 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 + 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 + 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 + 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 + examples: + organization-actions-secret-paginated: + value: + 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 + 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 + 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 + organization-actions-variables-paginated: + value: + total_count: 3 + variables: + - name: USERNAME + value: octocat + created_at: '2019-08-10T14:59:22Z' + updated_at: '2020-01-10T14:59:22Z' + visibility: private + - 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 + organization-actions-variable: + value: + 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 + 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-secret: + value: + name: GH_TOKEN + created_at: '2019-08-10T14:59:22Z' + 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' + headers: + link: + example: ; rel="next", ; rel="last" + schema: + type: string +servers: + - url: https://api.github.com diff --git a/provider-dev/source/apps.yaml b/provider-dev/source/apps.yaml index 75aa7a5..5a8f347 100644 --- a/provider-dev/source/apps.yaml +++ b/provider-dev/source/apps.yaml @@ -624,6 +624,9 @@ paths: 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. + > [!NOTE] + > Starting April 27, 2026, GitHub began a staged rollout of a stateless format (`ghs_APPID_JWT`) to all newly minted GitHub App installation tokens, making them more performant and improving the reliability of our API surface. If your application expects or relies on installation tokens being exactly 40 characters long, it may not handle this new token format correctly. You can now validate your apps and workflows using a temporary request header that lets you enable the token format on demand. For more information about the temporary header, see [the GitHub blog](https://github.blog/changelog/2026-05-15-github-app-installation-tokens-per-request-override-header). + 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. @@ -1473,6 +1476,10 @@ paths: type: boolean lexical_commit_sha: 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. Present for org repos only. + additionalProperties: true required: - archive_url - assignees_url @@ -2508,6 +2515,10 @@ paths: type: boolean lexical_commit_sha: 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. Present for org repos only. + additionalProperties: true required: - archive_url - assignees_url @@ -3667,7 +3678,7 @@ components: app-permissions: title: App Permissions type: object - description: The permissions granted to the user access token. + description: The permissions granted to the fine-grained access token. properties: actions: type: string @@ -3699,6 +3710,12 @@ components: enum: - read - write + code_quality: + type: string + description: The level of permission to grant the access token to view and manage code quality data. + enum: + - read + - write codespaces: type: string description: The level of permission to grant the access token to create, edit, delete, and list Codespaces. @@ -3872,10 +3889,11 @@ components: 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: + - read - write organization_copilot_agent_settings: type: string - description: The level of permission to grant the access token to view and manage Copilot coding agent settings for an organization. + description: The level of permission to grant the access token to view and manage Copilot cloud agent settings for an organization. enum: - read - write @@ -5942,7 +5960,7 @@ components: token_last_eight: Ae178B4a hashed_token: 25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8 app: - url: http://my-github-app.com + url: https://example.com name: my github app client_id: Iv1.8a61f9b3a7aba766 note: optional note @@ -5979,7 +5997,7 @@ components: token_last_eight: Ae178B4a hashed_token: 25f94a2a5c7fbaf499c665bc73d67c1c87e496da8985131633ee0a95819db2e8 app: - url: http://my-github-app.com + url: https://example.com name: my github app client_id: Iv1.8a61f9b3a7aba766 note: optional note @@ -6153,6 +6171,9 @@ components: forks: 1 open_issues: 1 watchers: 1 + custom_properties: + environment: production + service: web marketplace-purchase: value: url: https://api.github.com/orgs/github diff --git a/provider-dev/source/billing.yaml b/provider-dev/source/billing.yaml index 6efc95e..b63a3dc 100644 --- a/provider-dev/source/billing.yaml +++ b/provider-dev/source/billing.yaml @@ -4,15 +4,52 @@ info: description: Monitor charges and usage from Actions and Packages. version: 1.1.4 paths: + /organizations/{org}/settings/billing/ai_credit/usage: + get: + summary: Get billing AI credit usage report for an organization + description: |- + Gets a report of AI credit usage for an organization. To use this endpoint, you must be an administrator of an organization within an enterprise or an organization account. + + **Note:** Only data from the past 24 months is accessible via this endpoint. + tags: + - billing + operationId: billing/get-github-billing-ai-credit-usage-report-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/billing/usage#get-billing-ai-credit-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_ai_credit_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 + x-stackQL-resource: usage /organizations/{org}/settings/billing/budgets: get: summary: Get all budgets for an organization description: |- - > [!NOTE] - > This endpoint is in public preview and is subject to change. - Gets all budgets for an organization. The authenticated user must be an organization admin or billing manager. - Each page returns up to 10 budgets. + Each page returns up to 100 budgets. tags: - billing operationId: billing/get-all-budgets-org @@ -28,13 +65,19 @@ paths: type: integer default: 1 - name: per_page - description: The number of results per page (max 10). + description: The number of results per page (max 100). in: query schema: type: integer default: 10 - name: scope - description: Filter budgets by scope type. + description: |- + Filter budgets by scope type. + + - `organization`: Budgets scoped to the organization. + - `repository`: Budgets scoped to a repository. + - `multi_user_customer`: Universal budgets that apply to all users in the organization. + - `user`: Budgets scoped to an individual user. in: query schema: type: string @@ -43,6 +86,13 @@ paths: - organization - repository - cost_center + - multi_user_customer + - user + - name: user + description: Filter consumed amount details for budgets by the specified user login. + in: query + schema: + type: string responses: '200': $ref: '#/components/responses/get_all_budgets' @@ -58,14 +108,152 @@ paths: category: billing subcategory: budgets x-stackQL-resource: budgets + post: + summary: Create a budget for an organization + description: |- + Creates a new budget for an organization. The authenticated user must be an + organization admin or billing manager. + tags: + - billing + operationId: billing/create-organization-budget + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/billing/budgets#create-a-budget-for-an-organization + parameters: + - $ref: '#/components/parameters/org' + requestBody: + required: false + 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. For `user` and `multi_user_customer` scopes, this must be `true`. + budget_alerting: + type: object + properties: + will_alert: + type: boolean + description: Whether alerts are enabled for this budget. Rejected for user-scope as alerting is always disabled for them. + alert_recipients: + type: array + items: + type: string + description: Array of user login names who will receive alerts. Rejected for user-scope as alerting is always disabled for them. + budget_scope: + type: string + description: |- + The scope of the budget for this organization. + + - `organization`: Apply the budget to the organization. + - `repository`: Apply the budget to a specific repository in the organization. + - `multi_user_customer`: Apply a universal budget to all users in the organization. + - `user`: Apply the budget to a single user in the organization. + + `user` and `multi_user_customer` scopes are only supported when + `budget_product_sku` is `ai_credits` or `premium_requests`. + enum: + - organization + - repository + - multi_user_customer + - user + budget_entity_name: + type: string + description: The name of the entity to apply the budget to + default: '' + budget_type: + description: |- + The type of pricing model used by the budget. Determines how `budget_product_sku` is interpreted. + + - `BundlePricing`: Covers all AI credit SKUs. Set `budget_product_sku` to `ai_credits`. + - `ProductPricing`: Covers all SKUs that belong to a product. Set `budget_product_sku` to a product such as `actions` or `packages`. + - `SkuPricing`: Covers a single, specific SKU. Set `budget_product_sku` to a SKU such as `actions_linux`. + type: string + enum: + - BundlePricing + budget_product_sku: + type: string + description: A single product or SKU that will be covered in the budget + user: + type: string + description: The username of the user for `user` scope budgets. This field is required when `budget_scope` is `user`. + examples: + create-organization-budget: + summary: Create organization budget example + value: + budget_amount: 500 + prevent_further_usage: true + budget_scope: organization + budget_entity_name: '' + budget_type: ProductPricing + budget_product_sku: actions + budget_alerting: + will_alert: false + alert_recipients: [] + responses: + '200': + description: Budget created successfully + content: + application/json: + schema: + $ref: '#/components/schemas/create-budget' + examples: + create-organization-budget: + $ref: '#/components/examples/create-budget' + '400': + $ref: '#/components/responses/bad_request' + '401': + $ref: '#/components/responses/requires_authentication' + '403': + description: Insufficient permissions + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + examples: + insufficient-permissions: + value: + message: Insufficient permissions to create a budget. + documentation_url: https://docs.github.com/rest/billing/budgets#create-a-budget-for-an-organization + '404': + description: Feature not enabled or organization not found + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + examples: + feature-not-enabled: + value: + message: Not Found + documentation_url: https://docs.github.com/rest/billing/budgets#create-a-budget-for-an-organization + '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 create budget. + documentation_url: https://docs.github.com/rest/billing/budgets#create-a-budget-for-an-organization + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: billing + subcategory: budgets + x-stackQL-resource: budgets /organizations/{org}/settings/billing/budgets/{budget_id}: get: summary: Get a budget by ID for an organization - description: |- - > [!NOTE] - > This endpoint is in public preview and is subject to change. - - Gets a budget by ID. The authenticated user must be an organization admin or billing manager. + description: Gets a budget by ID. The authenticated user must be an organization admin or billing manager. tags: - billing operationId: billing/get-budget-org @@ -96,11 +284,7 @@ paths: x-stackQL-resource: budgets patch: summary: Update a budget for an organization - description: |- - > [!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. + description: Updates an existing budget for an organization. The authenticated user must be an organization admin or billing manager. tags: - billing operationId: billing/update-budget-org @@ -122,37 +306,53 @@ paths: 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 + description: Whether to prevent additional spending once the budget is exceeded. For budgets with `user` or `multi_user_customer` scope, this must remain `true`. budget_alerting: type: object properties: will_alert: type: boolean - description: Whether alerts are enabled for this budget + description: Whether alerts are enabled for this budget. Ignored for user-scopes as alerting is always disabled for them. alert_recipients: type: array items: type: string - description: Array of user login names who will receive alerts + description: Array of user login names who will receive alerts. Ignored for user-scopes as alerting is always disabled for them. budget_scope: type: string - description: The scope of the budget + description: |- + The scope of the budget for this organization. + + - `organization`: Apply the budget to the organization. + - `repository`: Apply the budget to a specific repository in the organization. + - `multi_user_customer`: Apply a universal budget to all users in the organization. + - `user`: Apply the budget to a single user in the organization. enum: - enterprise - organization - repository - cost_center + - multi_user_customer + - user budget_entity_name: type: string description: The name of the entity to apply the budget to budget_type: - description: The type of pricing for the budget + description: |- + The type of pricing model used by the budget. Determines how `budget_product_sku` is interpreted. + + - `BundlePricing`: Covers all AI credit SKUs. Set `budget_product_sku` to `ai_credits`. + - `ProductPricing`: Covers all SKUs that belong to a product. Set `budget_product_sku` to a product such as `actions` or `packages`. + - `SkuPricing`: Covers a single, specific SKU. Set `budget_product_sku` to a SKU such as `actions_linux`. type: string enum: - - ProductPricing + - BundlePricing budget_product_sku: type: string description: A single product or SKU that will be covered in the budget + user: + type: string + description: The username of the user for `user` scope budgets. examples: update-budget: summary: Update budget example @@ -168,62 +368,7 @@ paths: 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: - description: The type of pricing for the budget - oneOf: - - type: string - enum: - - ProductPricing - - type: string - enum: - - SkuPricing - budget_product_sku: - type: string - description: A single product or SKU that will be covered in the budget + $ref: '#/components/schemas/update-budget' examples: update-budget: $ref: '#/components/examples/update-budget' @@ -269,11 +414,7 @@ paths: x-stackQL-resource: budgets delete: summary: Delete a budget for an organization - description: |- - > [!NOTE] - > This endpoint is in public preview and is subject to change. - - Deletes a budget by ID for an organization. The authenticated user must be an organization admin or billing manager. + description: Deletes 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 @@ -418,6 +559,45 @@ paths: category: billing subcategory: usage x-stackQL-resource: usage + /users/{username}/settings/billing/ai_credit/usage: + get: + summary: Get billing AI credit usage report for a user + description: |- + Gets a report of AI credit usage for a user. + + **Note:** Only data from the past 24 months is accessible via this endpoint. + tags: + - billing + operationId: billing/get-github-billing-ai-credit-usage-report-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/billing/usage#get-billing-ai-credit-usage-report-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - $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-model' + - $ref: '#/components/parameters/billing-usage-report-product' + responses: + '200': + $ref: '#/components/responses/billing_ai_credit_usage_report_user' + '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 + x-stackQL-resource: usage /users/{username}/settings/billing/premium_request/usage: get: summary: Get billing premium request usage report for a user @@ -537,6 +717,75 @@ paths: x-stackQL-resource: usage components: schemas: + create-budget: + type: object + properties: + message: + type: string + description: A message indicating the result of the create operation + 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 + - multi_user_customer + - multi_user_cost_center + - user + budget_entity_name: + type: string + description: The name of the entity to apply the budget to + example: example-repository-name + budget_amount: + type: integer + description: The budget amount in whole dollars. For license-based products, this represents the number of licenses. + example: 100 + minimum: 0 + 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: + description: The type of pricing for the budget + example: ProductPricing + oneOf: + - type: string + enum: + - ProductPricing + - type: string + enum: + - SkuPricing + budget_alerting: + type: object + properties: + will_alert: + type: boolean + description: Whether alerts are enabled for this budget. Rejected for user-scope as alerting is always disabled for them. + example: true + alert_recipients: + type: array + items: + type: string + description: Array of user login names who will receive alerts. Rejected for user-scope as alerting is always disabled for them. + example: + - mona + - lisa + required: + - message + - budget basic-error: title: Basic Error description: Basic Error @@ -550,82 +799,166 @@ components: type: string status: type: string - get_all_budgets: + update-budget: 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 + message: + type: string + description: A message indicating the result of the update operation + 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 + - multi_user_customer + - multi_user_cost_center + - user + budget_entity_name: + type: string + description: The name of the entity to apply the budget to + example: example-repository-name + user: + type: string + description: The user login when the budget is scoped to a single user (`user` scope). + example: octocat + consumed_amount: + type: number + description: The consumed amount for the specified user within the budget. Only included for `user`-scoped budgets. + example: 42.5 + budget_amount: + type: integer + description: The budget amount in whole dollars. For license-based products, this represents the number of licenses. + example: 100 + minimum: 0 + 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: + description: The type of pricing for the budget + example: ProductPricing + oneOf: + - type: string + enum: + - ProductPricing + - type: string + enum: + - SkuPricing + budget_alerting: + type: object + properties: + will_alert: + type: boolean + description: Whether alerts are enabled for this budget. Ignored for user-scope as alerting is always disabled for them. + example: true + alert_recipients: + type: array + items: + type: string + description: Array of user login names who will receive alerts. Ignored for user-scope as alerting is always disabled for them. + example: + - mona + - lisa required: - - budgets - get-budget: + - budget + - message + billing-ai-credit-usage-report-org: type: object properties: - id: - type: string - description: ID of the budget. - budget_scope: + 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 type of scope for the budget - example: enterprise - enum: - - enterprise - - organization - - repository - - cost_center - budget_entity_name: + description: The unique identifier of the organization. + user: 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: + description: The name of the user for the usage report. + product: type: string - description: A single product or sku to apply the budget to. - example: actions_linux - budget_type: - description: The type of pricing for the budget - example: ProductPricing + description: The product for the usage report. + model: type: string - enum: - - ProductPricing - budget_alerting: - type: object - properties: - will_alert: - type: boolean - description: Whether alerts are enabled for this budget - example: true - alert_recipients: - type: array - items: + description: The model for the usage report. + usageItems: + type: array + items: + type: object + properties: + product: type: string - description: Array of user login names who will receive alerts - example: - - mona - - lisa + 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: - - id - - budget_amount - - prevent_further_usage - - budget_product_sku - - budget_type - - budget_alerting - - budget_scope - - budget_entity_name + - timePeriod + - organization + - usageItems scim-error: title: Scim Error description: Scim Error @@ -649,6 +982,42 @@ components: type: array items: type: string + get_all_budgets: + type: object + properties: + budgets: + type: array + items: + $ref: '#/components/schemas/budget' + description: Array of budget objects for the enterprise + user: + type: string + description: User login included when the response is scoped with the `user` query parameter. + effective_budget: + type: object + description: Effective user-level budget details returned when the response is scoped with the `user` query parameter. + properties: + id: + type: string + description: The unique identifier of the effective budget. + budget_amount: + type: integer + description: The budget amount for the effective budget. + consumed_amount: + type: number + description: The consumed amount for the specified user within the effective budget. + required: + - id + - budget_amount + - consumed_amount + 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 validation-error: title: Validation Error description: Validation Error @@ -661,33 +1030,100 @@ components: 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: + 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 + 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 + - multi_user_customer + - multi_user_cost_center + - user + budget_entity_name: + type: string + description: The name of the entity to apply the budget to + example: octocat/hello-world + user: + type: string + description: The user login when the budget is scoped to a single user (`user` scope). + example: octocat + 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: + description: The type of pricing for the budget + example: ProductPricing + type: string + enum: + - ProductPricing + budget_alerting: + type: object + properties: + will_alert: + type: boolean + description: Whether alerts are enabled for this budget. Present but not applicable for user-scope as alerting is always disabled for them. + example: true + alert_recipients: + type: array + items: type: string - index: - type: integer - value: - oneOf: - - type: string - nullable: true - - type: integer - nullable: true - - type: array - nullable: true - items: - type: string + description: Array of user login names who will receive alerts. Present but not applicable for user-scope as alerting is always disabled for them. + 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: @@ -914,6 +1350,86 @@ components: - timePeriod - organization - usageItems + billing-ai-credit-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-premium-request-usage-report-user: type: object properties: @@ -1143,12 +1659,27 @@ components: example: true budget_scope: type: string - description: The scope of the budget (enterprise, organization, repository, cost center) + description: The scope of the budget example: enterprise + enum: + - enterprise + - organization + - repository + - cost_center + - multi_user_customer + - multi_user_cost_center + - user budget_entity_name: type: string description: The name of the entity for the budget (enterprise does not require a name). example: octocat/hello-world + user: + type: string + description: The user login when the budget is scoped to a single user (`user` scope). + example: octocat + consumed_amount: + type: number + description: The amount consumed for a user-scoped budget, or for a multi-user budget when filtering by user. budget_product_sku: type: string description: A single product or sku to apply the budget to. @@ -1157,13 +1688,13 @@ components: properties: will_alert: type: boolean - description: Whether alerts are enabled for this budget + description: Whether alerts are enabled for this budget. Ignored for user-scope as alerting is disabled for them. example: true alert_recipients: type: array items: type: string - description: Array of user login names who will receive alerts + description: Array of user login names who will receive alerts. Ignored for user-scope as alerting is disabled for them. example: - mona - lisa @@ -1179,15 +1710,24 @@ components: - prevent_further_usage - budget_alerting responses: - get_all_budgets: - description: Response when getting all budgets + billing_ai_credit_usage_report_org: + description: Response when getting a billing AI credit usage report content: application/json: schema: - $ref: '#/components/schemas/get_all_budgets' + $ref: '#/components/schemas/billing-ai-credit-usage-report-org' examples: default: - $ref: '#/components/examples/get_all_budgets' + $ref: '#/components/examples/billing-ai-credit-usage-report-org' + bad_request: + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + application/scim+json: + schema: + $ref: '#/components/schemas/scim-error' forbidden: description: Forbidden content: @@ -1206,24 +1746,6 @@ components: application/json: schema: $ref: '#/components/schemas/basic-error' - budget: - description: Response when updating a budget - content: - application/json: - schema: - $ref: '#/components/schemas/get-budget' - examples: - default: - $ref: '#/components/examples/get-budget' - bad_request: - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/basic-error' - application/scim+json: - schema: - $ref: '#/components/schemas/scim-error' service_unavailable: description: Service unavailable content: @@ -1237,6 +1759,17 @@ components: type: string documentation_url: type: string + 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' + with_user_filter: + $ref: '#/components/examples/get_all_budgets_with_user_filter' requires_authentication: description: Requires authentication content: @@ -1249,6 +1782,15 @@ components: application/json: schema: $ref: '#/components/schemas/validation-error' + 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: @@ -1285,6 +1827,15 @@ components: examples: default: $ref: '#/components/examples/billing-usage-summary-report-org' + billing_ai_credit_usage_report_user: + description: Response when getting a billing AI credit usage report + content: + application/json: + schema: + $ref: '#/components/schemas/billing-ai-credit-usage-report-user' + examples: + default: + $ref: '#/components/examples/billing-ai-credit-usage-report-user' billing_premium_request_usage_report_user: description: Response when getting a billing premium request usage report content: @@ -1320,13 +1871,6 @@ components: required: true schema: type: string - 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. @@ -1369,6 +1913,13 @@ components: required: false schema: type: string + budget: + name: budget_id + description: The ID corresponding to the budget. + in: path + required: true + 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. @@ -1398,6 +1949,20 @@ components: schema: type: string examples: + create-budget: + value: + message: Budget successfully created. + budget: + id: f5236c62-157f-4d8f-a79e-ffb91058ee97 + budget_type: ProductPricing + budget_product_sku: actions + budget_scope: organization + budget_entity_name: example-organization + budget_amount: 100 + prevent_further_usage: true + budget_alerting: + will_alert: false + alert_recipients: [] update-budget: value: message: Budget successfully updated. @@ -1407,13 +1972,30 @@ components: budget_product_sku: actions_linux budget_scope: repository budget_entity_name: org-name/example-repo-name - budget_amount: 0 + budget_amount: 10 prevent_further_usage: true budget_alerting: will_alert: true alert_recipients: - mona - lisa + billing-ai-credit-usage-report-org: + value: + timePeriod: + year: 2025 + organization: GitHub + usageItems: + - product: Copilot + sku: Copilot AI Credits + model: GPT-5 + unitType: credits + pricePerUnit: 0.01 + grossQuantity: 100 + grossAmount: 1 + discountQuantity: 0 + discountAmount: 0 + netQuantity: 100 + netAmount: 1 get_all_budgets: value: budgets: @@ -1452,6 +2034,39 @@ components: alert_recipients: [] has_next_page: false total_count: 3 + get_all_budgets_with_user_filter: + value: + budgets: + - id: 2066deda-923f-43f9-88d2-62395a28c0cdd + budget_type: ProductPricing + budget_product_skus: + - actions + budget_scope: multi_user_customer + budget_amount: 1000 + prevent_further_usage: true + budget_alerting: + will_alert: true + alert_recipients: + - enterprise-admin + - billing-manager + - id: f47ac10b-58cc-4372-a567-0e02b2c3d479 + budget_type: BundlePricing + budget_product_skus: + - ai_credits + budget_scope: user + budget_amount: 500 + prevent_further_usage: true + budget_alerting: + will_alert: true + alert_recipients: + - org-owner + user: octocat + effective_budget: + id: 9a7d04e8-6600-44f5-94ef-65ca92b95f0b + budget_amount: 1000 + consumed_amount: 42 + has_next_page: false + total_count: 2 get-budget: value: id: 2066deda-923f-43f9-88d2-62395a28c0cdd @@ -1517,6 +2132,23 @@ components: discountAmount: 0 netQuantity: 1000 netAmount: 8 + billing-ai-credit-usage-report-user: + value: + timePeriod: + year: 2025 + user: monalisa + usageItems: + - product: Copilot AI Credits + sku: AI Credit + model: GPT-5 + unitType: ai-credits + pricePerUnit: 0.01 + grossQuantity: 100 + grossAmount: 1 + discountQuantity: 0 + discountAmount: 0 + netQuantity: 100 + netAmount: 1 billing-premium-request-usage-report-user: value: timePeriod: diff --git a/provider-dev/source/campaigns.yaml b/provider-dev/source/campaigns.yaml index 4749fc5..ad89129 100644 --- a/provider-dev/source/campaigns.yaml +++ b/provider-dev/source/campaigns.yaml @@ -647,6 +647,17 @@ components: enum: - enterprise - organization + access_source: + description: |- + How the team's access to the repository was granted. This property is only + present when the team is returned in a repository context, such as + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs diff --git a/provider-dev/source/checks.yaml b/provider-dev/source/checks.yaml index d46a4ef..9bd1a31 100644 --- a/provider-dev/source/checks.yaml +++ b/provider-dev/source/checks.yaml @@ -2424,6 +2424,7 @@ components: required: true schema: type: integer + format: int64 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)." diff --git a/provider-dev/source/classroom.yaml b/provider-dev/source/classroom.yaml index f26d82b..5eb3111 100644 --- a/provider-dev/source/classroom.yaml +++ b/provider-dev/source/classroom.yaml @@ -6,14 +6,19 @@ info: paths: /assignments/{assignment_id}: get: - 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. + summary: Closing down - Get an assignment + description: |- + > [!WARNING] + > **Closing down notice:** This operation is closing down and will be removed on August 28, 2026. + > For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset). + + 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: - classroom operationId: classroom/get-an-assignment externalDocs: description: API method documentation - url: https://docs.github.com/rest/classroom/classroom#get-an-assignment + url: https://docs.github.com/rest/classroom/classroom#closing-down---get-an-assignment parameters: - $ref: '#/components/parameters/assignment-id' responses: @@ -28,21 +33,31 @@ paths: $ref: '#/components/examples/classroom-assignment' '404': $ref: '#/components/responses/not_found' + '410': + $ref: '#/components/responses/gone' x-github: enabledForGitHubApps: true category: classroom subcategory: classroom + deprecationDate: '2026-05-22' + removalDate: '2026-08-28' + deprecated: true x-stackQL-resource: classroom /assignments/{assignment_id}/accepted_assignments: get: - 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. + summary: Closing down - List accepted assignments for an assignment + description: |- + > [!WARNING] + > **Closing down notice:** This operation is closing down and will be removed on August 28, 2026. + > For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset). + + 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: - classroom operationId: classroom/list-accepted-assignments-for-an-assignment externalDocs: description: API method documentation - url: https://docs.github.com/rest/classroom/classroom#list-accepted-assignments-for-an-assignment + url: https://docs.github.com/rest/classroom/classroom#closing-down---list-accepted-assignments-for-an-assignment parameters: - $ref: '#/components/parameters/assignment-id' - $ref: '#/components/parameters/page' @@ -59,21 +74,31 @@ paths: examples: default: $ref: '#/components/examples/classroom-accepted-assignment' + '410': + $ref: '#/components/responses/gone' x-github: enabledForGitHubApps: true category: classroom subcategory: classroom + deprecationDate: '2026-05-22' + removalDate: '2026-08-28' + deprecated: true x-stackQL-resource: classroom /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. + summary: Closing down - Get assignment grades + description: |- + > [!WARNING] + > **Closing down notice:** This operation is closing down and will be removed on August 28, 2026. + > For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset). + + 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: - classroom operationId: classroom/get-assignment-grades externalDocs: description: API method documentation - url: https://docs.github.com/rest/classroom/classroom#get-assignment-grades + url: https://docs.github.com/rest/classroom/classroom#closing-down---get-assignment-grades parameters: - $ref: '#/components/parameters/assignment-id' responses: @@ -90,21 +115,31 @@ paths: $ref: '#/components/examples/classroom-assignment-grades' '404': $ref: '#/components/responses/not_found' + '410': + $ref: '#/components/responses/gone' x-github: enabledForGitHubApps: true category: classroom subcategory: classroom + deprecationDate: '2026-05-22' + removalDate: '2026-08-28' + deprecated: true x-stackQL-resource: classroom /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. + summary: Closing down - List classrooms + description: |- + > [!WARNING] + > **Closing down notice:** This operation is closing down and will be removed on August 28, 2026. + > For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset). + + 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: - classroom operationId: classroom/list-classrooms externalDocs: description: API method documentation - url: https://docs.github.com/rest/classroom/classroom#list-classrooms + url: https://docs.github.com/rest/classroom/classroom#closing-down---list-classrooms parameters: - $ref: '#/components/parameters/page' - $ref: '#/components/parameters/per-page' @@ -120,21 +155,31 @@ paths: examples: default: $ref: '#/components/examples/simple-classroom' + '410': + $ref: '#/components/responses/gone' x-github: enabledForGitHubApps: true category: classroom subcategory: classroom + deprecationDate: '2026-05-22' + removalDate: '2026-08-28' + deprecated: true x-stackQL-resource: classroom /classrooms/{classroom_id}: get: - 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. + summary: Closing down - Get a classroom + description: |- + > [!WARNING] + > **Closing down notice:** This operation is closing down and will be removed on August 28, 2026. + > For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset). + + 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: - classroom operationId: classroom/get-a-classroom externalDocs: description: API method documentation - url: https://docs.github.com/rest/classroom/classroom#get-a-classroom + url: https://docs.github.com/rest/classroom/classroom#closing-down---get-a-classroom parameters: - $ref: '#/components/parameters/classroom-id' responses: @@ -149,21 +194,31 @@ paths: $ref: '#/components/examples/classroom' '404': $ref: '#/components/responses/not_found' + '410': + $ref: '#/components/responses/gone' x-github: enabledForGitHubApps: true category: classroom subcategory: classroom + deprecationDate: '2026-05-22' + removalDate: '2026-08-28' + deprecated: true x-stackQL-resource: 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. + summary: Closing down - List assignments for a classroom + description: |- + > [!WARNING] + > **Closing down notice:** This operation is closing down and will be removed on August 28, 2026. + > For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset). + + Lists GitHub Classroom assignments for a classroom. Assignments will only be returned if the current user is an administrator of the GitHub Classroom. tags: - classroom operationId: classroom/list-assignments-for-a-classroom externalDocs: description: API method documentation - url: https://docs.github.com/rest/classroom/classroom#list-assignments-for-a-classroom + url: https://docs.github.com/rest/classroom/classroom#closing-down---list-assignments-for-a-classroom parameters: - $ref: '#/components/parameters/classroom-id' - $ref: '#/components/parameters/page' @@ -180,10 +235,15 @@ paths: examples: default: $ref: '#/components/examples/simple-classroom-assignment' + '410': + $ref: '#/components/responses/gone' x-github: enabledForGitHubApps: true category: classroom subcategory: classroom + deprecationDate: '2026-05-22' + removalDate: '2026-08-28' + deprecated: true x-stackQL-resource: classroom components: schemas: @@ -648,6 +708,12 @@ components: application/json: schema: $ref: '#/components/schemas/basic-error' + gone: + description: Gone + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' parameters: assignment-id: name: assignment_id diff --git a/provider-dev/source/code_quality.yaml b/provider-dev/source/code_quality.yaml new file mode 100644 index 0000000..230994e --- /dev/null +++ b/provider-dev/source/code_quality.yaml @@ -0,0 +1,601 @@ +openapi: 3.0.3 +info: + title: code_quality API + description: github API + version: 1.1.4 +paths: + /repos/{owner}/{repo}/code-quality/findings: + get: + summary: List code quality findings for a repository + description: |- + Lists code quality findings for 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. + tags: + - code-quality + operationId: code-quality/list-findings-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-quality/code-quality#list-code-quality-findings-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/per-page' + - $ref: '#/components/parameters/direction' + - $ref: '#/components/parameters/pagination-before' + - $ref: '#/components/parameters/pagination-after' + - name: state + description: If specified, only code quality findings with this state will be returned. + in: query + required: false + schema: + type: string + enum: + - open + - dismissed + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/code-quality-finding' + examples: + default: + $ref: '#/components/examples/code-quality-finding-items' + '403': + $ref: '#/components/responses/code_quality_forbidden_read' + '404': + $ref: '#/components/responses/not_found' + '503': + $ref: '#/components/responses/service_unavailable' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-quality + subcategory: code-quality + x-stackQL-resource: code_quality + /repos/{owner}/{repo}/code-quality/findings/{finding_number}: + get: + summary: Get a code quality finding + description: |- + Gets a single code quality finding. + + 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. + tags: + - code-quality + operationId: code-quality/get-finding + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-quality/code-quality#get-a-code-quality-finding + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/code-quality-finding-number' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/code-quality-finding' + examples: + default: + $ref: '#/components/examples/code-quality-finding' + '403': + $ref: '#/components/responses/code_quality_forbidden_read' + '404': + $ref: '#/components/responses/not_found' + '503': + $ref: '#/components/responses/service_unavailable' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-quality + subcategory: code-quality + x-stackQL-resource: code_quality + /repos/{owner}/{repo}/code-quality/setup: + get: + summary: Get a code quality setup configuration + description: |- + Gets a code quality 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. + tags: + - code-quality + operationId: code-quality/get-setup + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-quality/code-quality#get-a-code-quality-setup-configuration + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/code-quality-setup' + examples: + default: + $ref: '#/components/examples/code-quality-setup' + '403': + $ref: '#/components/responses/code_quality_forbidden_read' + '404': + $ref: '#/components/responses/not_found' + '503': + $ref: '#/components/responses/service_unavailable' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-quality + subcategory: code-quality + x-stackQL-resource: code_quality + patch: + summary: Update a code quality setup configuration + description: |- + Updates a code quality 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. + tags: + - code-quality + operationId: code-quality/update-setup + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/code-quality/code-quality#update-a-code-quality-setup-configuration + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/code-quality-setup-update' + examples: + default: + $ref: '#/components/examples/code-quality-setup-update' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/empty-object' + examples: + default: + value: null + '202': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/code-quality-setup-update-response' + examples: + default: + $ref: '#/components/examples/code-quality-setup-update-response' + '403': + $ref: '#/components/responses/code_quality_forbidden_write' + '404': + $ref: '#/components/responses/not_found' + '409': + $ref: '#/components/responses/code_quality_conflict' + '422': + $ref: '#/components/responses/code_quality_invalid_state' + '503': + $ref: '#/components/responses/service_unavailable' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: code-quality + subcategory: code-quality + x-stackQL-resource: code_quality +components: + schemas: + code-quality-finding: + description: Code quality finding + type: object + properties: + number: + description: The finding number. + type: integer + state: + description: State of the code quality finding. + type: string + enum: + - open + - dismissed + url: + description: The REST API URL of the code quality finding resource. + type: string + format: uri + rule: + $ref: '#/components/schemas/code-quality-finding-rule' + location: + $ref: '#/components/schemas/code-quality-finding-location' + message: + $ref: '#/components/schemas/code-quality-finding-message' + created_at: + description: The time the code quality finding was created. + type: string + format: date-time + required: + - number + - state + - url + - rule + - location + - message + code-quality-setup: + description: Configuration for code quality setup. + type: object + properties: + state: + description: Code quality setup has been configured or not. + type: string + enum: + - configured + - not-configured + languages: + description: Languages to be analyzed. + type: array + items: + type: string + enum: + - csharp + - go + - java-kotlin + - javascript-typescript + - python + - ruby + - rust + 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 + 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 + ai_findings_option: + description: The AI findings configuration for the repository. + nullable: true + type: string + enum: + - disabled + - on_push + code-quality-setup-update: + description: Configuration for code quality setup. + type: object + properties: + state: + description: The desired state of code quality 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 + languages: + description: Languages to be analyzed. + type: array + items: + type: string + enum: + - csharp + - go + - java-kotlin + - javascript-typescript + - python + - ruby + ai_findings_option: + description: Whether AI findings run for Code Quality on this repository. + type: string + enum: + - disabled + - on_push + additionalProperties: false + required: + - state + - runner_type + - runner_label + - languages + - ai_findings_option + empty-object: + title: Empty Object + description: An object without any properties. + type: object + properties: {} + additionalProperties: false + code-quality-setup-update-response: + description: |- + You can use `run_url` to track the status of the run. This includes a property status and conclusion. + You 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-quality-finding-rule: + description: Code quality rule + type: object + properties: + id: + description: A unique identifier for the rule used to detect the finding. + type: string + title: + description: The name of the rule used to detect the finding. + type: string + description: + description: A short description of the rule used to detect the finding. + type: string + help: + description: A detailed description of the rule used to detect the finding. + type: string + severity: + description: The severity of the rule used to detect the finding. + type: string + enum: + - error + - warning + - note + - none + category: + description: The category of the rule used to detect the finding. + type: string + enum: + - none + - maintainability + - reliability + required: + - id + - title + - description + - severity + - category + code-quality-finding-location: + description: Code quality file location + type: object + properties: + path: + description: The file path where the finding was detected. + type: string + start_line: + description: The line number where the finding starts. + type: integer + start_column: + description: The column number where the finding starts. + type: integer + end_line: + description: The line number where the finding ends. + type: integer + end_column: + description: The column number where the finding ends. + type: integer + required: + - path + code-quality-finding-message: + description: Code quality finding message + type: object + properties: + text: + description: The message text of the code quality finding. + type: string + markdown: + description: The message text of the code quality finding in markdown format. + type: string + required: + - text + - markdown + basic-error: + title: Basic Error + description: Basic Error + type: object + properties: + message: + type: string + documentation_url: + type: string + url: + type: string + status: + type: string + responses: + code_quality_forbidden_read: + description: Response if the user is not authorized to access Code quality for this repository. + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + not_found: + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + service_unavailable: + description: Service unavailable + content: + application/json: + schema: + type: object + properties: + code: + type: string + message: + type: string + documentation_url: + type: string + code_quality_forbidden_write: + description: Response if the repository is archived or if Code quality is not enabled for this repository + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + code_quality_conflict: + description: Response if there is already a code quality setup configuration update in progress + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + code_quality_invalid_state: + description: Response if the configuration change cannot be made + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + parameters: + 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 + 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 + direction: + name: direction + description: The direction to sort the results by. + in: query + required: false + schema: + type: string + enum: + - asc + - desc + default: desc + 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 + 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 + code-quality-finding-number: + name: finding_number + in: path + description: The number that identifies a finding. + required: true + schema: + type: integer + examples: + code-quality-finding-items: + value: + - number: 42 + state: open + url: https://api.github.com/repos/octocat/hello-world/code-quality/findings/42 + rule: + id: java/useless-null-check + title: Useless null check + description: Checking whether an expression is null when that expression cannot possibly be null is useless. + severity: warning + category: maintainability + location: + path: java/UselessNullCheck.java + start_line: 9 + start_column: 4 + end_line: 9 + end_column: 18 + message: + text: This check is useless. o cannot be null at this check, since it is guarded by instanceof. + markdown: This check is useless. [o](java/UselessNullCheck.java#L9C4-L9C18) cannot be null at this check, since it is guarded by [...instanceof...](java/UselessNullCheck.java#L7C13-L7C25). + created_at: '2026-01-23T12:34:56Z' + code-quality-finding: + value: + number: 42 + state: open + url: https://api.github.com/repos/octocat/hello-world/code-quality/findings/42 + rule: + id: java/useless-null-check + title: Useless null check + description: Checking whether an expression is null when that expression cannot possibly be null is useless. + help: |- + # Useless null check + Sometimes you can guarantee that a particular variable will never be null. For example when that variable has just been assigned a newly created object or is the exception caught by a `catch` clause. A null check on such a variable is ... + severity: warning + category: maintainability + location: + path: java/UselessNullCheck.java + start_line: 9 + start_column: 4 + end_line: 9 + end_column: 18 + message: + text: This check is useless. o cannot be null at this check, since it is guarded by instanceof. + markdown: This check is useless. [o](java/UselessNullCheck.java#L9C4-L9C18) cannot be null at this check, since it is guarded by [...instanceof...](java/UselessNullCheck.java#L7C13-L7C25). + created_at: '2026-01-23T12:34:56Z' + code-quality-setup: + value: + state: configured + languages: + - javascript-typescript + - python + runner_type: standard + runner_label: null + updated_at: '2023-01-01T00:00:00Z' + schedule: weekly + ai_findings_option: on_push + code-quality-setup-update: + value: + state: configured + languages: + - javascript-typescript + - python + - ruby + code-quality-setup-update-response: + value: + run_id: 42 + run_url: https://api.github.com/repos/octocat/hello-world/actions/runs/42 +servers: + - url: https://api.github.com diff --git a/provider-dev/source/code_scanning.yaml b/provider-dev/source/code_scanning.yaml index 81eb7d7..f472dbe 100644 --- a/provider-dev/source/code_scanning.yaml +++ b/provider-dev/source/code_scanning.yaml @@ -279,7 +279,7 @@ paths: 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. + Gets the status and description of an autofix for a code scanning alert on the repository's default branch. 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. tags: @@ -308,8 +308,8 @@ paths: $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 @@ -319,7 +319,7 @@ paths: post: summary: Create an autofix for a code scanning alert description: |- - Creates an autofix for a code scanning alert. + Creates an autofix for a code scanning alert from the repository's default branch. 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. @@ -363,8 +363,8 @@ paths: $ref: '#/components/responses/not_found' '422': description: Unprocessable Entity - '503': - $ref: '#/components/responses/service_unavailable' + '500': + $ref: '#/components/responses/internal_error' x-github: githubCloudOnly: false enabledForGitHubApps: true @@ -375,7 +375,7 @@ paths: post: summary: Commit an autofix for a code scanning alert description: |- - Commits an autofix for a code scanning alert. + Commits an autofix for a code scanning alert from the repository's default branch. If an autofix is committed as a result of this request, then this endpoint will return a 201 Created response. @@ -1469,6 +1469,11 @@ components: type: array items: $ref: '#/components/schemas/simple-user' + linked_pull_requests: + description: Pull requests linked to this alert. + type: array + items: + $ref: '#/components/schemas/pull-request-simple' required: - number - created_at @@ -1496,6 +1501,7 @@ components: - false positive - won't fix - used in tests + - mitigated code-scanning-alert-dismissed-comment: type: string description: The dismissal comment associated with the dismissal of the alert. @@ -2016,8 +2022,8 @@ components: 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]+$ + maxLength: 64 + pattern: ^([0-9a-fA-F]{40}(?:[0-9a-fA-F]{24})?)$ code-scanning-ref-full: type: string description: |- @@ -2704,6 +2710,327 @@ components: nullable: true type: string description: A link to the documentation for the rule used to detect the alert. + 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' + requested_reviewers: + type: array + items: + $ref: '#/components/schemas/simple-user' + requested_teams: + type: array + items: + $ref: '#/components/schemas/team' + 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' + stack: + $ref: '#/components/schemas/pull-request-stack' + 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 + x-github-breaking-changes: + - changeset: remove_pull_request_merge_commit_sha + patch: + properties: + merge_commit_sha: null + required: + - _links + - assignee + - labels + - base + - body + - closed_at + - comments_url + - commits_url + - created_at + - diff_url + - head + - html_url + - id + - node_id + - issue_url + - 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 + type: object + version: '2026-03-10' + - changeset: remove_singular_assignee_from_issues_and_pull_requests + patch: + properties: + assignee: null + required: + - _links + - labels + - base + - body + - closed_at + - comments_url + - commits_url + - created_at + - diff_url + - head + - html_url + - id + - node_id + - issue_url + - 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 + type: object + version: '2026-03-10' scim-error: title: Scim Error description: Scim Error @@ -2860,58 +3187,1018 @@ components: nullable: true type: string description: The version of the tool used to generate the code scanning analysis. - responses: - not_found: - description: Resource not found - content: - application/json: - schema: - $ref: '#/components/schemas/basic-error' - service_unavailable: - description: Service unavailable - content: - application/json: - schema: - type: object - properties: - code: - type: string - message: - type: string - documentation_url: - type: string - not_modified: - description: Not modified - 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' - bad_request: - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/basic-error' - application/scim+json: - schema: - $ref: '#/components/schemas/scim-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' + 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 + 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 + access_source: + description: |- + How the team's access to the repository was granted. This property is only + present when the team is returned in a repository context, such as + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct + 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 + 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 + pull_request_creation_policy: + description: 'The policy controlling who can create pull requests: all or collaborators_only.' + type: string + enum: + - all + - collaborators_only + example: all + 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: + + - `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). + squash_merge_commit_message: + type: string + enum: + - PR_BODY + - COMMIT_MESSAGES + - BLANK + description: |- + 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. + merge_commit_title: + type: string + enum: + - PR_TITLE + - MERGE_MESSAGE + description: |- + 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). + merge_commit_message: + type: string + enum: + - PR_BODY + - PR_TITLE + - BLANK + description: |- + 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. + 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 + x-github-breaking-changes: + - changeset: remove_use_squash_pr_title_as_default + patch: + properties: + use_squash_pr_title_as_default: null + type: object + version: '2026-03-10' + - changeset: deprecate_beta_media_type + patch: + properties: + master_branch: null + type: object + version: '2026-03-10' + - changeset: remove_has_downloads + patch: + properties: + has_downloads: null + 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 + - 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 + type: object + version: '2026-03-10' + link: + title: Link + description: Hypermedia Link + type: object + properties: + href: + type: string + required: + - href + 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 + 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-stack: + title: Pull Request Stack + description: The stack information associated with a pull request. + type: object + properties: + base: + type: object + properties: + ref: + type: string + description: The base ref of the stack this pull request belongs to. + sha: + type: string + description: The base SHA of the stack this pull request belongs to. + required: + - ref + - sha + size: + type: integer + description: The total number of pull requests in the stack. + position: + type: integer + description: The one-based position of this pull request within the stack, where 1 is the bottom of the stack. + id: + type: integer + description: The ID of the stack that this pull request belongs to. + number: + type: integer + description: The number of the stack that this pull request belongs to. + required: + - base + nullable: true + 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 + 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 + responses: + not_found: + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + service_unavailable: + description: Service unavailable + content: + application/json: + schema: + type: object + properties: + code: + type: string + message: + type: string + documentation_url: + type: string + not_modified: + description: Not modified + 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' + bad_request: + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + application/scim+json: + schema: + $ref: '#/components/schemas/scim-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' + internal_error: + description: Internal Error + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' 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: diff --git a/provider-dev/source/code_security.yaml b/provider-dev/source/code_security.yaml index 765033a..94675df 100644 --- a/provider-dev/source/code_security.yaml +++ b/provider-dev/source/code_security.yaml @@ -243,7 +243,6 @@ paths: default: enforced required: - name - - description examples: default: summary: Example for a code security configuration @@ -299,7 +298,18 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/code-security-default-configurations' + type: array + 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' examples: default: $ref: '#/components/examples/code-security-default-configurations' @@ -1078,7 +1088,6 @@ paths: default: enforced required: - name - - description examples: default: summary: Example for a code security configuration @@ -1128,7 +1137,18 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/code-security-default-configurations' + type: array + 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' examples: default: $ref: '#/components/examples/code-security-default-configurations' @@ -1169,6 +1189,8 @@ paths: schema: type: object additionalProperties: false + required: + - selected_repository_ids properties: selected_repository_ids: type: array @@ -1782,6 +1804,7 @@ components: - enterprise description: type: string + nullable: true description: A description of the code security configuration advanced_security: type: string diff --git a/provider-dev/source/copilot.yaml b/provider-dev/source/copilot.yaml index 8c05930..694a26e 100644 --- a/provider-dev/source/copilot.yaml +++ b/provider-dev/source/copilot.yaml @@ -87,6 +87,92 @@ paths: category: copilot subcategory: copilot-usage-metrics x-stackQL-resource: copilot_usage_metrics + /enterprises/{enterprise}/copilot/metrics/reports/repos-1-day: + get: + summary: Get Copilot enterprise repository report for a specific day + description: |- + Use this endpoint to retrieve download links for the Copilot enterprise repository report for a specific day. The report provides per-repository pull request metrics for Copilot across the enterprise, with one entry per repository. + + The report contains repository-level pull request activity for the specified day, including the Copilot Coding Agent (CCA) and Copilot Code Review (CCR) breakdowns. Only repositories that had activity on the specified day are included. Reports are generated daily and made available for download through signed URLs with a limited expiration time. + + The response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed. + + Enterprise owners, billing managers, and authorized users with fine-grained "View Enterprise Copilot Metrics" permission can retrieve Copilot metrics reports for the enterprise. OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `read:enterprise` scopes to use this endpoint. + tags: + - copilot + operationId: copilot/copilot-enterprise-repos-one-day-report + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-enterprise-repository-report-for-a-specific-day + parameters: + - $ref: '#/components/parameters/enterprise' + - $ref: '#/components/parameters/day' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-usage-metrics-1-day-report' + examples: + default: + $ref: '#/components/examples/copilot-usage-metrics-1-day-report' + '204': + $ref: '#/components/responses/no_content' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '500': + $ref: '#/components/responses/internal_error' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: copilot + subcategory: copilot-usage-metrics + x-stackQL-resource: copilot_usage_metrics + /enterprises/{enterprise}/copilot/metrics/reports/user-teams-1-day: + get: + summary: Get Copilot enterprise user-teams report for a specific day + description: |- + Use this endpoint to retrieve download links for the Copilot enterprise user-teams report for a specific day. The report provides user-team join data for Copilot across the enterprise, with one entry per user-team pair. + + The report contains user-team membership data for the specified day, enabling consumers to join with the existing enterprise user reports to compute team-level usage metrics. Reports are generated daily and made available for download through signed URLs with a limited expiration time. + + The response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed. + + Enterprise owners, billing managers, and authorized users with fine-grained "View Enterprise Copilot Metrics" permission can retrieve Copilot metrics reports for the enterprise. OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `read:enterprise` scopes to use this endpoint. + tags: + - copilot + operationId: copilot/copilot-enterprise-user-teams-one-day-report + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-enterprise-user-teams-report-for-a-specific-day + parameters: + - $ref: '#/components/parameters/enterprise' + - $ref: '#/components/parameters/day' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-usage-metrics-1-day-report' + examples: + default: + $ref: '#/components/examples/copilot-usage-metrics-1-day-report' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '500': + $ref: '#/components/responses/internal_error' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: copilot + subcategory: copilot-usage-metrics + x-stackQL-resource: copilot_usage_metrics /enterprises/{enterprise}/copilot/metrics/reports/users-1-day: get: summary: Get Copilot users usage metrics for a specific day @@ -170,6 +256,207 @@ paths: category: copilot subcategory: copilot-usage-metrics x-stackQL-resource: copilot_usage_metrics + /enterprises/{enterprise}/copilot/policies/coding_agent: + put: + summary: Set the coding agent policy for an enterprise + description: |- + Sets the policy for Copilot cloud agent usage across an enterprise. + + Enterprise owners can configure whether Copilot cloud agent is enabled for all + organizations, disabled for all organizations, configured by individual organization + admins, or enabled for selected organizations only. + + Only enterprise owners can set the coding agent policy for their enterprise. + + OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:enterprise` scopes to use this endpoint. + tags: + - copilot + operationId: copilot/set-enterprise-coding-agent-policy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot/copilot-coding-agent-management#set-the-coding-agent-policy-for-an-enterprise + parameters: + - $ref: '#/components/parameters/enterprise' + requestBody: + description: The coding agent policy configuration + required: true + content: + application/json: + schema: + type: object + properties: + policy_state: + type: string + description: The policy state for Copilot cloud agent in the enterprise. Can be one of `enabled_for_all_orgs`, `disabled_for_all_orgs`, `enabled_for_selected_orgs`, or `configured_by_org_admins`. + enum: + - enabled_for_all_orgs + - disabled_for_all_orgs + - enabled_for_selected_orgs + - configured_by_org_admins + required: + - policy_state + examples: + default: + summary: Enable coding agent for all organizations + value: + policy_state: enabled_for_all_orgs + responses: + '204': + $ref: '#/components/responses/no_content' + '400': + $ref: '#/components/responses/bad_request' + x-github: + enabledForGitHubApps: false + category: copilot + subcategory: copilot-coding-agent-management + x-stackQL-resource: copilot_coding_agent_management + /enterprises/{enterprise}/copilot/policies/coding_agent/organizations: + post: + summary: Add organizations to the enterprise coding agent policy + description: |- + Enables Copilot cloud agent for the specified organizations within the enterprise. + + The enterprise's coding agent policy must be set to `enabled_for_selected_orgs` before + using this endpoint. Organizations can be specified by login or matched via custom properties. + + Only organizations that have Copilot enabled and belong to the enterprise will be affected. + + Only enterprise owners can add organizations to the coding agent policy. + + OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:enterprise` scopes to use this endpoint. + tags: + - copilot + operationId: copilot/add-organizations-to-enterprise-coding-agent-policy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot/copilot-coding-agent-management#add-organizations-to-the-enterprise-coding-agent-policy + parameters: + - $ref: '#/components/parameters/enterprise' + requestBody: + description: The organizations to enable Copilot cloud agent for + required: true + content: + application/json: + schema: + type: object + properties: + organizations: + type: array + description: List of organization logins within the enterprise to enable Copilot cloud agent for. + items: + type: string + custom_properties: + type: array + description: List of custom property filters to match organizations. Organizations matching any of the specified property name/value pairs will be included. This is a one-time operation, setting the property on an organization in the future will not automatically update its coding agent policy. + items: + type: object + properties: + property_name: + type: string + description: The name of the custom property to filter by. + values: + type: array + description: The values of the custom property to match. + items: + type: string + required: + - property_name + - values + examples: + default: + summary: Add organizations that match a login or have a custom property + value: + organizations: + - my-org-1 + - my-org-2 + custom_properties: + - property_name: department + values: + - engineering + - security + responses: + '204': + $ref: '#/components/responses/no_content' + '400': + $ref: '#/components/responses/bad_request' + x-github: + enabledForGitHubApps: false + category: copilot + subcategory: copilot-coding-agent-management + x-stackQL-resource: copilot_coding_agent_management + delete: + summary: Remove organizations from the enterprise coding agent policy + description: |- + Disables Copilot cloud agent for the specified organizations within the enterprise. + + The enterprise's coding agent policy must be set to `enabled_for_selected_orgs` before + using this endpoint. Organizations can be specified by login or matched via custom properties. + + Only organizations that have Copilot enabled and belong to the enterprise will be affected. + + Only enterprise owners can remove organizations from the coding agent policy. + + OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:enterprise` scopes to use this endpoint. + tags: + - copilot + operationId: copilot/remove-organizations-from-enterprise-coding-agent-policy + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot/copilot-coding-agent-management#remove-organizations-from-the-enterprise-coding-agent-policy + parameters: + - $ref: '#/components/parameters/enterprise' + requestBody: + description: The organizations to disable Copilot cloud agent for + required: true + content: + application/json: + schema: + type: object + properties: + organizations: + type: array + description: List of organization logins within the enterprise to disable Copilot cloud agent for. + items: + type: string + custom_properties: + type: array + description: List of custom property filters to match organizations. Organizations matching any of the specified property name/value pairs will be included. This is a one-time operation, setting the property on an organization in the future will not automatically update its coding agent policy. + items: + type: object + properties: + property_name: + type: string + description: The name of the custom property to filter by. + values: + type: array + description: The values of the custom property to match. + items: + type: string + required: + - property_name + - values + examples: + default: + summary: Remove organizations that match a login or have a custom property + value: + organizations: + - my-org-1 + - my-org-2 + custom_properties: + - property_name: department + values: + - engineering + - security + responses: + '204': + $ref: '#/components/responses/no_content' + '400': + $ref: '#/components/responses/bad_request' + x-github: + enabledForGitHubApps: false + category: copilot + subcategory: copilot-coding-agent-management + x-stackQL-resource: copilot_coding_agent_management /orgs/{org}/copilot/billing: get: summary: Get Copilot seat information and settings for an organization @@ -600,15 +887,15 @@ paths: x-stackQL-resource: copilot_user_management /orgs/{org}/copilot/coding-agent/permissions: get: - summary: Get Copilot coding agent permissions for an organization + summary: Get Copilot cloud agent permissions for an organization description: |- > [!NOTE] > This endpoint is in public preview and is subject to change. Gets information about which repositories in an organization have been enabled - or disabled for the Copilot coding agent. + or disabled for the Copilot cloud agent. - Organization owners can configure whether Copilot coding agent is enabled for + Organization owners can configure whether Copilot cloud agent is enabled for all repositories, selected repositories, or no repositories owned by organization. OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. @@ -617,7 +904,7 @@ paths: operationId: copilot/get-copilot-coding-agent-permissions-organization externalDocs: description: API method documentation - url: https://docs.github.com/rest/copilot/copilot-coding-agent-management#get-copilot-coding-agent-permissions-for-an-organization + url: https://docs.github.com/rest/copilot/copilot-coding-agent-management#get-copilot-cloud-agent-permissions-for-an-organization parameters: - $ref: '#/components/parameters/org' responses: @@ -630,7 +917,7 @@ paths: properties: enabled_repositories: type: string - description: The policy for which repositories can use Copilot coding agent. Can be one of `all`, `selected`, or `none`. + description: The policy for which repositories can use Copilot cloud agent. Can be one of `all`, `selected`, or `none`. enum: - all - selected @@ -669,14 +956,14 @@ paths: subcategory: copilot-coding-agent-management x-stackQL-resource: copilot_coding_agent_management put: - summary: Set Copilot coding agent permissions for an organization + summary: Set Copilot cloud agent permissions for an organization description: |- > [!NOTE] > This endpoint is in public preview and is subject to change. - Sets the policy for which repositories in an organization can use Copilot coding agent. + Sets the policy for which repositories in an organization can use Copilot cloud agent. - Organization owners can configure whether Copilot coding agent is enabled for + Organization owners can configure whether Copilot cloud agent is enabled for all repositories, selected repositories, or no repositories owned by the organization. OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. @@ -685,7 +972,7 @@ paths: operationId: copilot/set-copilot-coding-agent-permissions-organization externalDocs: description: API method documentation - url: https://docs.github.com/rest/copilot/copilot-coding-agent-management#set-copilot-coding-agent-permissions-for-an-organization + url: https://docs.github.com/rest/copilot/copilot-coding-agent-management#set-copilot-cloud-agent-permissions-for-an-organization parameters: - $ref: '#/components/parameters/org' requestBody: @@ -697,7 +984,7 @@ paths: properties: enabled_repositories: type: string - description: The policy for which repositories can use Copilot coding agent. Can be one of `all`, `selected`, or `none`. + description: The policy for which repositories can use Copilot cloud agent. Can be one of `all`, `selected`, or `none`. enum: - all - selected @@ -729,12 +1016,12 @@ paths: x-stackQL-resource: copilot_coding_agent_management /orgs/{org}/copilot/coding-agent/permissions/repositories: get: - summary: List repositories enabled for Copilot coding agent in an organization + summary: List repositories enabled for Copilot cloud agent in an organization description: |- > [!NOTE] > This endpoint is in public preview and is subject to change. - Lists the selected repositories that are enabled for Copilot coding agent in an organization. + Lists the selected repositories that are enabled for Copilot cloud agent in an organization. Organization owners can use this endpoint when the coding agent repository policy is set to `selected` to see which repositories have been enabled. @@ -745,7 +1032,7 @@ paths: operationId: copilot/list-copilot-coding-agent-selected-repositories-for-organization externalDocs: description: API method documentation - url: https://docs.github.com/rest/copilot/copilot-coding-agent-management#list-repositories-enabled-for-copilot-coding-agent-in-an-organization + url: https://docs.github.com/rest/copilot/copilot-coding-agent-management#list-repositories-enabled-for-copilot-cloud-agent-in-an-organization parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/per-page' @@ -787,13 +1074,13 @@ paths: subcategory: copilot-coding-agent-management x-stackQL-resource: copilot_coding_agent_management put: - summary: Set selected repositories for Copilot coding agent in an organization + summary: Set selected repositories for Copilot cloud agent in an organization description: |- > [!NOTE] > This endpoint is in public preview and is subject to change. - Replaces the list of selected repositories that are enabled for Copilot coding - agent in an organization. This method can only be called when the coding agent + Replaces the list of selected repositories that are enabled for Copilot cloud + agent in an organization. This method can only be called when the cloud agent repository policy is set to `selected`. OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. @@ -802,7 +1089,7 @@ paths: operationId: copilot/set-copilot-coding-agent-selected-repositories-for-organization externalDocs: description: API method documentation - url: https://docs.github.com/rest/copilot/copilot-coding-agent-management#set-selected-repositories-for-copilot-coding-agent-in-an-organization + url: https://docs.github.com/rest/copilot/copilot-coding-agent-management#set-selected-repositories-for-copilot-cloud-agent-in-an-organization parameters: - $ref: '#/components/parameters/org' requestBody: @@ -813,7 +1100,7 @@ paths: type: object properties: selected_repository_ids: - description: List of repository IDs to enable for Copilot coding agent. + description: List of repository IDs to enable for Copilot cloud agent. type: array items: type: integer @@ -849,14 +1136,14 @@ paths: x-stackQL-resource: copilot_coding_agent_management /orgs/{org}/copilot/coding-agent/permissions/repositories/{repository_id}: put: - summary: Enable a repository for Copilot coding agent in an organization + summary: Enable a repository for Copilot cloud agent in an organization description: |- > [!NOTE] > This endpoint is in public preview and is subject to change. Adds a repository to the list of selected repositories enabled for Copilot - coding agent in an organization. This method can only be called when the - coding agent repository policy is set to `selected`. + cloud agent in an organization. This method can only be called when the + cloud agent repository policy is set to `selected`. OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. tags: @@ -864,7 +1151,7 @@ paths: operationId: copilot/enable-copilot-coding-agent-for-repository-in-organization externalDocs: description: API method documentation - url: https://docs.github.com/rest/copilot/copilot-coding-agent-management#enable-a-repository-for-copilot-coding-agent-in-an-organization + url: https://docs.github.com/rest/copilot/copilot-coding-agent-management#enable-a-repository-for-copilot-cloud-agent-in-an-organization parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/repository-id' @@ -890,14 +1177,14 @@ paths: subcategory: copilot-coding-agent-management x-stackQL-resource: copilot_coding_agent_management delete: - summary: Disable a repository for Copilot coding agent in an organization + summary: Disable a repository for Copilot cloud agent in an organization description: |- > [!NOTE] > This endpoint is in public preview and is subject to change. Removes a repository from the list of selected repositories enabled for Copilot - coding agent in an organization. This method can only be called when the - coding agent repository policy is set to `selected`. + cloud agent in an organization. This method can only be called when the + cloud agent repository policy is set to `selected`. OAuth app tokens and personal access tokens (classic) need the `admin:org` scopes to use this endpoint. tags: @@ -905,7 +1192,7 @@ paths: operationId: copilot/disable-copilot-coding-agent-for-repository-in-organization externalDocs: description: API method documentation - url: https://docs.github.com/rest/copilot/copilot-coding-agent-management#disable-a-repository-for-copilot-coding-agent-in-an-organization + url: https://docs.github.com/rest/copilot/copilot-coding-agent-management#disable-a-repository-for-copilot-cloud-agent-in-an-organization parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/repository-id' @@ -1072,83 +1359,102 @@ paths: category: copilot subcategory: copilot-content-exclusion-management x-stackQL-resource: copilot_content_exclusion_management - /orgs/{org}/copilot/metrics: + /orgs/{org}/copilot/metrics/reports/organization-1-day: get: - summary: Get Copilot metrics for an organization + summary: Get Copilot organization usage metrics for a specific day 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. + Use this endpoint to retrieve download links for the Copilot organization usage metrics report for a specific day. The report provides comprehensive usage data for Copilot features across the organization. - > [!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 report contains aggregated metrics for the specified day, including usage statistics for various Copilot features, user engagement data, and feature adoption metrics. Reports are generated daily and made available for download through signed URLs with a limited expiration time. - 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. + The response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed. - 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. + Organization owners and authorized users with fine-grained "View Organization Copilot Metrics" permission can retrieve Copilot metrics reports for the organization. OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. - OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot`, `read:org`, or `read:enterprise` scopes to use this endpoint. + For more information about organization metrics attribution, see [How are metrics attributed across organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations). tags: - copilot - operationId: copilot/copilot-metrics-for-organization + operationId: copilot/copilot-organization-one-day-usage-metrics externalDocs: description: API method documentation - url: https://docs.github.com/rest/copilot/copilot-metrics#get-copilot-metrics-for-an-organization + url: https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-usage-metrics-for-a-specific-day parameters: - $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 + - $ref: '#/components/parameters/day' responses: '200': description: Response content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/copilot-usage-metrics-day' + $ref: '#/components/schemas/copilot-usage-metrics-1-day-report' examples: default: - $ref: '#/components/examples/copilot-usage-metrics-for-day' + $ref: '#/components/examples/copilot-usage-metrics-1-day-report' + '204': + $ref: '#/components/responses/no_content' '403': $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/not_found' - '422': - $ref: '#/components/responses/usage_metrics_api_disabled' '500': $ref: '#/components/responses/internal_error' x-github: githubCloudOnly: false enabledForGitHubApps: true category: copilot - subcategory: copilot-metrics - x-stackQL-resource: copilot_metrics - /orgs/{org}/copilot/metrics/reports/organization-1-day: + subcategory: copilot-usage-metrics + x-stackQL-resource: copilot_usage_metrics + /orgs/{org}/copilot/metrics/reports/organization-28-day/latest: get: - summary: Get Copilot organization usage metrics for a specific day + summary: Get Copilot organization usage metrics description: |- - Use this endpoint to retrieve download links for the Copilot organization usage metrics report for a specific day. The report provides comprehensive usage data for Copilot features across the organization. + Use this endpoint to retrieve download links for the latest 28-day organization Copilot usage metrics report. The report provides comprehensive usage data for Copilot features across the organization. - The report contains aggregated metrics for the specified day, including usage statistics for various Copilot features, user engagement data, and feature adoption metrics. Reports are generated daily and made available for download through signed URLs with a limited expiration time. + The report contains aggregated metrics for the previous 28 days, including usage statistics for various Copilot features, user engagement data, and feature adoption metrics. Reports are generated daily and made available for download through signed URLs with a limited expiration time. + + The response includes download links to the report files, along with the specific date range covered by the report. The report covers a complete 28-day period ending on the most recent day for which data has been processed. + + Organization owners and authorized users with fine-grained "View Organization Copilot Metrics" permission can retrieve Copilot metrics reports for the organization. OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + + For more information about organization metrics attribution, see [How are metrics attributed across organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations). + tags: + - copilot + operationId: copilot/copilot-organization-usage-metrics + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-usage-metrics + parameters: + - $ref: '#/components/parameters/org' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-usage-metrics-28-day-report' + examples: + default: + $ref: '#/components/examples/copilot-usage-metrics-28-day-report' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '500': + $ref: '#/components/responses/internal_error' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: copilot + subcategory: copilot-usage-metrics + x-stackQL-resource: copilot_usage_metrics + /orgs/{org}/copilot/metrics/reports/repos-1-day: + get: + summary: Get Copilot organization repository report for a specific day + description: |- + Use this endpoint to retrieve download links for the Copilot organization repository report for a specific day. The report provides per-repository pull request metrics for Copilot across the organization, with one entry per repository. + + The report contains repository-level pull request activity for the specified day, including the Copilot Coding Agent (CCA) and Copilot Code Review (CCR) breakdowns. Only repositories that had activity on the specified day are included. Reports are generated daily and made available for download through signed URLs with a limited expiration time. The response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed. @@ -1157,10 +1463,10 @@ paths: For more information about organization metrics attribution, see [How are metrics attributed across organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations). tags: - copilot - operationId: copilot/copilot-organization-one-day-usage-metrics + operationId: copilot/copilot-organization-repos-one-day-report externalDocs: description: API method documentation - url: https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-usage-metrics-for-a-specific-day + url: https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-repository-report-for-a-specific-day parameters: - $ref: '#/components/parameters/org' - $ref: '#/components/parameters/day' @@ -1188,37 +1494,40 @@ paths: category: copilot subcategory: copilot-usage-metrics x-stackQL-resource: copilot_usage_metrics - /orgs/{org}/copilot/metrics/reports/organization-28-day/latest: + /orgs/{org}/copilot/metrics/reports/user-teams-1-day: get: - summary: Get Copilot organization usage metrics + summary: Get Copilot organization user-teams report for a specific day description: |- - Use this endpoint to retrieve download links for the latest 28-day organization Copilot usage metrics report. The report provides comprehensive usage data for Copilot features across the organization. + Use this endpoint to retrieve download links for the Copilot organization user-teams report for a specific day. The report provides user-team join data for Copilot across the organization, with one entry per user-team pair. - The report contains aggregated metrics for the previous 28 days, including usage statistics for various Copilot features, user engagement data, and feature adoption metrics. Reports are generated daily and made available for download through signed URLs with a limited expiration time. + The report contains user-team membership data for the specified day, enabling consumers to join with the existing organization user reports to compute team-level usage metrics. Reports are generated daily and made available for download through signed URLs with a limited expiration time. - The response includes download links to the report files, along with the specific date range covered by the report. The report covers a complete 28-day period ending on the most recent day for which data has been processed. + The response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed. Organization owners and authorized users with fine-grained "View Organization Copilot Metrics" permission can retrieve Copilot metrics reports for the organization. OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. For more information about organization metrics attribution, see [How are metrics attributed across organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations). tags: - copilot - operationId: copilot/copilot-organization-usage-metrics + operationId: copilot/copilot-organization-user-teams-one-day-report externalDocs: description: API method documentation - url: https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-usage-metrics + url: https://docs.github.com/rest/copilot/copilot-usage-metrics#get-copilot-organization-user-teams-report-for-a-specific-day parameters: - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/day' responses: '200': description: Response content: application/json: schema: - $ref: '#/components/schemas/copilot-usage-metrics-28-day-report' + $ref: '#/components/schemas/copilot-usage-metrics-1-day-report' examples: default: - $ref: '#/components/examples/copilot-usage-metrics-28-day-report' + $ref: '#/components/examples/copilot-usage-metrics-1-day-report' + '204': + $ref: '#/components/responses/no_content' '403': $ref: '#/components/responses/forbidden' '404': @@ -1370,77 +1679,154 @@ paths: category: copilot subcategory: copilot-user-management x-stackQL-resource: copilot_user_management - /orgs/{org}/team/{team_slug}/copilot/metrics: + /repos/{owner}/{repo}/copilot/cloud-agent/configuration: get: - summary: Get Copilot metrics for a team + summary: Get Copilot cloud agent configuration for a repository 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. - > [!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. + > This endpoint is in public preview and is subject to change. - 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. + Gets the Copilot cloud agent configuration for a repository, including MCP server + configuration, enabled review tools, Actions workflow approval settings, and firewall + configuration. - OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot`, `read:org`, or `read:enterprise` scopes to use this endpoint. + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. tags: - copilot - operationId: copilot/copilot-metrics-for-team + operationId: copilot/get-copilot-cloud-agent-configuration externalDocs: description: API method documentation - url: https://docs.github.com/rest/copilot/copilot-metrics#get-copilot-metrics-for-a-team + url: https://docs.github.com/rest/copilot/copilot-cloud-agent-management#get-copilot-cloud-agent-configuration-for-a-repository parameters: - - $ref: '#/components/parameters/org' - - $ref: '#/components/parameters/team-slug' - - 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 + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' responses: '200': description: Response content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/copilot-usage-metrics-day' + type: object + properties: + mcp_configuration: + description: |- + The user-supplied MCP server configuration for the repository, as a free-form JSON object. This will be set to `null` if no configuration has been set. + + The shape of a valid MCP configuration may evolve over time, so this property is intentionally not strictly typed. Clients should not assume a fixed schema. + nullable: true + type: object + additionalProperties: true + enabled_tools: + type: object + description: The enabled review tools for Copilot cloud agent. + properties: + codeql: + type: boolean + description: Whether the CodeQL tool is enabled for the Copilot cloud agent. + copilot_code_review: + type: boolean + description: Whether the Copilot code review tool is enabled for the Copilot cloud agent. + secret_scanning: + type: boolean + description: Whether the secret scanning tool is enabled for the Copilot cloud agent. + dependency_vulnerability_checks: + type: boolean + description: Whether the dependency vulnerability checks tool is enabled for the Copilot cloud agent. + required: + - codeql + - copilot_code_review + - secret_scanning + - dependency_vulnerability_checks + require_actions_workflow_approval: + type: boolean + description: Whether Actions workflow approval is required for Copilot cloud agent pull requests. + is_firewall_enabled: + type: boolean + description: Whether the firewall is enabled. + is_firewall_recommended_allowlist_enabled: + type: boolean + description: Whether the firewall recommended allowlist is enabled. + custom_allowlist: + type: array + description: A list of custom allowlist entries, as hosts or URLs, that the firewall will allow the Copilot cloud agent to access. + items: + type: string + description: A custom allowlist entry, as a host or URL, that the firewall will allow the Copilot cloud agent to access. + is_automations_enabled: + type: boolean + description: Whether automations are enabled in this repository. When true, users can create automations that automatically run agents on a schedule or in response to events like new issues or updated pull requests. + require_write_access_for_automation_triggers: + type: boolean + description: Whether write access is required for automation triggers. When true, automations will only run if the user triggering the event has write access to the repository. When false, users can create automations that listen for events triggered by users without write access. + required: + - mcp_configuration + - enabled_tools + - require_actions_workflow_approval + - is_firewall_enabled + - is_firewall_recommended_allowlist_enabled + - custom_allowlist + - is_automations_enabled + - require_write_access_for_automation_triggers examples: default: - $ref: '#/components/examples/copilot-usage-metrics-for-day' + summary: Default configuration + value: + mcp_configuration: null + enabled_tools: + codeql: true + copilot_code_review: true + secret_scanning: true + dependency_vulnerability_checks: true + require_actions_workflow_approval: true + is_firewall_enabled: true + is_firewall_recommended_allowlist_enabled: true + custom_allowlist: [] + is_automations_enabled: true + require_write_access_for_automation_triggers: true + configured: + summary: Configuration with an MCP server and a custom firewall allowlist + value: + mcp_configuration: + mcpServers: + sentry: + type: local + command: npx + args: + - '@sentry/mcp-server@latest' + - '--host=$SENTRY_HOST' + env: + SENTRY_HOST: https://octo-org.sentry.io + SENTRY_ACCESS_TOKEN: $COPILOT_MCP_SENTRY_ACCESS_TOKEN + tools: + - search_issues + - get_issue_details + enabled_tools: + codeql: true + copilot_code_review: true + secret_scanning: true + dependency_vulnerability_checks: true + require_actions_workflow_approval: false + is_firewall_enabled: true + is_firewall_recommended_allowlist_enabled: true + custom_allowlist: + - sentry.io + - https://api.example.com + is_automations_enabled: true + require_write_access_for_automation_triggers: false + '401': + $ref: '#/components/responses/requires_authentication' '403': $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/not_found' - '422': - $ref: '#/components/responses/usage_metrics_api_disabled' '500': $ref: '#/components/responses/internal_error' x-github: githubCloudOnly: false enabledForGitHubApps: true category: copilot - subcategory: copilot-metrics - x-stackQL-resource: copilot_metrics + subcategory: copilot-cloud-agent-management + x-stackQL-resource: copilot_cloud_agent_management components: schemas: copilot-usage-metrics-1-day-report: @@ -1607,6 +1993,17 @@ components: enum: - enterprise - organization + access_source: + description: |- + How the team's access to the repository was granted. This property is only + present when the team is returned in a repository context, such as + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs @@ -2051,32 +2448,6 @@ components: items: type: string description: The path to the file that will be excluded. - 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 basic-error: title: Basic Error description: Basic Error @@ -2090,6 +2461,29 @@ components: type: string status: type: string + 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 copilot-organization-seat-breakdown: title: Copilot Seat Breakdown description: The breakdown of Copilot Business seats for the organization. @@ -2331,6 +2725,17 @@ components: enum: - enterprise - organization + access_source: + description: |- + How the team's access to the repository was granted. This property is only + present when the team is returned in a repository context, such as + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs @@ -2399,6 +2804,13 @@ components: updated_at: type: string format: date-time + notification_setting: + type: string + description: Whether team members will receive notifications when the team is mentioned. + example: notifications_enabled + enum: + - notifications_enabled + - notifications_disabled required: - id - url @@ -2745,208 +3157,6 @@ components: type: array items: type: string - 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. nullable-team-simple: title: Team Simple description: Groups of organization members that gives permissions on specified repositories. @@ -3049,6 +3259,17 @@ components: application/json: schema: $ref: '#/components/schemas/basic-error' + no_content: + description: A header with no content is returned. + bad_request: + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + application/scim+json: + schema: + $ref: '#/components/schemas/scim-error' requires_authentication: description: Requires authentication content: @@ -3079,14 +3300,6 @@ components: application/json: schema: $ref: '#/components/schemas/validation-error-simple' - usage_metrics_api_disabled: - description: Copilot Usage Metrics API setting is disabled at the organization or enterprise level. - content: - application/json: - schema: - $ref: '#/components/schemas/basic-error' - no_content: - description: A header with no content is returned. parameters: enterprise: name: enterprise @@ -3139,9 +3352,16 @@ components: required: true schema: type: string - team-slug: - name: team_slug - description: The slug of the team name. + 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: @@ -3150,14 +3370,14 @@ components: copilot-usage-metrics-1-day-report: value: download_links: - - https://example.com/copilot-usage-report-1.json - - https://example.com/copilot-usage-report-2.json + - https://example.com/copilot-usage-report-1.ndjson + - https://example.com/copilot-usage-report-2.ndjson report_day: '2025-07-01' copilot-usage-metrics-28-day-report: value: download_links: - - https://example.com/copilot-usage-report-1.json - - https://example.com/copilot-usage-report-2.json + - https://example.com/copilot-usage-report-1.ndjson + - https://example.com/copilot-usage-report-2.ndjson report_start_day: '2025-07-01' report_end_day: '2025-07-28' copilot-organization-details: @@ -3482,105 +3702,6 @@ components: value: octo-repo: - /src/some-dir/kernel.rs - copilot-usage-metrics-for-day: - value: - - 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 copilot-seat-detail-active: value: created_at: '2021-08-03T18:00:00-06:00' diff --git a/provider-dev/source/copilot_spaces.yaml b/provider-dev/source/copilot_spaces.yaml new file mode 100644 index 0000000..d010b1e --- /dev/null +++ b/provider-dev/source/copilot_spaces.yaml @@ -0,0 +1,3359 @@ +openapi: 3.0.3 +info: + title: copilot_spaces API + description: github API + version: 1.1.4 +paths: + /orgs/{org}/copilot-spaces: + get: + summary: List organization Copilot Spaces + description: |- + Lists Copilot Spaces owned by an organization. The authenticated user must have read access to the organization's Copilot Spaces. + + Only Spaces that are readable by the authenticated user are returned. This includes public Spaces and internal Spaces if the user is a member of the organization. + + OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + + Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in a space; spaces with inaccessible resources are omitted from the response. + tags: + - copilot-spaces + operationId: copilot-spaces/list-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/copilot-spaces#list-organization-copilot-spaces + parameters: + - $ref: '#/components/parameters/org' + - name: per_page + description: The number of results per page (max 100). + in: query + schema: + type: integer + minimum: 1 + maximum: 100 + default: 30 + - 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. + in: query + schema: + type: string + - 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. + in: query + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - spaces + properties: + spaces: + type: array + description: The list of Copilot Spaces on this page of results. + items: + $ref: '#/components/schemas/copilot-space' + examples: + default: + $ref: '#/components/examples/copilot-spaces-organization-list' + headers: + Link: + $ref: '#/components/headers/link' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: copilot-spaces + x-stackQL-resource: copilot_spaces + post: + summary: Create an organization Copilot Space + description: |- + Creates a new Copilot Space owned by an organization. The authenticated user must have permissions to create spaces in the organization. + + Organization members with appropriate permissions can create Copilot Spaces to be shared within their organization. + + OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + + Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by the submitted resources. + tags: + - copilot-spaces + operationId: copilot-spaces/create-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/copilot-spaces#create-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the Copilot Space. + example: Team Planning Space + description: + type: string + description: A description of the Copilot Space. + example: Organization space for team planning and coordination + general_instructions: + type: string + maxLength: 4000 + description: General instructions for the Copilot Space. + example: Help the team with planning and coordination tasks + base_role: + type: string + enum: + - reader + - writer + - admin + - no_access + description: |- + The base role that determines default permissions for organization members. + - `no_access`: No default access (default) + - `reader`: Organization members can read the space + - `writer`: Organization members can read and edit the space + - `admin`: Organization members have full admin access to the space + default: no_access + resources_attributes: + type: array + description: Resources to attach to the space. + items: + type: object + properties: + resource_type: + type: string + enum: + - repository + - github_file + - free_text + - github_issue + - github_pull_request + - media_content + - uploaded_text_file + description: The type of resource. + metadata: + type: object + description: Metadata specific to the resource type. + properties: + repository_id: + type: integer + description: Repository ID for repository or file resources. + file_path: + type: string + description: File path for file resources. + text: + type: string + description: Text content for free text resources. + name: + type: string + description: Name for the resource. + number: + type: integer + description: Issue or PR number. + required: + - name + examples: + default: + value: + name: Team Planning Space + description: Organization space for team planning and coordination + general_instructions: Help the team with planning and coordination tasks + resources_attributes: + - resource_type: github_file + metadata: + repository_id: 123456 + file_path: docs/planning.md + - resource_type: free_text + metadata: + name: Team Guidelines + text: Our team follows agile methodology and holds daily standups + responses: + '201': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space' + examples: + default: + $ref: '#/components/examples/copilot-space-organization' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: copilot-spaces + x-stackQL-resource: copilot_spaces + /orgs/{org}/copilot-spaces/{space_number}: + get: + summary: Get an organization Copilot Space + description: |- + Gets details about a specific Copilot Space owned by an organization. The authenticated user must have read access to the Space. + + Internal Spaces require the authenticated user to be a member of the organization or have been granted read permissions. + + OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + + Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space. + tags: + - copilot-spaces + operationId: copilot-spaces/get-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/copilot-spaces#get-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space' + examples: + default: + $ref: '#/components/examples/copilot-space-organization' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: copilot-spaces + x-stackQL-resource: copilot_spaces + put: + summary: Set an organization Copilot Space + description: |- + Updates a Copilot Space owned by an organization. The authenticated user must have permissions to update spaces in the organization. + + Organization members with appropriate permissions can update Copilot Spaces owned by their organization. + + OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + + Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space, including any being added or updated. + tags: + - copilot-spaces + operationId: copilot-spaces/update-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/copilot-spaces#set-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + 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 Copilot Space. + example: Updated Team Planning Space + description: + type: string + description: A description of the Copilot Space. + example: Updated organization space for team planning and coordination + general_instructions: + type: string + maxLength: 4000 + description: General instructions for the Copilot Space. + example: Updated instructions to help the team with planning and coordination tasks + base_role: + type: string + enum: + - reader + - writer + - admin + - no_access + description: |- + The base role that determines default permissions for organization members. Changing this field requires admin permissions. + - `no_access`: No default access (default) + - `reader`: Organization members can read the space + - `writer`: Organization members can read and edit the space + - `admin`: Organization members have full admin access to the space + resources_attributes: + type: array + description: Resources to attach to the space. + items: + type: object + properties: + resource_type: + type: string + enum: + - repository + - github_file + - free_text + - github_issue + - github_pull_request + - media_content + - uploaded_text_file + description: The type of resource. + metadata: + type: object + description: Metadata specific to the resource type. + properties: + repository_id: + type: integer + description: Repository ID for repository or file resources. + file_path: + type: string + description: File path for file resources. + text: + type: string + description: Text content for free text resources. + name: + type: string + description: Name for the resource. + number: + type: integer + description: Issue or PR number. + examples: + default: + value: + name: Updated Team Planning Space + description: Updated organization space for team planning and coordination + general_instructions: Updated instructions to help the team with planning and coordination tasks + resources_attributes: + - resource_type: github_file + metadata: + repository_id: 123456 + file_path: docs/updated-planning.md + - id: 789 + _destroy: true + - id: 456 + resource_type: free_text + metadata: + name: Updated Team Guidelines + text: Our updated team follows agile methodology and holds daily standups + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space' + examples: + default: + $ref: '#/components/examples/copilot-space-organization' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: copilot-spaces + x-stackQL-resource: copilot_spaces + delete: + summary: Delete an organization Copilot Space + description: |- + Deletes a Copilot Space owned by an organization. The authenticated user must have permissions to delete spaces in the organization. + + **Warning:** This action is permanent and cannot be undone. Deleting a Copilot Space will remove all associated resources and configurations. + + Organization members with appropriate permissions can delete Copilot Spaces owned by their organization. + + OAuth app tokens and personal access tokens (classic) need both the `read:org` and `repo` scopes to use this endpoint. + + Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space. + tags: + - copilot-spaces + operationId: copilot-spaces/delete-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/copilot-spaces#delete-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + responses: + '204': + description: The Copilot Space has been successfully deleted. + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: copilot-spaces + x-stackQL-resource: copilot_spaces + /orgs/{org}/copilot-spaces/{space_number}/collaborators: + get: + summary: List collaborators for an organization Copilot Space + description: |- + Lists all collaborators for a specific Copilot Space owned by an organization. The authenticated user must have appropriate permissions to view collaborators. + + Each collaborator entry specifies which user or team has access to the space and at what level (reader, writer, or admin). The space owner (organization) is excluded from this list. + + **Note:** Team collaborators listed here are teams that are defined in the organization. + + OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + + Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space. + tags: + - copilot-spaces + operationId: copilot-spaces/list-collaborators-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/collaborators#list-collaborators-for-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - collaborators + properties: + collaborators: + type: array + description: The list of collaborators for this Copilot Space. + items: + $ref: '#/components/schemas/copilot-space-collaborator' + examples: + default: + value: + collaborators: + - actor_type: User + role: writer + login: octocat + id: 12345 + node_id: MDQ6VXNlcjEyMzQ1 + 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 + name: The Octocat + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + hireable: false + bio: There once was... + twitter_username: octocat + public_repos: 2 + public_gists: 1 + followers: 20 + following: 0 + created_at: '2008-01-14T04:33:35Z' + updated_at: '2008-01-14T04:33:35Z' + - actor_type: Team + role: reader + id: 67890 + node_id: MDQ6VGVhbTY3ODkw + url: https://api.github.com/teams/67890 + html_url: https://github.com/orgs/octo-org/teams/developers + name: Developers + slug: developers + description: Team of developers + privacy: closed + notification_setting: notifications_enabled + members_url: https://api.github.com/teams/67890/members{/member} + repositories_url: https://api.github.com/teams/67890/repos + parent: null + created_at: '2017-07-14T16:53:42Z' + updated_at: '2017-08-17T12:37:15Z' + organization: + login: octo-org + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + 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 + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: collaborators + x-stackQL-resource: collaborators + post: + summary: Add a collaborator to an organization Copilot Space + description: |- + Adds a collaborator (user or team) to a specific Copilot Space owned by an organization. The authenticated user must have appropriate permissions to manage collaborators. + + **Note:** When adding users as collaborators, they must already be members of the organization. + When adding teams as collaborators, they must be defined in the organization. + + OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + + Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space. + tags: + - copilot-spaces + operationId: copilot-spaces/add-collaborator-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/collaborators#add-a-collaborator-to-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - actor_type + - actor_identifier + - role + properties: + actor_type: + type: string + enum: + - User + - Team + description: The type of actor (user or team). + actor_identifier: + type: string + description: The username (for users) or team slug (for teams). The numeric ID of a user or team is also accepted. + role: + type: string + enum: + - reader + - writer + - admin + description: The role to grant to the collaborator. + examples: + user: + value: + actor_type: User + actor_identifier: octocat + role: writer + team: + value: + actor_type: Team + actor_identifier: developers + role: reader + responses: + '201': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-collaborator' + examples: + user: + value: + actor_type: User + role: writer + login: octocat + id: 12345 + node_id: MDQ6VXNlcjEyMzQ1 + 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 + name: The Octocat + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + hireable: false + bio: There once was... + twitter_username: octocat + public_repos: 2 + public_gists: 1 + followers: 20 + following: 0 + created_at: '2008-01-14T04:33:35Z' + updated_at: '2008-01-14T04:33:35Z' + team: + value: + actor_type: Team + role: reader + id: 67890 + node_id: MDQ6VGVhbTY3ODkw + url: https://api.github.com/teams/67890 + html_url: https://github.com/orgs/octo-org/teams/developers + name: Developers + slug: developers + type: Team + description: Team of developers + privacy: closed + notification_setting: notifications_enabled + members_url: https://api.github.com/teams/67890/members{/member} + repositories_url: https://api.github.com/teams/67890/repos + parent: null + organization_id: 1 + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: collaborators + x-stackQL-resource: collaborators + /orgs/{org}/copilot-spaces/{space_number}/collaborators/{actor_type}/{actor_identifier}: + put: + summary: Set a collaborator role for an organization Copilot Space + description: |- + Updates the role of a collaborator for a specific Copilot Space owned by an organization. The authenticated user must have appropriate permissions to manage collaborators. + + OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + + Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space. + tags: + - copilot-spaces + operationId: copilot-spaces/update-collaborator-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/collaborators#set-a-collaborator-role-for-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + - name: actor_type + description: The type of actor (user or team). + in: path + required: true + schema: + type: string + enum: + - User + - Team + - name: actor_identifier + description: The username (for users) or team slug (for teams). The numeric ID of a user or team is also accepted. + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - role + properties: + role: + type: string + enum: + - reader + - writer + - admin + - no_access + description: The new role to grant to the collaborator. Use `no_access` to remove the collaborator. + examples: + default: + value: + role: admin + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-collaborator' + examples: + user: + value: + actor_type: User + role: admin + login: octocat + id: 12345 + node_id: MDQ6VXNlcjEyMzQ1 + 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 + name: The Octocat + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + hireable: false + bio: There once was... + twitter_username: octocat + public_repos: 2 + public_gists: 1 + followers: 20 + following: 0 + created_at: '2008-01-14T04:33:35Z' + updated_at: '2008-01-14T04:33:35Z' + team: + value: + actor_type: Team + role: admin + id: 67890 + node_id: MDQ6VGVhbTY3ODkw + url: https://api.github.com/teams/67890 + html_url: https://github.com/orgs/octo-org/teams/developers + name: Developers + slug: developers + type: Team + description: Team of developers + privacy: closed + notification_setting: notifications_enabled + members_url: https://api.github.com/teams/67890/members{/member} + repositories_url: https://api.github.com/teams/67890/repos + parent: null + organization_id: 1 + '204': + description: Response when `role` is `no_access` and the collaborator was removed. + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: collaborators + x-stackQL-resource: collaborators + delete: + summary: Remove a collaborator from an organization Copilot Space + description: |- + Removes a collaborator from a specific Copilot Space owned by an organization. The authenticated user must have appropriate permissions to manage collaborators. + + OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + + Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space. + tags: + - copilot-spaces + operationId: copilot-spaces/remove-collaborator-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/collaborators#remove-a-collaborator-from-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + - name: actor_type + description: The type of actor (user or team). + in: path + required: true + schema: + type: string + enum: + - User + - Team + - name: actor_identifier + description: The username (for users) or team slug (for teams). The numeric ID of a user or team is also accepted. + in: path + required: true + schema: + type: string + responses: + '204': + description: Response + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: collaborators + x-stackQL-resource: collaborators + /orgs/{org}/copilot-spaces/{space_number}/resources: + get: + summary: List resources for an organization Copilot Space + description: |- + Lists all resources attached to a specific Copilot Space owned by an organization. + The authenticated user must have appropriate permissions to view the space. + + OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + + Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space. + tags: + - copilot-spaces + operationId: copilot-spaces/list-resources-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/resources#list-resources-for-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - resources + properties: + resources: + type: array + description: The list of resources attached to this Copilot Space. + items: + $ref: '#/components/schemas/copilot-space-resource' + examples: + default: + value: + resources: + - id: 1 + resource_type: repository + copilot_chat_attachment_id: null + metadata: + repository_id: 42 + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T00:00:00Z' + - id: 2 + resource_type: free_text + copilot_chat_attachment_id: null + metadata: + name: notes.txt + text: Some helpful notes + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T00:00:00Z' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: resources + x-stackQL-resource: resources + post: + summary: Create a resource for an organization Copilot Space + description: |- + Creates a new resource in a specific Copilot Space owned by an organization. + The authenticated user must have write permissions on the space. + + The following resource types are supported: `repository`, `github_file`, `free_text`, `github_issue`, `github_pull_request`. + The `uploaded_text_file` and `media_content` types are not supported via this endpoint. + + For `github_file` resources, if a resource with the same repository, file path, and SHA already exists, the existing resource is returned with a `200` status. + + OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + + Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space, including the resource being created. + tags: + - copilot-spaces + operationId: copilot-spaces/create-resource-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/resources#create-a-resource-for-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - resource_type + - metadata + properties: + resource_type: + type: string + enum: + - repository + - github_file + - free_text + - github_issue + - github_pull_request + description: The type of resource to create. + metadata: + type: object + description: Resource-specific metadata. + additionalProperties: true + examples: + free_text: + value: + resource_type: free_text + metadata: + name: notes.txt + text: Some helpful notes + repository: + value: + resource_type: repository + metadata: + repository_id: 42 + github_file: + value: + resource_type: github_file + metadata: + repository_id: 42 + file_path: README.md + sha: abc123 + responses: + '200': + description: Duplicate github_file resource already exists + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-resource' + examples: + default: + value: + id: 1 + resource_type: github_file + copilot_chat_attachment_id: null + metadata: + repository_id: 42 + file_path: README.md + sha: abc123 + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T00:00:00Z' + '201': + description: Resource created + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-resource' + examples: + default: + value: + id: 1 + resource_type: free_text + copilot_chat_attachment_id: null + metadata: + name: notes.txt + text: Some helpful notes + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T00:00:00Z' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: resources + x-stackQL-resource: resources + /orgs/{org}/copilot-spaces/{space_number}/resources/{space_resource_id}: + get: + summary: Get a resource for an organization Copilot Space + description: |- + Gets a specific resource attached to a Copilot Space owned by an organization. + The authenticated user must have appropriate permissions to view the space. + + OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint. + + Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space. + tags: + - copilot-spaces + operationId: copilot-spaces/get-resource-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/resources#get-a-resource-for-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + - name: space_resource_id + description: The unique identifier of the resource. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-resource' + examples: + default: + value: + id: 1 + resource_type: free_text + copilot_chat_attachment_id: null + metadata: + name: notes.txt + text: Some helpful notes + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T00:00:00Z' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: resources + x-stackQL-resource: resources + put: + summary: Set a resource for an organization Copilot Space + description: |- + Updates the metadata of a resource in a specific Copilot Space owned by an organization. + The authenticated user must have write permissions on the space. + + OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + + Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space, including the resource being updated. + tags: + - copilot-spaces + operationId: copilot-spaces/update-resource-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/resources#set-a-resource-for-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + - name: space_resource_id + description: The unique identifier of the resource. + in: path + required: true + schema: + type: integer + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + metadata: + type: object + description: Updated resource-specific metadata. + additionalProperties: true + examples: + default: + value: + metadata: + name: updated-notes.txt + text: Updated content + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-resource' + examples: + default: + value: + id: 1 + resource_type: free_text + copilot_chat_attachment_id: null + metadata: + name: updated-notes.txt + text: Updated content + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T12:00:00Z' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: resources + x-stackQL-resource: resources + delete: + summary: Delete a resource from an organization Copilot Space + description: |- + Deletes a resource from a specific Copilot Space owned by an organization. + The authenticated user must have write permissions on the space. + + OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint. + + Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space. + tags: + - copilot-spaces + operationId: copilot-spaces/delete-resource-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/resources#delete-a-resource-from-an-organization-copilot-space + parameters: + - $ref: '#/components/parameters/org' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + - name: space_resource_id + description: The unique identifier of the resource. + in: path + required: true + schema: + type: integer + responses: + '204': + description: Response + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: resources + x-stackQL-resource: resources + /users/{username}/copilot-spaces: + get: + summary: List Copilot Spaces for a user + description: |- + Lists Copilot Spaces owned by a user. The authenticated user must have read access to the user's Copilot Spaces. + + Only Spaces that are readable by the authenticated user are returned. This includes the user's own spaces, and public user spaces when accessing another user's spaces. + + OAuth app tokens and personal access tokens (classic) need the `read:user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/list-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/copilot-spaces#list-copilot-spaces-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: per_page + description: The number of results per page (max 100). + in: query + schema: + type: integer + minimum: 1 + maximum: 100 + default: 30 + - 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. + in: query + schema: + type: string + - 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. + in: query + schema: + type: string + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - spaces + properties: + spaces: + type: array + description: The list of Copilot Spaces on this page of results. + items: + $ref: '#/components/schemas/copilot-space' + examples: + default: + $ref: '#/components/examples/copilot-spaces-user-list' + headers: + Link: + $ref: '#/components/headers/link' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: copilot-spaces + x-stackQL-resource: copilot_spaces + post: + summary: Create a Copilot Space for a user + description: |- + Creates a new Copilot Space owned by a user. Only the authenticated user can create spaces for their own account. + + Users can create personal Copilot Spaces for their individual use. + + OAuth app tokens and personal access tokens (classic) need the `read:user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/create-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/copilot-spaces#create-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + name: + type: string + description: The name of the Copilot Space. + example: My Development Space + description: + type: string + description: A description of the Copilot Space. + example: Personal space for development assistance + general_instructions: + type: string + maxLength: 4000 + description: General instructions for the Copilot Space. + example: Help me with React development patterns and best practices + base_role: + type: string + enum: + - reader + - no_access + description: |- + The base role that determines default permissions for the space. + - `no_access`: No default access (default) + - `reader`: Makes the space publicly readable + Note: User spaces do not support writer or admin base roles. + default: no_access + resources_attributes: + type: array + description: Resources to attach to the space. + items: + type: object + properties: + resource_type: + type: string + enum: + - repository + - github_file + - free_text + - github_issue + - github_pull_request + - media_content + - uploaded_text_file + description: The type of resource. + metadata: + type: object + description: Metadata specific to the resource type. + properties: + repository_id: + type: integer + description: Repository ID for repository or file resources. + file_path: + type: string + description: File path for file resources. + text: + type: string + description: Text content for free text resources. + name: + type: string + description: Name for the resource. + number: + type: integer + description: Issue or PR number. + required: + - name + examples: + default: + value: + name: My Development Space + description: Personal space for development assistance + general_instructions: Help me with React development patterns and best practices + resources_attributes: + - resource_type: github_file + metadata: + repository_id: 789012 + file_path: src/components/App.js + - resource_type: free_text + metadata: + name: Development Notes + text: Focus on clean code principles and modern React patterns + responses: + '201': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space' + examples: + default: + $ref: '#/components/examples/copilot-space-user' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: copilot-spaces + x-stackQL-resource: copilot_spaces + /users/{username}/copilot-spaces/{space_number}: + get: + summary: Get a Copilot Space for a user + description: |- + Gets details about a specific Copilot Space owned by a user. The authenticated user must have read access to the Space. + + Private user spaces require the authenticated user to be the owner of the space. + Public user spaces are accessible to any authenticated user. + + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/get-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/copilot-spaces#get-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space' + examples: + default: + $ref: '#/components/examples/copilot-space-user' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: copilot-spaces + x-stackQL-resource: copilot_spaces + put: + summary: Set a Copilot Space for a user + description: |- + Updates a Copilot Space owned by a user. Only the authenticated user can update spaces for their own account. + + Users can update their personal Copilot Spaces. + + OAuth app tokens and personal access tokens (classic) need the `read:user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/update-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/copilot-spaces#set-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + 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 Copilot Space. + example: Updated Development Space + description: + type: string + description: A description of the Copilot Space. + example: Updated personal space for development assistance + general_instructions: + type: string + maxLength: 4000 + description: General instructions for the Copilot Space. + example: Updated instructions to help me with React development patterns and best practices + base_role: + type: string + enum: + - reader + - no_access + description: |- + The base role that determines default permissions for the space. Changing this field requires admin permissions. + - `no_access`: No default access (default) + - `reader`: Makes the space publicly readable + Note: User spaces do not support writer or admin base roles. + resources_attributes: + type: array + description: Resources to attach to the space. + items: + type: object + properties: + resource_type: + type: string + enum: + - repository + - github_file + - free_text + - github_issue + - github_pull_request + - media_content + - uploaded_text_file + description: The type of resource. + metadata: + type: object + description: Metadata specific to the resource type. + properties: + repository_id: + type: integer + description: Repository ID for repository or file resources. + file_path: + type: string + description: File path for file resources. + text: + type: string + description: Text content for free text resources. + name: + type: string + description: Name for the resource. + number: + type: integer + description: Issue or PR number. + examples: + default: + value: + name: Updated Development Space + description: Updated personal space for development assistance + general_instructions: Updated instructions to help me with React development patterns and best practices + resources_attributes: + - resource_type: github_file + metadata: + repository_id: 789012 + file_path: src/components/UpdatedApp.js + - id: 123 + _destroy: true + - id: 456 + resource_type: free_text + metadata: + name: Updated Development Notes + text: Updated focus on clean code principles and modern React patterns + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space' + examples: + default: + $ref: '#/components/examples/copilot-space-user' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: true + category: copilot-spaces + subcategory: copilot-spaces + x-stackQL-resource: copilot_spaces + delete: + summary: Delete a Copilot Space for a user + description: |- + Deletes a Copilot Space owned by a user. The authenticated user must be the owner of the space. + + **Warning:** This action is permanent and cannot be undone. Deleting a space will remove all associated resources and configurations. + + OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/delete-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/copilot-spaces#delete-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + responses: + '204': + description: The Copilot Space has been successfully deleted. + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: copilot-spaces + x-stackQL-resource: copilot_spaces + /users/{username}/copilot-spaces/{space_number}/collaborators: + get: + summary: List collaborators for a Copilot Space for a user + description: |- + Lists all collaborators for a specific Copilot Space owned by a user. The authenticated user must be the owner of the space or have admin access to the space. + + Each collaborator entry specifies which user has access to the space and at what level (reader, writer, or admin). The space owner is excluded from this list. + + Team collaborators are not supported for user-owned Copilot Spaces. + + OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/list-collaborators-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/collaborators#list-collaborators-for-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - collaborators + properties: + collaborators: + type: array + description: The list of collaborators for this Copilot Space. + items: + $ref: '#/components/schemas/copilot-space-collaborator' + examples: + default: + value: + collaborators: + - actor_type: User + role: writer + login: octocat + id: 12345 + node_id: MDQ6VXNlcjEyMzQ1 + 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 + name: The Octocat + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + hireable: false + bio: There once was... + twitter_username: octocat + public_repos: 2 + public_gists: 1 + followers: 20 + following: 0 + created_at: '2008-01-14T04:33:35Z' + updated_at: '2008-01-14T04:33:35Z' + - actor_type: User + role: reader + login: github-user + id: 67890 + node_id: MDQ6VXNlcjY3ODkw + avatar_url: https://github.com/images/error/other_user.gif + gravatar_id: '' + url: https://api.github.com/users/github-user + html_url: https://github.com/github-user + followers_url: https://api.github.com/users/github-user/followers + following_url: https://api.github.com/users/github-user/following{/other_user} + gists_url: https://api.github.com/users/github-user/gists{/gist_id} + starred_url: https://api.github.com/users/github-user/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/github-user/subscriptions + organizations_url: https://api.github.com/users/github-user/orgs + repos_url: https://api.github.com/users/github-user/repos + events_url: https://api.github.com/users/github-user/events{/privacy} + received_events_url: https://api.github.com/users/github-user/received_events + type: User + user_view_type: public + site_admin: false + name: GitHub User + company: null + blog: '' + location: null + email: null + hireable: null + bio: null + twitter_username: null + public_repos: 5 + public_gists: 0 + followers: 10 + following: 5 + created_at: '2010-01-14T04:33:35Z' + updated_at: '2010-01-14T04:33:35Z' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: collaborators + x-stackQL-resource: collaborators + post: + summary: Add a collaborator to a Copilot Space for a user + description: |- + Adds a collaborator to a specific Copilot Space owned by a user. The authenticated user must be the owner of the space or have admin access to the space. + + Team collaborators are not supported for user-owned Copilot Spaces. + + OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/add-collaborator-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/collaborators#add-a-collaborator-to-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - actor_type + - actor_identifier + - role + properties: + actor_type: + type: string + enum: + - User + - Team + description: The type of actor (must be `User` for user-owned spaces; `Team` will be rejected). + actor_identifier: + type: string + description: The username of the collaborator. The numeric user ID is also accepted. + role: + type: string + enum: + - reader + - writer + - admin + description: The role to grant to the collaborator. + examples: + default: + value: + actor_type: User + actor_identifier: octocat + role: writer + responses: + '201': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-collaborator' + examples: + default: + value: + actor_type: User + role: writer + login: octocat + id: 12345 + node_id: MDQ6VXNlcjEyMzQ1 + 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 + name: The Octocat + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + hireable: false + bio: There once was... + twitter_username: octocat + public_repos: 2 + public_gists: 1 + followers: 20 + following: 0 + created_at: '2008-01-14T04:33:35Z' + updated_at: '2008-01-14T04:33:35Z' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: collaborators + x-stackQL-resource: collaborators + /users/{username}/copilot-spaces/{space_number}/collaborators/{actor_type}/{actor_identifier}: + put: + summary: Set a collaborator role for a Copilot Space for a user + description: |- + Updates the role of a collaborator for a specific Copilot Space owned by a user. The authenticated user must be the owner of the space or have admin access to the space. + + OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/update-collaborator-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/collaborators#set-a-collaborator-role-for-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + - name: actor_type + description: The type of actor (must be `User` for user-owned spaces; `Team` will be rejected). + in: path + required: true + schema: + type: string + enum: + - User + - Team + - name: actor_identifier + description: The username of the collaborator. The numeric user ID is also accepted. + in: path + required: true + schema: + type: string + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - role + properties: + role: + type: string + enum: + - reader + - writer + - admin + - no_access + description: The new role to grant to the collaborator. Use `no_access` to remove the collaborator. + examples: + default: + value: + role: admin + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-collaborator' + examples: + default: + value: + actor_type: User + role: admin + login: octocat + id: 12345 + node_id: MDQ6VXNlcjEyMzQ1 + 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 + name: The Octocat + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + hireable: false + bio: There once was... + twitter_username: octocat + public_repos: 2 + public_gists: 1 + followers: 20 + following: 0 + created_at: '2008-01-14T04:33:35Z' + updated_at: '2008-01-14T04:33:35Z' + '204': + description: Response when `role` is `no_access` and the collaborator was removed. + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: collaborators + x-stackQL-resource: collaborators + delete: + summary: Remove a collaborator from a Copilot Space for a user + description: |- + Removes a collaborator from a specific Copilot Space owned by a user. The authenticated user must be the owner of the space or have admin access to the space. + + OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/remove-collaborator-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/collaborators#remove-a-collaborator-from-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + - name: actor_type + description: The type of actor (must be `User` for user-owned spaces; `Team` will be rejected). + in: path + required: true + schema: + type: string + enum: + - User + - Team + - name: actor_identifier + description: The username of the collaborator. The numeric user ID is also accepted. + in: path + required: true + schema: + type: string + responses: + '204': + description: Response + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: collaborators + x-stackQL-resource: collaborators + /users/{username}/copilot-spaces/{space_number}/resources: + get: + summary: List resources for a Copilot Space for a user + description: |- + Lists all resources attached to a specific Copilot Space owned by a user. + The authenticated user must have appropriate permissions to view the space. + + OAuth app tokens and personal access tokens (classic) need the `read:user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/list-resources-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/resources#list-resources-for-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - resources + properties: + resources: + type: array + description: The list of resources attached to this Copilot Space. + items: + $ref: '#/components/schemas/copilot-space-resource' + examples: + default: + value: + resources: + - id: 1 + resource_type: free_text + copilot_chat_attachment_id: null + metadata: + name: notes.txt + text: Some helpful notes + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T00:00:00Z' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: resources + x-stackQL-resource: resources + post: + summary: Create a resource for a Copilot Space for a user + description: |- + Creates a new resource in a specific Copilot Space owned by a user. + The authenticated user must have write permissions on the space. + + The following resource types are supported: `repository`, `github_file`, `free_text`, `github_issue`, `github_pull_request`. + The `uploaded_text_file` and `media_content` types are not supported via this endpoint. + + For `github_file` resources, if a resource with the same repository, file path, and SHA already exists, the existing resource is returned with a `200` status. + + OAuth app tokens and personal access tokens (classic) need the `write:user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/create-resource-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/resources#create-a-resource-for-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - resource_type + - metadata + properties: + resource_type: + type: string + enum: + - repository + - github_file + - free_text + - github_issue + - github_pull_request + description: The type of resource to create. + metadata: + type: object + description: Resource-specific metadata. + additionalProperties: true + examples: + free_text: + value: + resource_type: free_text + metadata: + name: notes.txt + text: Some helpful notes + repository: + value: + resource_type: repository + metadata: + repository_id: 42 + github_file: + value: + resource_type: github_file + metadata: + repository_id: 42 + file_path: README.md + sha: abc123 + responses: + '200': + description: Duplicate github_file resource already exists + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-resource' + examples: + default: + value: + id: 1 + resource_type: github_file + copilot_chat_attachment_id: null + metadata: + repository_id: 42 + file_path: README.md + sha: abc123 + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T00:00:00Z' + '201': + description: Resource created + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-resource' + examples: + default: + value: + id: 1 + resource_type: free_text + copilot_chat_attachment_id: null + metadata: + name: notes.txt + text: Some helpful notes + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T00:00:00Z' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: resources + x-stackQL-resource: resources + /users/{username}/copilot-spaces/{space_number}/resources/{space_resource_id}: + get: + summary: Get a resource for a Copilot Space for a user + description: |- + Gets a specific resource attached to a Copilot Space owned by a user. + The authenticated user must have appropriate permissions to view the space. + + OAuth app tokens and personal access tokens (classic) need the `read:user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/get-resource-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/resources#get-a-resource-for-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + - name: space_resource_id + description: The unique identifier of the resource. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-resource' + examples: + default: + value: + id: 1 + resource_type: free_text + copilot_chat_attachment_id: null + metadata: + name: notes.txt + text: Some helpful notes + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T00:00:00Z' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: resources + x-stackQL-resource: resources + put: + summary: Set a resource for a Copilot Space for a user + description: |- + Updates the metadata of a resource in a specific Copilot Space owned by a user. + The authenticated user must have write permissions on the space. + + OAuth app tokens and personal access tokens (classic) need the `write:user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/update-resource-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/resources#set-a-resource-for-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + - name: space_resource_id + description: The unique identifier of the resource. + in: path + required: true + schema: + type: integer + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + metadata: + type: object + description: Updated resource-specific metadata. + additionalProperties: true + examples: + default: + value: + metadata: + name: updated-notes.txt + text: Updated content + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/copilot-space-resource' + examples: + default: + value: + id: 1 + resource_type: free_text + copilot_chat_attachment_id: null + metadata: + name: updated-notes.txt + text: Updated content + created_at: '2025-01-01T00:00:00Z' + updated_at: '2025-01-01T12:00:00Z' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: resources + x-stackQL-resource: resources + delete: + summary: Delete a resource from a Copilot Space for a user + description: |- + Deletes a resource from a specific Copilot Space owned by a user. + The authenticated user must have write permissions on the space. + + OAuth app tokens and personal access tokens (classic) need the `write:user` scope to use this endpoint. + tags: + - copilot-spaces + operationId: copilot-spaces/delete-resource-for-user + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/copilot-spaces/resources#delete-a-resource-from-a-copilot-space-for-a-user + parameters: + - $ref: '#/components/parameters/username' + - name: space_number + description: The unique identifier of the Copilot Space. + in: path + required: true + schema: + type: integer + - name: space_resource_id + description: The unique identifier of the resource. + in: path + required: true + schema: + type: integer + responses: + '204': + description: Response + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + enabledForGitHubApps: false + category: copilot-spaces + subcategory: resources + x-stackQL-resource: resources +components: + schemas: + copilot-space: + title: Space + description: A GitHub Copilot Space represents an interactive AI workspace where users can ask questions and get assistance. + type: object + properties: + id: + type: integer + format: int64 + description: The unique identifier of the space. + example: 42 + number: + type: integer + description: The number that identifies the space within its owner. + example: 1 + name: + type: string + description: The display name of the space. + example: My Development Space + description: + type: string + nullable: true + description: A description of the space. + example: A space for discussing React development patterns + general_instructions: + type: string + maxLength: 4000 + nullable: true + description: General instructions for the Copilot Space. + example: Help with React development patterns and best practices + base_role: + type: string + enum: + - reader + - writer + - admin + - no_access + description: |- + The base role that determines default permissions. + - `no_access`: No default access + - `reader`: Default read permissions + - `writer`: Default write permissions (organization spaces only) + - `admin`: Default admin permissions (organization spaces only) + example: no_access + owner: + description: The user or organization that owns this space. + title: Simple 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 + 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} + description: + type: string + example: A great organization + nullable: true + 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 + - hooks_url + - issues_url + - members_url + - public_members_url + - description + creator: + $ref: '#/components/schemas/simple-user' + created_at: + type: string + format: date-time + description: The date and time the space was created. + example: '2023-01-01T00:00:00Z' + updated_at: + type: string + format: date-time + description: The date and time the space was last updated. + example: '2023-01-01T12:00:00Z' + html_url: + type: string + format: uri + description: The HTML URL of the space. + example: https://github.com/copilot/spaces/octo-org/5 + api_url: + type: string + format: uri + description: The API URL of the space. + example: https://api.github.com/organizations/1/copilot-spaces/5 + resources_attributes: + type: array + description: Resources attached to the space. + items: + type: object + properties: + id: + type: integer + format: int64 + description: The unique identifier of the resource. + resource_type: + type: string + enum: + - repository + - github_file + - free_text + - github_issue + - github_pull_request + - media_content + - uploaded_text_file + description: The type of resource. + copilot_chat_attachment_id: + type: integer + format: int64 + nullable: true + description: The unique identifier of the chat attachment for uploaded files or media content. + created_at: + type: string + format: date-time + description: The date and time the resource was created. + updated_at: + type: string + format: date-time + description: The date and time the resource was last updated. + metadata: + type: object + description: Metadata specific to the resource type. + properties: + repository_id: + type: integer + description: Repository ID for repository or file resources. + file_path: + type: string + description: File path for file resources. + text: + type: string + description: Text content for free text resources. + name: + type: string + description: Name for the resource. + number: + type: integer + description: Issue or PR number. + copilot_chat_attachment_id: + type: integer + description: Chat attachment ID for uploaded files or media. + media_type: + type: string + description: Media type for media content resources. + url: + type: string + description: URL for media content resources. + height: + type: integer + description: Height for media content resources. + width: + type: integer + description: Width for media content resources. + required: + - id + - number + - name + - base_role + - owner + - creator + - created_at + - updated_at + - html_url + - api_url + additionalProperties: false + copilot-space-collaborator: + title: Copilot Space Collaborator + description: A collaborator (user or team) of a Copilot Space + 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 + actor_type: + type: string + enum: + - User + description: The collaborator actor type. + role: + type: string + enum: + - reader + - writer + - admin + description: The role granted to the collaborator + slug: + type: string + description: + type: string + nullable: true + privacy: + type: string + notification_setting: + type: string + members_url: + type: string + repositories_url: + type: string + format: uri + organization_id: + type: integer + parent: + nullable: true + 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 + - actor_type + - role + - name + - slug + copilot-space-resource: + title: Copilot Space Resource + description: A resource attached to a Copilot Space. + type: object + properties: + id: + type: integer + description: The unique identifier of the resource. + resource_type: + type: string + description: The type of the resource. + enum: + - repository + - github_file + - free_text + - github_issue + - github_pull_request + - media_content + - uploaded_text_file + copilot_chat_attachment_id: + type: integer + nullable: true + description: The ID of the associated chat attachment, if any. + metadata: + type: object + description: Resource-specific metadata. The keys and values depend on the resource type. + additionalProperties: true + created_at: + type: string + format: date-time + description: The date and time the resource was created. + updated_at: + type: string + format: date-time + description: The date and time the resource was last updated. + required: + - id + - resource_type + - metadata + - created_at + - updated_at + 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 + 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 + 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: + 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 + responses: + forbidden: + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + not_found: + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + validation_failed: + description: Validation failed, or the endpoint has been spammed. + content: + application/json: + schema: + $ref: '#/components/schemas/validation-error' + parameters: + org: + name: org + description: The organization name. The name is not case sensitive. + in: path + required: true + schema: + type: string + username: + name: username + description: The handle for the GitHub user account. + in: path + required: true + schema: + type: string + examples: + copilot-spaces-organization-list: + summary: Example response for listing organization copilot spaces + value: + spaces: + - id: 84 + number: 3 + name: Team Planning Space + description: Organization space for team planning and coordination + owner: + login: octo-org + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + 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 + gravatar_id: '' + name: octo-org + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + twitter_username: octo-org + html_url: https://github.com/octo-org + created_at: '2008-01-14T04:33:35Z' + updated_at: '2017-08-17T12:37:15Z' + type: Organization + creator: + login: defunkt + id: 2 + node_id: MDQ6VXNlcjI= + avatar_url: https://github.com/images/error/defunkt_happy.gif + gravatar_id: '' + url: https://api.github.com/users/defunkt + html_url: https://github.com/defunkt + followers_url: https://api.github.com/users/defunkt/followers + following_url: https://api.github.com/users/defunkt/following{/other_user} + gists_url: https://api.github.com/users/defunkt/gists{/gist_id} + starred_url: https://api.github.com/users/defunkt/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/defunkt/subscriptions + organizations_url: https://api.github.com/users/defunkt/orgs + repos_url: https://api.github.com/users/defunkt/repos + events_url: https://api.github.com/users/defunkt/events{/privacy} + received_events_url: https://api.github.com/users/defunkt/received_events + type: User + site_admin: true + created_at: '2023-02-15T08:30:00Z' + updated_at: '2023-02-15T14:45:00Z' + html_url: https://github.com/copilot/spaces/octo-org/3 + api_url: https://api.github.com/organizations/1/copilot-spaces/3 + - id: 85 + number: 4 + name: Development Resources + description: Shared development documentation and resources + owner: + login: octo-org + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + 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 + gravatar_id: '' + name: octo-org + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + twitter_username: octo-org + html_url: https://github.com/octo-org + created_at: '2008-01-14T04:33:35Z' + updated_at: '2017-08-17T12:37:15Z' + type: Organization + creator: + login: octocat + id: 3 + node_id: MDQ6VXNlcjM= + 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: '2023-02-16T10:15:00Z' + updated_at: '2023-02-16T16:30:00Z' + html_url: https://github.com/copilot/spaces/octo-org/4 + api_url: https://api.github.com/organizations/1/copilot-spaces/4 + copilot-space-organization: + summary: Example response for an organization copilot space + value: + id: 84 + number: 3 + name: Team Planning Space + description: Organization space for team planning and coordination + general_instructions: Help the team with agile planning, sprint coordination, and project management best practices + owner: + login: octo-org + id: 1 + node_id: MDEyOk9yZ2FuaXphdGlvbjE= + 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 + gravatar_id: '' + name: octo-org + company: GitHub + blog: https://github.com/blog + location: San Francisco + email: octocat@github.com + twitter_username: octo-org + html_url: https://github.com/octo-org + created_at: '2008-01-14T04:33:35Z' + updated_at: '2017-08-17T12:37:15Z' + type: Organization + creator: + login: defunkt + id: 2 + node_id: MDQ6VXNlcjI= + avatar_url: https://github.com/images/error/defunkt_happy.gif + gravatar_id: '' + url: https://api.github.com/users/defunkt + html_url: https://github.com/defunkt + followers_url: https://api.github.com/users/defunkt/followers + following_url: https://api.github.com/users/defunkt/following{/other_user} + gists_url: https://api.github.com/users/defunkt/gists{/gist_id} + starred_url: https://api.github.com/users/defunkt/starred{/owner}{/repo} + subscriptions_url: https://api.github.com/users/defunkt/subscriptions + organizations_url: https://api.github.com/users/defunkt/orgs + repos_url: https://api.github.com/users/defunkt/repos + events_url: https://api.github.com/users/defunkt/events{/privacy} + received_events_url: https://api.github.com/users/defunkt/received_events + type: User + site_admin: true + created_at: '2023-02-15T08:30:00Z' + updated_at: '2023-02-15T14:45:00Z' + html_url: https://github.com/copilot/spaces/octo-org/3 + api_url: https://api.github.com/organizations/1/copilot-spaces/3 + base_role: no_access + resources_attributes: + - id: 123 + resource_type: github_file + metadata: + repository_id: 456 + file_path: docs/planning.md + - id: 124 + resource_type: free_text + metadata: + name: Team Guidelines + text: Our team follows agile methodology + copilot-spaces-user-list: + summary: Example response for listing user copilot spaces + value: + spaces: + - id: 42 + number: 1 + name: Personal Research Space + description: My personal space for research and development + owner: + login: octocat + id: 3 + node_id: MDQ6VXNlcjM= + 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 + creator: + login: octocat + id: 3 + node_id: MDQ6VXNlcjM= + 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: '2023-02-16T10:15:00Z' + updated_at: '2023-02-16T16:30:00Z' + html_url: https://github.com/copilot/spaces/octocat/1 + api_url: https://api.github.com/user/1/copilot-spaces/1 + - id: 43 + number: 2 + name: Learning Space + description: Space for learning new technologies + owner: + login: octocat + id: 3 + node_id: MDQ6VXNlcjM= + 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 + creator: + login: octocat + id: 3 + node_id: MDQ6VXNlcjM= + 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: '2023-02-17T08:20:00Z' + updated_at: '2023-02-17T14:45:00Z' + html_url: https://github.com/copilot/spaces/octocat/2 + api_url: https://api.github.com/user/1/copilot-spaces/2 + copilot-space-user: + summary: Example response for a user copilot space + value: + id: 42 + number: 5 + name: My Development Space + description: Personal space for React development patterns + general_instructions: Focus on React functional components, hooks, and modern development patterns + 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 + 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: '2023-02-15T08:30:00Z' + updated_at: '2023-02-15T14:45:00Z' + html_url: https://github.com/copilot/spaces/octocat/5 + api_url: https://api.github.com/user/1/copilot-spaces/5 + base_role: no_access + resources_attributes: + - id: 789 + resource_type: github_file + metadata: + repository_id: 1234 + file_path: src/components/App.tsx + - id: 790 + resource_type: free_text + metadata: + name: React Best Practices + text: Use functional components with hooks + headers: + link: + example: ; rel="next", ; rel="last" + schema: + type: string +servers: + - url: https://api.github.com diff --git a/provider-dev/source/dependabot.yaml b/provider-dev/source/dependabot.yaml index 23bcef2..8da84bb 100644 --- a/provider-dev/source/dependabot.yaml +++ b/provider-dev/source/dependabot.yaml @@ -32,6 +32,7 @@ paths: - $ref: '#/components/parameters/dependabot-alert-comma-separated-has' - $ref: '#/components/parameters/dependabot-alert-comma-separated-assignees' - $ref: '#/components/parameters/dependabot-alert-scope' + - $ref: '#/components/parameters/dependabot-alert-relationship' - $ref: '#/components/parameters/dependabot-alert-sort' - $ref: '#/components/parameters/direction' - $ref: '#/components/parameters/pagination-before' @@ -64,22 +65,21 @@ paths: category: dependabot subcategory: alerts x-stackQL-resource: alerts - /organizations/{org}/dependabot/repository-access: + /enterprises/{enterprise}/dependabot/repository-access: get: - summary: Lists the repositories Dependabot can access in an organization + summary: Lists the repositories Dependabot can access in an enterprise description: |- - 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. + Lists repositories that enterprise admins have allowed Dependabot to access when updating dependencies across organizations in the enterprise. + + The authenticated user must be an enterprise owner to use this endpoint. tags: - dependabot - operationId: dependabot/repository-access-for-org + operationId: dependabot/repository-access-for-enterprise externalDocs: description: API method documentation - url: https://docs.github.com/rest/dependabot/repository-access#lists-the-repositories-dependabot-can-access-in-an-organization + url: https://docs.github.com/rest/dependabot/repository-access#lists-the-repositories-dependabot-can-access-in-an-enterprise parameters: - - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/enterprise' - name: page in: query description: The page number of results to fetch. @@ -113,18 +113,16 @@ paths: $ref: '#/components/responses/not_found' x-github: githubCloudOnly: false - enabledForGitHubApps: true + enabledForGitHubApps: false category: dependabot subcategory: repository-access x-stackQL-resource: repository_access patch: - summary: Updates Dependabot's repository access list for an organization + summary: Updates Dependabot's repository access list for an enterprise description: |- - Updates repositories according to the list of repositories that organization admins have given Dependabot access to when they've updated dependencies. + Updates repositories according to the list of repositories that enterprise admins have given Dependabot access to when they've updated dependencies across organizations in the enterprise. - > [!NOTE] - > This operation supports both server-to-server and user-to-server access. - Unauthorized users will not see the existence of this endpoint. + The authenticated user must be an enterprise owner to use this endpoint. **Example request body:** ```json @@ -135,12 +133,12 @@ paths: ``` tags: - dependabot - operationId: dependabot/update-repository-access-for-org + operationId: dependabot/update-repository-access-for-enterprise externalDocs: description: API method documentation - url: https://docs.github.com/rest/dependabot/repository-access#updates-dependabots-repository-access-list-for-an-organization + url: https://docs.github.com/rest/dependabot/repository-access#updates-dependabots-repository-access-list-for-an-enterprise parameters: - - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/enterprise' requestBody: required: true content: @@ -187,29 +185,27 @@ paths: $ref: '#/components/responses/not_found' x-github: githubCloudOnly: false - enabledForGitHubApps: true + enabledForGitHubApps: false category: dependabot subcategory: repository-access x-stackQL-resource: repository_access - /organizations/{org}/dependabot/repository-access/default-level: + /enterprises/{enterprise}/dependabot/repository-access/default-level: put: - summary: Set the default repository access level for Dependabot + summary: Set the default repository access level for Dependabot in an enterprise description: |- - Sets the default level of repository access Dependabot will have while performing an update. Available values are: + Sets the default level of repository access Dependabot will have while performing an update across organizations in the enterprise. 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. + The authenticated user must be an enterprise owner to use this endpoint. tags: - dependabot - operationId: dependabot/set-repository-access-default-level + operationId: dependabot/set-repository-access-default-level-for-enterprise externalDocs: description: API method documentation - url: https://docs.github.com/rest/dependabot/repository-access#set-the-default-repository-access-level-for-dependabot + url: https://docs.github.com/rest/dependabot/repository-access#set-the-default-repository-access-level-for-dependabot-in-an-enterprise parameters: - - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/enterprise' requestBody: required: true content: @@ -240,7 +236,7 @@ paths: $ref: '#/components/responses/not_found' x-github: githubCloudOnly: false - enabledForGitHubApps: true + enabledForGitHubApps: false category: dependabot subcategory: repository-access x-stackQL-resource: repository_access @@ -273,6 +269,7 @@ paths: - $ref: '#/components/parameters/dependabot-alert-comma-separated-assignees' - $ref: '#/components/parameters/dependabot-alert-comma-separated-runtime-risk' - $ref: '#/components/parameters/dependabot-alert-scope' + - $ref: '#/components/parameters/dependabot-alert-relationship' - $ref: '#/components/parameters/dependabot-alert-sort' - $ref: '#/components/parameters/direction' - $ref: '#/components/parameters/pagination-before' @@ -306,6 +303,186 @@ paths: category: dependabot subcategory: alerts x-stackQL-resource: alerts + /orgs/{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. + > [!NOTE] + > This operation supports both server-to-server and user-to-server access. + Unauthorized 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 + x-stackQL-resource: 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. + + > [!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] + } + ``` + 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 + x-stackQL-resource: repository_access + /orgs/{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: + - '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. + 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 + x-stackQL-resource: repository_access /orgs/{org}/dependabot/secrets: get: summary: List organization secrets @@ -702,6 +879,7 @@ paths: - $ref: '#/components/parameters/dependabot-alert-comma-separated-has' - $ref: '#/components/parameters/dependabot-alert-comma-separated-assignees' - $ref: '#/components/parameters/dependabot-alert-scope' + - $ref: '#/components/parameters/dependabot-alert-relationship' - $ref: '#/components/parameters/dependabot-alert-sort' - $ref: '#/components/parameters/direction' - $ref: '#/components/parameters/pagination-before' @@ -823,8 +1001,25 @@ paths: Usernames to assign to this Dependabot Alert. Pass one or more user logins to _replace_ the set of assignees on this alert. Send an empty array (`[]`) to clear all assignees from the alert. + To assign an AI agent, include the bot login (for example, `copilot-swe-agent[bot]`). items: type: string + agent_assignment: + type: object + description: |- + Parameters for AI agent assignment. Only used when an agent bot login is + included in `assignees`. Ignored when no agent is being assigned. + properties: + custom_instructions: + type: string + description: Custom instructions for the agent. + custom_agent: + type: string + description: A custom agent identifier. + model: + type: string + description: The model to use for the agent. + additionalProperties: false additionalProperties: false required: - state @@ -3145,6 +3340,16 @@ components: enum: - development - runtime + dependabot-alert-relationship: + name: relationship + in: query + description: |- + A comma-separated list of relationships of the vulnerable dependency to your project. If specified, only alerts with these relationships will be returned. + + > [!NOTE] + > We are rolling out support for dependency relationship across ecosystems. This value will be "unknown" for all dependencies in unsupported ecosystems. + schema: + type: string dependabot-alert-sort: name: sort in: query @@ -3294,6 +3499,7 @@ components: name: django manifest_path: path/to/requirements.txt scope: runtime + relationship: direct security_advisory: ghsa_id: GHSA-rf4j-j272-fj86 cve_id: CVE-2018-6188 @@ -3472,6 +3678,7 @@ components: name: ansible manifest_path: path/to/requirements.txt scope: runtime + relationship: direct security_advisory: ghsa_id: GHSA-8f4m-hccc-8qph cve_id: CVE-2021-20191 @@ -3788,6 +3995,7 @@ components: name: django manifest_path: path/to/requirements.txt scope: runtime + relationship: direct security_advisory: ghsa_id: GHSA-rf4j-j272-fj86 cve_id: CVE-2018-6188 @@ -3901,6 +4109,7 @@ components: name: ansible manifest_path: path/to/requirements.txt scope: runtime + relationship: direct security_advisory: ghsa_id: GHSA-8f4m-hccc-8qph cve_id: CVE-2021-20191 @@ -3982,6 +4191,7 @@ components: name: ansible manifest_path: path/to/requirements.txt scope: runtime + relationship: direct security_advisory: ghsa_id: GHSA-8f4m-hccc-8qph cve_id: CVE-2021-20191 @@ -4084,6 +4294,7 @@ components: name: django manifest_path: path/to/requirements.txt scope: runtime + relationship: direct security_advisory: ghsa_id: GHSA-rf4j-j272-fj86 cve_id: CVE-2018-6188 diff --git a/provider-dev/source/dependency_graph.yaml b/provider-dev/source/dependency_graph.yaml index ebd8b33..591c57d 100644 --- a/provider-dev/source/dependency_graph.yaml +++ b/provider-dev/source/dependency_graph.yaml @@ -30,17 +30,95 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/dependency-graph-diff' + 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 examples: default: $ref: '#/components/examples/diff-range-response' headers: Link: $ref: '#/components/headers/link' + '400': + $ref: '#/components/responses/bad_request' '403': $ref: '#/components/responses/dependency_review_forbidden' '404': $ref: '#/components/responses/not_found' + '500': + $ref: '#/components/responses/internal_error' + '503': + $ref: '#/components/responses/service_unavailable' x-github: githubCloudOnly: false category: dependency-graph @@ -81,6 +159,82 @@ paths: category: dependency-graph subcategory: sboms x-stackQL-resource: sboms + /repos/{owner}/{repo}/dependency-graph/sbom/fetch-report/{sbom_uuid}: + get: + summary: Fetch a software bill of materials (SBOM) for a repository. + description: |- + Fetches a previously generated software bill of materials (SBOM) for a repository. + When the SBOM is ready, the response is a 302 redirect to a temporary download URL for the SBOM in SPDX JSON format. + The generated SBOM report may be retained for up to one week from the original request. + The temporary download URL returned by this endpoint expires separately, and its expiry is set when the fetch request is made. + tags: + - dependency-graph + operationId: dependency-graph/fetch-sbom-report + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependency-graph/sboms#fetch-a-software-bill-of-materials-sbom-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - name: sbom_uuid + in: path + required: true + description: The unique identifier of the SBOM export. + schema: + type: string + responses: + '202': + description: SBOM is still being processed, no content is returned. + '302': + description: Redirects to a temporary download URL for the completed SBOM. + headers: + Location: + $ref: '#/components/headers/location' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + githubCloudOnly: false + category: dependency-graph + subcategory: sboms + x-stackQL-resource: sboms + /repos/{owner}/{repo}/dependency-graph/sbom/generate-report: + get: + summary: Request generation of a software bill of materials (SBOM) for a repository. + description: Triggers a job to generate a software bill of materials (SBOM) for a repository in SPDX JSON format. + tags: + - dependency-graph + operationId: dependency-graph/generate-sbom-report + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/dependency-graph/sboms#request-generation-of-a-software-bill-of-materials-sbom-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + responses: + '201': + description: Response + content: + application/json: + schema: + type: object + properties: + sbom_url: + type: string + description: URL to poll for the SBOM export result. + examples: + default: + $ref: '#/components/examples/dependency-graph-generate-sbom-report-response' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + githubCloudOnly: false + category: dependency-graph + subcategory: sboms + x-stackQL-resource: sboms /repos/{owner}/{repo}/dependency-graph/snapshots: post: summary: Create a snapshot of dependencies for a repository @@ -465,6 +619,29 @@ components: type: string status: type: string + 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 metadata: title: metadata description: User-defined metadata to store domain-specific information limited to 8 keys with scalar values. @@ -533,6 +710,15 @@ components: type: string additionalProperties: false responses: + bad_request: + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + application/scim+json: + schema: + $ref: '#/components/schemas/scim-error' dependency_review_forbidden: description: Response for a private repository when GitHub Advanced Security is not enabled, or if used against a fork content: @@ -545,6 +731,25 @@ components: application/json: schema: $ref: '#/components/schemas/basic-error' + internal_error: + description: Internal Error + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + service_unavailable: + description: Service unavailable + content: + application/json: + schema: + type: object + properties: + code: + type: string + message: + type: string + documentation_url: + type: string forbidden: description: Forbidden content: @@ -648,6 +853,9 @@ components: - relationshipType: DESCRIBES spdxElementId: SPDXRef-DOCUMENT relatedSpdxElement: SPDXRef-Repository + dependency-graph-generate-sbom-report-response: + value: + sbom_url: https://api.github.com/repos/github/example/dependency-graph/sbom/fetch-report/4bab1a7e-da63-4828-9488-44e0e01a7c1b dependency-graph-create-snapshot-request: value: version: 0 @@ -688,5 +896,9 @@ components: example: ; rel="next", ; rel="last" schema: type: string + location: + example: https://pipelines.actions.githubusercontent.com/OhgS4QRKqmgx7bKC27GKU83jnQjyeqG8oIMTge8eqtheppcmw8/_apis/pipelines/1/runs/176/signedlogcontent?urlExpires=2020-01-24T18%3A10%3A31.5729946Z&urlSigningMethod=HMACV1&urlSignature=agG73JakPYkHrh06seAkvmH7rBR4Ji4c2%2B6a2ejYh3E%3D + schema: + type: string servers: - url: https://api.github.com diff --git a/provider-dev/source/enterprise_teams.yaml b/provider-dev/source/enterprise_teams.yaml index 026e5b1..12988e5 100644 --- a/provider-dev/source/enterprise_teams.yaml +++ b/provider-dev/source/enterprise_teams.yaml @@ -92,6 +92,18 @@ paths: 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). + notification_setting: + type: string + description: | + The notification setting the team is set to. The options are: + + * `notifications_enabled` - team members receive notifications when the team is @mentioned. + * `notifications_disabled` - no one receives notifications. + + Default: `notifications_enabled` + enum: + - notifications_enabled + - notifications_disabled required: - name examples: @@ -203,6 +215,16 @@ paths: 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. + notification_setting: + type: string + description: | + The notification setting the team is set to. The options are: + + * `notifications_enabled` - team members receive notifications when the team is @mentioned. + * `notifications_disabled` - no one receives notifications. + enum: + - notifications_enabled + - notifications_disabled examples: default: value: @@ -303,6 +325,13 @@ components: updated_at: type: string format: date-time + notification_setting: + type: string + description: Whether team members will receive notifications when the team is mentioned. + example: notifications_enabled + enum: + - notifications_enabled + - notifications_disabled required: - id - url diff --git a/provider-dev/source/gists.yaml b/provider-dev/source/gists.yaml index 2f22fca..ecfb316 100644 --- a/provider-dev/source/gists.yaml +++ b/provider-dev/source/gists.yaml @@ -2263,6 +2263,12 @@ components: type: User site_admin: false truncated: false + x-github-breaking-changes: + - changeset: deprecate_beta_media_type + patch: + value: + user: null + version: '2026-03-10' headers: link: example: ; rel="next", ; rel="last" diff --git a/provider-dev/source/gitignore.yaml b/provider-dev/source/gitignore.yaml index 60ccc23..fcfad81 100644 --- a/provider-dev/source/gitignore.yaml +++ b/provider-dev/source/gitignore.yaml @@ -23,7 +23,10 @@ paths: schema: type: array items: - type: string + type: object + properties: + gitignore/get_all_template: + type: string examples: default: value: diff --git a/provider-dev/source/interactions.yaml b/provider-dev/source/interactions.yaml index ebe8e98..7883261 100644 --- a/provider-dev/source/interactions.yaml +++ b/provider-dev/source/interactions.yaml @@ -109,6 +109,146 @@ paths: category: interactions subcategory: orgs x-stackQL-resource: orgs + /orgs/{org}/interaction-limits/pulls/creation-cap: + get: + summary: Get pull request creation cap for an org + description: |- + Gets the pull request creation cap configuration for an organization. + The cap limits the total number of open pull requests a user can have across all public + repositories in the organization at one time. + + Only users with admin access to the organization can view the cap configuration. + tags: + - interactions + operationId: interactions/get-pull-request-creation-cap-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/interactions/orgs#get-pull-request-creation-cap-for-an-org + parameters: + - $ref: '#/components/parameters/org' + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + enabled: + type: boolean + description: Whether the pull request creation cap is enabled + max_open_pull_requests: + type: integer + description: The maximum number of open pull requests a user can have at one time + minimum: 1 + maximum: 1000 + required: + - enabled + - max_open_pull_requests + examples: + default: + summary: Response when cap is enabled + value: + enabled: true + max_open_pull_requests: 1 + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: interactions + subcategory: orgs + x-stackQL-resource: orgs + patch: + summary: Update pull request creation cap for an org + description: |- + Updates the pull request creation cap for an organization. The cap limits the total number + of open pull requests a user can have across all public repositories in the organization + at one time. + + Only users with admin access to the organization can configure the cap. + tags: + - interactions + operationId: interactions/update-pull-request-creation-cap-for-org + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/interactions/orgs#update-pull-request-creation-cap-for-an-org + parameters: + - $ref: '#/components/parameters/org' + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + enabled: + type: boolean + description: Whether the pull request creation cap is enabled + max_open_pull_requests: + type: integer + description: The maximum number of open pull requests a user can have at one time + minimum: 1 + maximum: 1000 + required: + - enabled + examples: + default: + summary: Example request body + value: + enabled: true + max_open_pull_requests: 1 + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + enabled: + type: boolean + description: Whether the pull request creation cap is enabled + max_open_pull_requests: + type: integer + description: The maximum number of open pull requests a user can have at one time + minimum: 1 + maximum: 1000 + required: + - enabled + - max_open_pull_requests + examples: + default: + summary: Response + value: + enabled: true + max_open_pull_requests: 1 + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: interactions + subcategory: orgs + x-stackQL-resource: orgs /repos/{owner}/{repo}/interaction-limits: get: summary: Get interaction restrictions for a repository @@ -220,6 +360,277 @@ paths: category: interactions subcategory: repos x-stackQL-resource: repos + /repos/{owner}/{repo}/interaction-limits/pulls/bypass-list: + get: + summary: Get pull request creation cap bypass list for a repository + description: |- + Lists the users that are on the pull request creation cap bypass list for a + repository. Users on this list can create pull requests regardless of any + configured pull request creation cap. + + Only users with maintainer permissions can view the bypass list. + tags: + - interactions + operationId: interactions/get-pull-request-bypass-list-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/interactions/repos#get-pull-request-creation-cap-bypass-list-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/simple-user' + examples: + default: + $ref: '#/components/examples/pull-request-bypass-list-items' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: interactions + subcategory: repos + x-stackQL-resource: repos + put: + summary: Add users to the pull request creation cap bypass list for a repository + description: |- + Adds users to the pull request creation cap bypass list for a repository. + Users on this list can create pull requests regardless of any configured + pull request creation cap. + + Only users with maintainer permissions can modify the bypass list. + You can add a maximum of 100 users per request. + The bypass list can only hold a maximum of 100 users. + tags: + - interactions + operationId: interactions/set-pull-request-bypass-list-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/interactions/repos#add-users-to-the-pull-request-creation-cap-bypass-list-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/interaction-limit-pull-request-bypass-list' + examples: + default: + summary: Example request body + value: + users: + - octocat + - monalisa + responses: + '204': + description: Response + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: interactions + subcategory: repos + x-stackQL-resource: repos + delete: + summary: Remove users from the pull request creation cap bypass list for a repository + description: |- + Removes users from the pull request creation cap bypass list for a repository. + Removed users will be subject to any configured pull request creation cap. + + Only users with maintainer permissions can modify the bypass list. + You can remove a maximum of 100 users per request. + tags: + - interactions + operationId: interactions/remove-pull-request-bypass-list-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/interactions/repos#remove-users-from-the-pull-request-creation-cap-bypass-list-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/interaction-limit-pull-request-bypass-list' + examples: + default: + summary: Example request body + value: + users: + - octocat + responses: + '204': + description: Response + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: interactions + subcategory: repos + x-stackQL-resource: repos + /repos/{owner}/{repo}/interaction-limits/pulls/creation-cap: + get: + summary: Get pull request creation cap for a repository + description: |- + Gets the pull request creation cap configuration for a repository. + The cap limits the number of open pull requests a user can have at one time. + + Only users with admin access to the repository can view the cap configuration. + tags: + - interactions + operationId: interactions/get-pull-request-creation-cap-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/interactions/repos#get-pull-request-creation-cap-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + enabled: + type: boolean + description: Whether the pull request creation cap is enabled + max_open_pull_requests: + type: integer + description: The maximum number of open pull requests a user can have at one time + minimum: 1 + maximum: 1000 + required: + - enabled + - max_open_pull_requests + examples: + default: + summary: Response when cap is enabled + value: + enabled: true + max_open_pull_requests: 1 + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: interactions + subcategory: repos + x-stackQL-resource: repos + patch: + summary: Update pull request creation cap for a repository + description: |- + Updates the pull request creation cap for a repository. The cap limits the number + of open pull requests a user can have at one time. + + Only users with admin access to the repository can configure the cap. + tags: + - interactions + operationId: interactions/update-pull-request-creation-cap-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/interactions/repos#update-pull-request-creation-cap-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + enabled: + type: boolean + description: Whether the pull request creation cap is enabled + max_open_pull_requests: + type: integer + description: The maximum number of open pull requests a user can have at one time + minimum: 1 + maximum: 1000 + required: + - enabled + examples: + default: + summary: Example request body + value: + enabled: true + max_open_pull_requests: 1 + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + properties: + enabled: + type: boolean + description: Whether the pull request creation cap is enabled + max_open_pull_requests: + type: integer + description: The maximum number of open pull requests a user can have at one time + minimum: 1 + maximum: 1000 + required: + - enabled + - max_open_pull_requests + examples: + default: + summary: Response + value: + enabled: true + max_open_pull_requests: 1 + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '405': + description: Method Not Allowed + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: interactions + subcategory: repos + x-stackQL-resource: repos /user/interaction-limits: get: summary: Get interaction restrictions for your public repositories @@ -352,6 +763,133 @@ components: $ref: '#/components/schemas/interaction-expiry' required: - limit + basic-error: + title: Basic Error + description: Basic Error + type: object + properties: + message: + type: string + documentation_url: + type: string + url: + type: string + status: + type: string + 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 + interaction-limit-pull-request-bypass-list: + title: Interaction Limits Pull Request Bypass List + description: A list of user logins to add or remove from the pull request creation cap bypass list. + type: object + properties: + users: + description: A list of user logins to add or remove from the bypass list. + type: array + items: + type: string + example: + - octocat + - monalisa + required: + - users 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. @@ -416,6 +954,18 @@ components: application/json: schema: $ref: '#/components/schemas/validation-error' + forbidden: + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + not_found: + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' parameters: org: name: org @@ -449,6 +999,26 @@ components: limit: collaborators_only origin: repository expires_at: '2018-08-17T04:18:39Z' + pull-request-bypass-list-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 interaction-limit-user: value: limit: collaborators_only diff --git a/provider-dev/source/issues.yaml b/provider-dev/source/issues.yaml index 32c2bee..3676485 100644 --- a/provider-dev/source/issues.yaml +++ b/provider-dev/source/issues.yaml @@ -350,6 +350,20 @@ paths: required: false schema: type: string + - name: issue_field_values + description: |- + A comma-separated list of issue field filters in `field_slug:value` format. + Only issues matching all specified field values are returned. + Requires issue fields to be enabled for the repository. Issue fields are + not available for user-owned repositories, and field availability for + organization-owned public repositories depends on the organization's + visibility settings. For example, `priority:Urgent,severity:High` filters + issues where the `priority` field is `Urgent` AND the `severity` field is + `High`. + in: query + required: false + schema: + type: string - $ref: '#/components/parameters/labels' - name: sort description: What to sort results by. @@ -460,6 +474,27 @@ paths: 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 + issue_field_values: + type: array + description: An array of issue field values to set on this issue. Each field value must include the field ID and the value to set. Issue fields are only available for organization-owned repositories with the feature enabled. Field values are silently dropped otherwise. + items: + type: object + properties: + field_id: + type: integer + description: The ID of the issue field to set + value: + oneOf: + - type: string + - type: number + - type: array + items: + type: string + description: The value to set for the field. For multi-select fields, provide an array of option names. + required: + - field_id + - value + additionalProperties: false 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._' @@ -974,6 +1009,9 @@ paths: nullable: true description: The reason for the state change. Ignored unless `state` is changed. example: not_planned + duplicate_issue_id: + type: integer + description: The ID of the issue to mark as the canonical duplicate when `state_reason` is `duplicate`. The issue must exist and be accessible to the authenticated user. Ignored when `state_reason` is not `duplicate`. milestone: nullable: true type: string @@ -996,11 +1034,42 @@ paths: color: type: string nullable: true + rationale: + type: string + description: Optional reasoning for selecting this label. + suggest: + type: boolean + description: If `true`, the change is stored as a pending suggestion for human review rather than applied directly. + confidence: + type: string + description: The confidence level for this label choice. + enum: + - low + - medium + - high 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 + oneOf: + - type: string + - type: object + properties: + login: + type: string + rationale: + type: string + description: Optional reasoning for selecting this assignee. + suggest: + type: boolean + description: If `true`, the change is stored as a pending suggestion for human review rather than applied directly. + confidence: + type: string + description: The confidence level for this assignee choice. + enum: + - low + - medium + - high issue_field_values: type: array description: An array of issue field values to set on this issue. Each field value must include the field ID and the value to set. Only users with push access can set field values for issues @@ -1014,16 +1083,51 @@ paths: oneOf: - type: string - type: number - description: The value to set for the field + - type: array + items: + type: string + description: The value to set for the field. For multi-select fields, provide an array of option names. + rationale: + type: string + description: Optional reasoning for setting this field value. + suggest: + type: boolean + description: If `true`, the change is stored as a pending suggestion for human review rather than applied directly. + confidence: + type: string + description: The confidence level for this field value choice. + enum: + - low + - medium + - high required: - field_id - value additionalProperties: false 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. + description: The issue type to associate with this issue. Only users with push access can set the type for issues. Without push access to the repository, type changes are silently dropped. nullable: true + type: string example: Epic + properties: + value: + type: string + description: The name of the issue type to associate with this issue, or `null` to remove the current issue type. + nullable: true + example: Epic + rationale: + type: string + description: Optional reasoning for selecting this type. + suggest: + type: boolean + description: If `true`, the change is stored as a pending suggestion for human review rather than applied directly. + confidence: + type: string + description: The confidence level for this type choice. + enum: + - low + - medium + - high examples: default: value: @@ -1041,7 +1145,388 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/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' + 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 + pinned_comment: + $ref: '#/components/schemas/nullable-issue-comment' + issue_dependencies_summary: + $ref: '#/components/schemas/issue-dependencies-summary' + issue_field_values: + type: array + items: + $ref: '#/components/schemas/issue-field-value' + suggestions: + type: object + description: | + Pending suggestions for each suggestible field (`type`, + `issue_field_values`, `labels`, `assignees`, `state`) the + request touched. Omitted for fields not in the request or + with no pending or ignored suggestions. Items tagged + `ignored` are echoes of the current request's inputs that + were not persisted as pending suggestions. + properties: + type: + type: array + items: + type: object + properties: + value: + type: string + rationale: + type: string + suggest: + type: boolean + confidence: + type: string + enum: + - low + - medium + - high + ignored: + type: boolean + ignored_reason: + type: string + enum: + - already_applied + - issue_already_closed + issue_field_values: + type: array + items: + type: object + properties: + field_id: + type: integer + value: + oneOf: + - type: string + - type: number + - type: array + items: + type: string + rationale: + type: string + suggest: + type: boolean + confidence: + type: string + enum: + - low + - medium + - high + ignored: + type: boolean + ignored_reason: + type: string + enum: + - already_applied + - issue_already_closed + labels: + type: array + items: + type: object + properties: + name: + type: string + rationale: + type: string + suggest: + type: boolean + confidence: + type: string + enum: + - low + - medium + - high + ignored: + type: boolean + ignored_reason: + type: string + enum: + - already_applied + - issue_already_closed + assignees: + type: array + items: + type: object + properties: + login: + type: string + rationale: + type: string + suggest: + type: boolean + confidence: + type: string + enum: + - low + - medium + - high + ignored: + type: boolean + ignored_reason: + type: string + enum: + - already_applied + - issue_already_closed + state: + type: array + items: + type: object + properties: + value: + type: string + state_reason: + type: string + duplicate_issue_id: + type: integer + rationale: + type: string + suggest: + type: boolean + confidence: + type: string + enum: + - low + - medium + - high + ignored: + type: boolean + ignored_reason: + type: string + enum: + - already_applied + - issue_already_closed + 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 + x-github-breaking-changes: + - changeset: deprecate_beta_media_type + patch: + properties: + pull_request: + type: object + properties: + merged_at: + nullable: false + diff_url: + nullable: false + html_url: + nullable: false + patch_url: + nullable: false + url: + nullable: false + type: object + version: '2026-03-10' + - changeset: remove_singular_assignee_from_issues_and_pull_requests + patch: + properties: + assignee: null + required: + - 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 + type: object + version: '2026-03-10' examples: default: $ref: '#/components/examples/issue' @@ -1099,7 +1584,28 @@ paths: 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 + oneOf: + - type: string + - type: object + properties: + login: + type: string + description: The login of the user to assign. + rationale: + type: string + description: Optional reasoning for adding this assignee. + suggest: + type: boolean + description: If `true`, the assignee is stored as a pending suggestion for human review rather than applied directly. + confidence: + type: string + description: The confidence level for this assignee choice. + enum: + - low + - medium + - high + required: + - login examples: default: value: @@ -1648,22 +2154,89 @@ paths: category: issues subcategory: issue-field-values x-stackQL-resource: issue_field_values - /repos/{owner}/{repo}/issues/{issue_number}/labels: - get: - summary: List labels for an issue - description: Lists all labels for an issue. + post: + summary: Add issue field values to an issue + description: |- + Add custom field values to an issue. You can set values for organization-level issue fields that have been defined for the repository's organization. + Adding an empty array will clear all existing field values for the issue. + + This endpoint supports the following field data types: + - **`text`**: String values for text fields + - **`single_select`**: Option names for single-select fields (must match an existing option name) + - **`number`**: Numeric values for number fields + - **`date`**: ISO 8601 date strings for date fields + + Only users with push access to the repository can add issue field values. If you don't have the proper permissions, you'll receive a `403 Forbidden` response. + + 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)." tags: - issues - operationId: issues/list-labels-on-issue + operationId: issues/add-issue-field-values externalDocs: description: API method documentation - url: https://docs.github.com/rest/issues/labels#list-labels-for-an-issue + url: https://docs.github.com/rest/issues/issue-field-values#add-issue-field-values-to-an-issue parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' - $ref: '#/components/parameters/issue-number' - - $ref: '#/components/parameters/per-page' - - $ref: '#/components/parameters/page' + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + issue_field_values: + type: array + description: An array of issue field values to add to this issue. Each field value must include the field ID and the value to set. + items: + type: object + properties: + field_id: + type: integer + description: The ID of the issue field to set + example: 123 + value: + oneOf: + - type: string + description: The value to set for text, single_select, or date fields + - type: number + description: The value to set for number fields + - type: array + items: + type: string + description: The value to set for multi_select fields (array of option names) + description: |- + The value to set for the field. The type depends on the field's data type: + - For text fields: provide a string value + - For single_select fields: provide the option name as a string (must match an existing option) + - For number fields: provide a numeric value + - For multi_select fields: provide an array of option names (must match existing options) + - For date fields: provide an ISO 8601 date string + example: Critical + required: + - field_id + - value + additionalProperties: false + maxItems: 25 + examples: + default: + summary: Add multiple field values + value: + issue_field_values: + - field_id: 123 + value: Critical + - field_id: 456 + value: 5 + - field_id: 789 + value: '2024-12-31' + single-field: + summary: Add a single field value + value: + issue_field_values: + - field_id: 123 + value: High Priority responses: '200': description: Response @@ -1672,73 +2245,301 @@ paths: schema: type: array items: - $ref: '#/components/schemas/label' + $ref: '#/components/schemas/issue-field-value' examples: default: - $ref: '#/components/examples/label-items' - headers: - Link: - $ref: '#/components/headers/link' - '301': - $ref: '#/components/responses/moved_permanently' + $ref: '#/components/examples/issue-field-value-items' + '400': + $ref: '#/components/responses/bad_request' + '403': + $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/not_found' - '410': - $ref: '#/components/responses/gone' + '422': + $ref: '#/components/responses/validation_failed' + '503': + $ref: '#/components/responses/service_unavailable' x-github: + triggersNotification: true githubCloudOnly: false enabledForGitHubApps: true category: issues - subcategory: labels - x-stackQL-resource: labels - post: - summary: Add labels to an issue - description: Adds labels to an issue. + subcategory: issue-field-values + x-stackQL-resource: issue_field_values + put: + summary: Set issue field values for an issue + description: |- + Set custom field values for an issue, replacing any existing values. You can set values for organization-level issue fields that have been defined for the repository's organization. + + This endpoint supports the following field data types: + - **`text`**: String values for text fields + - **`single_select`**: Option names for single-select fields (must match an existing option name) + - **`number`**: Numeric values for number fields + - **`date`**: ISO 8601 date strings for date fields + + This operation will replace all existing field values with the provided ones. If you want to add field values without replacing existing ones, use the `POST` endpoint instead. + + Only users with push access to the repository can set issue field values. If you don't have the proper permissions, you'll receive a `403 Forbidden` response. + + 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)." tags: - issues - operationId: issues/add-labels + operationId: issues/set-issue-field-values externalDocs: description: API method documentation - url: https://docs.github.com/rest/issues/labels#add-labels-to-an-issue + url: https://docs.github.com/rest/issues/issue-field-values#set-issue-field-values-for-an-issue parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' - $ref: '#/components/parameters/issue-number' requestBody: - required: false + required: true content: application/json: schema: type: object properties: - labels: + issue_field_values: type: array - minItems: 1 - description: The names of the labels to add to the issue's existing labels. You can also pass an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. To replace all of the labels for an issue, use "[Set labels for an issue](https://docs.github.com/rest/issues/labels#set-labels-for-an-issue)." + description: An array of issue field values to set for this issue. Each field value must include the field ID and the value to set. All existing field values will be replaced. items: - type: string - items: - type: string - properties: - name: - type: string - required: - - name - examples: - default: - value: - labels: - - bug - - enhancement - responses: - '200': - description: Response - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/label' + type: object + properties: + field_id: + type: integer + description: The ID of the issue field to set + example: 123 + value: + oneOf: + - type: string + description: The value to set for text, single_select, or date fields + - type: number + description: The value to set for number fields + description: |- + The value to set for the field. The type depends on the field's data type: + - For text fields: provide a string value + - For single_select fields: provide the option name as a string (must match an existing option) + - For number fields: provide a numeric value + - For date fields: provide an ISO 8601 date string + example: Critical + required: + - field_id + - value + additionalProperties: false + maxItems: 25 + examples: + default: + summary: Set multiple field values + value: + issue_field_values: + - field_id: 123 + value: Critical + - field_id: 456 + value: 5 + - field_id: 789 + value: '2024-12-31' + single-field: + summary: Set a single field value + value: + issue_field_values: + - field_id: 123 + value: High Priority + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/issue-field-value' + examples: + default: + $ref: '#/components/examples/issue-field-value-items' + '400': + $ref: '#/components/responses/bad_request' + '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: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: issue-field-values + x-stackQL-resource: issue_field_values + /repos/{owner}/{repo}/issues/{issue_number}/issue-field-values/{issue_field_id}: + delete: + summary: Delete an issue field value from an issue + description: |- + Remove a specific custom field value from an issue. + + Only users with push access to the repository can delete issue field values. If you don't have the proper permissions, you'll receive a `403 Forbidden` response. + + If the specified field does not have a value set on the issue, this operation will return a `404` error. + + 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)." + tags: + - issues + operationId: issues/delete-issue-field-value + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/issue-field-values#delete-an-issue-field-value-from-an-issue + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/issue-number' + - $ref: '#/components/parameters/issue-field-id' + responses: + '204': + description: Issue field value deleted successfully + '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: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: issue-field-values + x-stackQL-resource: issue_field_values + /repos/{owner}/{repo}/issues/{issue_number}/labels: + get: + summary: List labels for an issue + description: Lists all labels for an issue. + tags: + - issues + operationId: issues/list-labels-on-issue + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/labels#list-labels-for-an-issue + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/issue-number' + - $ref: '#/components/parameters/per-page' + - $ref: '#/components/parameters/page' + responses: + '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' + '301': + $ref: '#/components/responses/moved_permanently' + '404': + $ref: '#/components/responses/not_found' + '410': + $ref: '#/components/responses/gone' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: labels + x-stackQL-resource: labels + post: + summary: Add labels to an issue + description: Adds labels to an issue. + tags: + - issues + operationId: issues/add-labels + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/labels#add-labels-to-an-issue + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/issue-number' + requestBody: + required: false + content: + application/json: + schema: + type: object + properties: + labels: + type: array + minItems: 1 + description: The labels to add to the issue's existing labels. You can also pass an `array` of labels directly, but GitHub recommends passing an object with the `labels` key. To replace all of the labels for an issue, use "[Set labels for an issue](https://docs.github.com/rest/issues/labels#set-labels-for-an-issue)." + items: + oneOf: + - type: string + - type: object + properties: + name: + type: string + description: The name of the label to add. + rationale: + type: string + description: Optional reasoning for adding this label. + suggest: + type: boolean + description: If `true`, the label is stored as a pending suggestion for human review rather than applied directly. + confidence: + type: string + description: The confidence level for this label choice. + enum: + - low + - medium + - high + required: + - name + items: + type: string + properties: + name: + type: string + rationale: + type: string + description: Optional reasoning for adding this label. + suggest: + type: boolean + description: If `true`, the label is stored as a pending suggestion for human review rather than applied directly. + confidence: + type: string + description: The confidence level for this label choice. + enum: + - low + - medium + - high + required: + - name + examples: + default: + value: + labels: + - bug + - enhancement + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/label' examples: default: $ref: '#/components/examples/label-items' @@ -2079,6 +2880,8 @@ paths: type: string '400': $ref: '#/components/responses/bad_request' + '403': + $ref: '#/components/responses/forbidden' '404': $ref: '#/components/responses/not_found' x-github: @@ -2272,20 +3075,54 @@ paths: category: issues subcategory: sub-issues x-stackQL-resource: sub_issues - /repos/{owner}/{repo}/issues/{issue_number}/timeline: + /repos/{owner}/{repo}/issues/{issue_number}/suggestions: get: - summary: List timeline events for an issue - description: List all timeline events for an issue. + summary: List issue suggestions + description: |- + Lists the suggestions on an issue. A suggestion is an agent-proposed change to an issue's type, labels, fields, assignees, or closed state that a maintainer can approve or dismiss. + + By default only pending suggestions are returned. Use `state=all` to return suggestions in every state, or `state=` to filter to a single state. Use `action=` to return only suggestions for a specific change. + + This endpoint is only available while the issue suggestions feature is enabled for the repository, and only supports issues, not pull requests. + + Requires triage access to the repository. tags: - issues - operationId: issues/list-events-for-timeline + operationId: issues/list-suggestions externalDocs: description: API method documentation - url: https://docs.github.com/rest/issues/timeline#list-timeline-events-for-an-issue + url: https://docs.github.com/rest/issues/issues#list-issue-suggestions parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' - $ref: '#/components/parameters/issue-number' + - name: state + in: query + required: false + description: Filter suggestions by their state. + schema: + type: string + enum: + - pending + - applied + - approved + - dismissed + - replaced + - invalidated + - all + default: pending + - name: action + in: query + required: false + description: Filter suggestions by the change they propose. + schema: + type: string + enum: + - set_type + - add_label + - add_field + - add_assignee + - close_issue - $ref: '#/components/parameters/per-page' - $ref: '#/components/parameters/page' responses: @@ -2296,40 +3133,174 @@ paths: schema: type: array items: - $ref: '#/components/schemas/timeline-issue-events' + $ref: '#/components/schemas/issue-suggestion' examples: default: - $ref: '#/components/examples/timeline-issue-events' + $ref: '#/components/examples/issue-suggestions' headers: Link: $ref: '#/components/headers/link' '404': $ref: '#/components/responses/not_found' - '410': - $ref: '#/components/responses/gone' + '422': + $ref: '#/components/responses/validation_failed' x-github: githubCloudOnly: false enabledForGitHubApps: true category: issues - subcategory: timeline - x-stackQL-resource: timeline - /repos/{owner}/{repo}/labels: - get: - summary: List labels for a repository - description: Lists all labels for a repository. + subcategory: issues + x-stackQL-resource: issues + /repos/{owner}/{repo}/issues/{issue_number}/suggestions/{suggestion_id}/approve: + post: + summary: Approve an issue suggestion + description: |- + Approves a pending suggestion on an issue. Applies the proposed change (creating the corresponding timeline event), transitions the suggestion to `approved`, and dismisses any competing pending suggestions for the same change. + + Requires triage access to the repository. Approving a suggestion also requires permission to perform the change it applies (for example, setting the issue type, adding a label or assignee, or closing the issue); this only affects fine-grained access tokens and GitHub Apps whose permissions are narrower than the triage role. This endpoint only supports issues, not pull requests. tags: - issues - operationId: issues/list-labels-for-repo + operationId: issues/approve-suggestion externalDocs: description: API method documentation - url: https://docs.github.com/rest/issues/labels#list-labels-for-a-repository + url: https://docs.github.com/rest/issues/issues#approve-an-issue-suggestion parameters: - $ref: '#/components/parameters/owner' - $ref: '#/components/parameters/repo' - - $ref: '#/components/parameters/per-page' - - $ref: '#/components/parameters/page' - responses: - '200': + - $ref: '#/components/parameters/issue-number' + - name: suggestion_id + in: path + required: true + description: The unique identifier of the suggestion. + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/issue-suggestion' + examples: + default: + $ref: '#/components/examples/issue-suggestion' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: issues + x-stackQL-resource: issues + /repos/{owner}/{repo}/issues/{issue_number}/suggestions/{suggestion_id}/dismiss: + post: + summary: Dismiss an issue suggestion + description: |- + Dismisses a pending suggestion on an issue. Transitions the suggestion to `dismissed` without applying any change or creating a timeline event. + + Requires triage access to the repository. This endpoint only supports issues, not pull requests. + tags: + - issues + operationId: issues/dismiss-suggestion + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/issues#dismiss-an-issue-suggestion + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/issue-number' + - name: suggestion_id + in: path + required: true + description: The unique identifier of the suggestion. + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/issue-suggestion' + examples: + default: + $ref: '#/components/examples/issue-suggestion' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: issues + x-stackQL-resource: issues + /repos/{owner}/{repo}/issues/{issue_number}/timeline: + get: + summary: List timeline events for an issue + description: List all timeline events for an issue. + tags: + - issues + operationId: issues/list-events-for-timeline + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/timeline#list-timeline-events-for-an-issue + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/issue-number' + - $ref: '#/components/parameters/per-page' + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/issue-timeline-exclude' + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/timeline-issue-events' + examples: + default: + $ref: '#/components/examples/timeline-issue-events' + headers: + Link: + $ref: '#/components/headers/link' + '400': + $ref: '#/components/responses/bad_request' + '404': + $ref: '#/components/responses/not_found' + '410': + $ref: '#/components/responses/gone' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: issues + subcategory: timeline + x-stackQL-resource: timeline + /repos/{owner}/{repo}/labels: + get: + summary: List labels for a repository + description: Lists all labels for a repository. + tags: + - issues + operationId: issues/list-labels-for-repo + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/issues/labels#list-labels-for-a-repository + 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: @@ -2821,84 +3792,69 @@ paths: category: issues subcategory: labels x-stackQL-resource: labels - /repositories/{repository_id}/issues/{issue_number}/issue-field-values: - post: - summary: Add issue field values to an issue + /user/issues: + get: + summary: List user account issues assigned to the authenticated user description: |- - Add custom field values to an issue. You can set values for organization-level issue fields that have been defined for the repository's organization. - Adding an empty array will clear all existing field values for the issue. + List issues across owned and member repositories assigned to the authenticated user. - This endpoint supports the following field data types: - - **`text`**: String values for text fields - - **`single_select`**: Option names for single-select fields (must match an existing option name) - - **`number`**: Numeric values for number fields - - **`date`**: ISO 8601 date strings for date fields + > [!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. - Only users with push access to the repository can add issue field values. If you don't have the proper permissions, you'll receive a `403 Forbidden` response. + 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/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)." + - **`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`. tags: - issues - operationId: issues/add-issue-field-values + operationId: issues/list-for-authenticated-user externalDocs: description: API method documentation - url: https://docs.github.com/rest/issues/issue-field-values#add-issue-field-values-to-an-issue + url: https://docs.github.com/rest/issues/issues#list-user-account-issues-assigned-to-the-authenticated-user parameters: - - $ref: '#/components/parameters/repository-id' - - $ref: '#/components/parameters/issue-number' - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - issue_field_values: - type: array - description: An array of issue field values to add to this issue. Each field value must include the field ID and the value to set. - items: - type: object - properties: - field_id: - type: integer - description: The ID of the issue field to set - example: 123 - value: - oneOf: - - type: string - description: The value to set for text, single_select, or date fields - - type: number - description: The value to set for number fields - description: |- - The value to set for the field. The type depends on the field's data type: - - For text fields: provide a string value - - For single_select fields: provide the option name as a string (must match an existing option) - - For number fields: provide a numeric value - - For date fields: provide an ISO 8601 date string - example: Critical - required: - - field_id - - value - additionalProperties: false - maxItems: 25 - examples: - default: - summary: Add multiple field values - value: - issue_field_values: - - field_id: 123 - value: Critical - - field_id: 456 - value: 5 - - field_id: 789 - value: '2024-12-31' - single-field: - summary: Add a single field value - value: - issue_field_values: - - field_id: 123 - value: High Priority + - 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 + - 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: 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: '200': description: Response @@ -2906,257 +3862,16 @@ paths: application/json: schema: type: array - description: The current issue field values for this issue after adding the new values items: - $ref: '#/components/schemas/issue-field-value' + $ref: '#/components/schemas/issue' examples: default: - $ref: '#/components/examples/issue-field-value-items' - '400': - $ref: '#/components/responses/bad_request' - '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: - triggersNotification: true - githubCloudOnly: false - enabledForGitHubApps: true - category: issues - subcategory: issue-field-values - x-stackQL-resource: issue_field_values - put: - summary: Set issue field values for an issue - description: |- - Set custom field values for an issue, replacing any existing values. You can set values for organization-level issue fields that have been defined for the repository's organization. - - This endpoint supports the following field data types: - - **`text`**: String values for text fields - - **`single_select`**: Option names for single-select fields (must match an existing option name) - - **`number`**: Numeric values for number fields - - **`date`**: ISO 8601 date strings for date fields - - This operation will replace all existing field values with the provided ones. If you want to add field values without replacing existing ones, use the `POST` endpoint instead. - - Only users with push access to the repository can set issue field values. If you don't have the proper permissions, you'll receive a `403 Forbidden` response. - - 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)." - tags: - - issues - operationId: issues/set-issue-field-values - externalDocs: - description: API method documentation - url: https://docs.github.com/rest/issues/issue-field-values#set-issue-field-values-for-an-issue - parameters: - - $ref: '#/components/parameters/repository-id' - - $ref: '#/components/parameters/issue-number' - requestBody: - required: true - content: - application/json: - schema: - type: object - properties: - issue_field_values: - type: array - description: An array of issue field values to set for this issue. Each field value must include the field ID and the value to set. All existing field values will be replaced. - items: - type: object - properties: - field_id: - type: integer - description: The ID of the issue field to set - example: 123 - value: - oneOf: - - type: string - description: The value to set for text, single_select, or date fields - - type: number - description: The value to set for number fields - description: |- - The value to set for the field. The type depends on the field's data type: - - For text fields: provide a string value - - For single_select fields: provide the option name as a string (must match an existing option) - - For number fields: provide a numeric value - - For date fields: provide an ISO 8601 date string - example: Critical - required: - - field_id - - value - additionalProperties: false - maxItems: 25 - examples: - default: - summary: Set multiple field values - value: - issue_field_values: - - field_id: 123 - value: Critical - - field_id: 456 - value: 5 - - field_id: 789 - value: '2024-12-31' - single-field: - summary: Set a single field value - value: - issue_field_values: - - field_id: 123 - value: High Priority - responses: - '200': - description: Response - content: - application/json: - schema: - type: array - description: The current issue field values for this issue after setting the new values - items: - $ref: '#/components/schemas/issue-field-value' - examples: - default: - $ref: '#/components/examples/issue-field-value-items' - '400': - $ref: '#/components/responses/bad_request' - '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: - triggersNotification: true - githubCloudOnly: false - enabledForGitHubApps: true - category: issues - subcategory: issue-field-values - x-stackQL-resource: issue_field_values - /repositories/{repository_id}/issues/{issue_number}/issue-field-values/{issue_field_id}: - delete: - summary: Delete an issue field value from an issue - description: |- - Remove a specific custom field value from an issue. - - Only users with push access to the repository can delete issue field values. If you don't have the proper permissions, you'll receive a `403 Forbidden` response. - - If the specified field does not have a value set on the issue, this operation will return a `404` error. - - 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)." - tags: - - issues - operationId: issues/delete-issue-field-value - externalDocs: - description: API method documentation - url: https://docs.github.com/rest/issues/issue-field-values#delete-an-issue-field-value-from-an-issue - parameters: - - $ref: '#/components/parameters/repository-id' - - $ref: '#/components/parameters/issue-number' - - $ref: '#/components/parameters/issue-field-id' - responses: - '204': - description: Issue field value deleted successfully - '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: - triggersNotification: true - githubCloudOnly: false - enabledForGitHubApps: true - category: issues - subcategory: issue-field-values - x-stackQL-resource: issue_field_values - /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. - - > [!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`. - 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 - - 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: 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: - '200': - description: Response - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/issue' - examples: - default: - $ref: '#/components/examples/issue-with-repo-items' - headers: - Link: - $ref: '#/components/headers/link' - '304': - $ref: '#/components/responses/not_modified' + $ref: '#/components/examples/issue-with-repo-items' + headers: + Link: + $ref: '#/components/headers/link' + '304': + $ref: '#/components/responses/not_modified' '404': $ref: '#/components/responses/not_found' x-github: @@ -3570,6 +4285,8 @@ components: $ref: '#/components/schemas/reaction-rollup' pin: $ref: '#/components/schemas/nullable-pinned-issue-comment' + minimized: + $ref: '#/components/schemas/nullable-issue-comment-minimized' required: - id - node_id @@ -3634,6 +4351,20 @@ components: $ref: '#/components/schemas/issue-event-project-card' rename: $ref: '#/components/schemas/issue-event-rename' + issue_type: + $ref: '#/components/schemas/issue-type-webhook' + prev_issue_type: + $ref: '#/components/schemas/issue-type-webhook' + sub_issue: + $ref: '#/components/schemas/nullable-issue-reference' + parent_issue: + $ref: '#/components/schemas/nullable-issue-reference' + blocked_by: + $ref: '#/components/schemas/nullable-issue-reference' + blocking: + $ref: '#/components/schemas/nullable-issue-reference' + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' author_association: $ref: '#/components/schemas/author-association' lock_reason: @@ -3685,6 +4416,8 @@ components: required: - name - color + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' assignee: $ref: '#/components/schemas/simple-user' assigner: @@ -3755,6 +4488,18 @@ components: - project_id - project_url - column_name + issue_type: + $ref: '#/components/schemas/issue-type-webhook' + prev_issue_type: + $ref: '#/components/schemas/issue-type-webhook' + sub_issue: + $ref: '#/components/schemas/nullable-issue-reference' + parent_issue: + $ref: '#/components/schemas/nullable-issue-reference' + blocked_by: + $ref: '#/components/schemas/nullable-issue-reference' + blocking: + $ref: '#/components/schemas/nullable-issue-reference' required: - label - id @@ -3773,6 +4518,12 @@ components: - review_requester - dismissed_review - lock_reason + - issue_type + - prev_issue_type + - sub_issue + - parent_issue + - blocked_by + - blocking issue-field-value: title: Issue Field Value description: A value assigned to an issue field @@ -3783,6 +4534,10 @@ components: type: integer format: int64 example: 1 + issue_field_name: + description: The human-readable name of the issue field. + type: string + example: Priority node_id: type: string example: IFT_GDKND @@ -3792,6 +4547,7 @@ components: enum: - text - single_select + - multi_select - number - date example: text @@ -3822,6 +4578,30 @@ components: - name - color nullable: true + multi_select_options: + description: Details about the selected options + type: array + items: + 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 @@ -3870,9 +4650,95 @@ components: - description - color - default - timeline-issue-events: - title: Timeline Event - description: Timeline Event + issue-suggestion: + title: Issue Suggestion + description: An agent-proposed change to an issue that a maintainer can approve or dismiss. + type: object + properties: + id: + type: integer + description: The unique identifier of the suggestion. + issue_id: + type: integer + description: The unique identifier of the issue the suggestion applies to. + action: + type: string + description: The kind of change proposed. + enum: + - set_type + - add_label + - add_field + - add_assignee + - close_issue + state: + type: string + description: The suggestion's lifecycle state. + enum: + - pending + - applied + - approved + - dismissed + - replaced + - invalidated + target_id: + type: integer + description: The identifier of the target the change applies to (issue type, label, field, assignee, or duplicate issue), when applicable. + nullable: true + target_value: + description: The proposed value, when applicable. An array for multi-select field suggestions. + nullable: true + type: string + items: + type: string + rationale: + type: string + description: The rationale the actor provided for the suggestion. + nullable: true + confidence: + type: string + description: The actor's confidence level in the suggestion. + enum: + - LOW + - MEDIUM + - HIGH + nullable: true + actor_id: + type: integer + description: The unique identifier of the actor that proposed the suggestion. + nullable: true + issue_event_id: + type: integer + description: The identifier of the timeline event created when the suggestion was approved, when applicable. + nullable: true + resolved_by: + type: integer + description: The unique identifier of the user who approved or dismissed the suggestion. + nullable: true + created_at: + type: string + description: The time the suggestion was created. + format: date-time + updated_at: + type: string + description: The time the suggestion was last updated. + format: date-time + required: + - id + - issue_id + - action + - state + - target_id + - target_value + - rationale + - confidence + - actor_id + - issue_event_id + - resolved_by + - created_at + - updated_at + timeline-issue-events: + title: Timeline Event + description: Timeline Event type: object properties: id: @@ -3905,6 +4771,8 @@ components: required: - name - color + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' milestone: type: object properties: @@ -3997,6 +4865,8 @@ components: $ref: '#/components/schemas/reaction-rollup' pin: $ref: '#/components/schemas/nullable-pinned-issue-comment' + minimized: + $ref: '#/components/schemas/nullable-issue-comment-minimized' source: type: object properties: @@ -4147,6 +5017,18 @@ components: state_reason: type: string nullable: true + issue_type: + $ref: '#/components/schemas/issue-type-webhook' + prev_issue_type: + $ref: '#/components/schemas/issue-type-webhook' + sub_issue: + $ref: '#/components/schemas/nullable-issue-reference' + parent_issue: + $ref: '#/components/schemas/nullable-issue-reference' + blocked_by: + $ref: '#/components/schemas/nullable-issue-reference' + blocking: + $ref: '#/components/schemas/nullable-issue-reference' required: - label - id @@ -4181,6 +5063,12 @@ components: - pull_request_url - _links - assignee + - issue_type + - prev_issue_type + - sub_issue + - parent_issue + - blocked_by + - blocking milestone: title: Milestone description: A collection of related issues and pull requests. @@ -4456,7 +5344,7 @@ components: nullable: true issue-type: title: Issue Type - description: The type of issue. + description: The type assigned to the issue. This is only present for issues in repositories where issue types are supported. type: object nullable: true properties: @@ -5405,6 +6293,8 @@ components: $ref: '#/components/schemas/reaction-rollup' pin: $ref: '#/components/schemas/nullable-pinned-issue-comment' + minimized: + $ref: '#/components/schemas/nullable-issue-comment-minimized' required: - id - node_id @@ -5509,6 +6399,19 @@ components: - pinned_at - pinned_by nullable: true + nullable-issue-comment-minimized: + title: Minimized Issue Comment + description: Details about why an issue comment was minimized. + type: object + properties: + reason: + description: The reason the comment was minimized. + type: string + nullable: true + example: low-quality + required: + - reason + nullable: true nullable-issue: title: Issue description: Issues are a great way to keep track of tasks, enhancements, and bugs for your projects. @@ -5825,6 +6728,17 @@ components: enum: - enterprise - organization + access_source: + description: |- + How the team's access to the repository was granted. This property is only + present when the team is returned in a repository context, such as + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs @@ -5912,6 +6826,102 @@ components: required: - from - to + issue-type-webhook: + title: Issue Type + description: The type of issue. + type: object + nullable: true + properties: + id: + type: integer + description: The unique identifier of the issue type. + name: + type: string + description: The name of the issue type. + color: + type: string + description: The color of the issue type. + enum: + - gray + - blue + - green + - yellow + - orange + - red + - pink + - purple + nullable: true + required: + - id + - name + nullable-issue-reference: + title: Issue Reference + description: A minimal reference to an issue linked from a timeline event (e.g. sub-issue, parent-issue, or dependency events). + type: object + nullable: true + properties: + number: + type: integer + description: The number of the referenced issue. + title: + type: string + description: The title of the referenced issue. + state: + type: string + description: The state of the referenced issue. + state_reason: + type: string + description: The reason for the referenced issue's state. + nullable: true + repository: + $ref: '#/components/schemas/simple-repository' + issue_type: + title: Issue Type + description: The type of the referenced 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. + color: + type: string + description: The color of the issue type. + nullable: true + required: + - id + - node_id + - name + required: + - number + - title + - state + - repository + - issue_type + nullable-issue-event-intent: + title: Issue Event Intent + description: The intent behind an agent's action on an issue, including the rationale and confidence. Present (and `null` when the event carried no agent intent) on supported event types while the issue suggestions feature is enabled for the repository; the property is omitted entirely when the feature is disabled or the event type does not support intent. + type: object + nullable: true + properties: + rationale: + type: string + description: The reasoning the agent provided for the change. + nullable: true + confidence: + type: string + description: The confidence level the agent had when performing this action. + enum: + - LOW + - MEDIUM + - HIGH + nullable: true labeled-issue-event: title: Labeled Issue Event description: Labeled Issue Event @@ -5947,6 +6957,8 @@ components: required: - name - color + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' required: - label - id @@ -5993,6 +7005,8 @@ components: required: - name - color + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' required: - label - id @@ -6033,6 +7047,8 @@ components: $ref: '#/components/schemas/simple-user' assigner: $ref: '#/components/schemas/simple-user' + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' required: - id - node_id @@ -6510,9 +7526,476 @@ components: - 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 + 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-type-added-issue-event: + title: Issue Type Added Issue Event + description: Issue Type Added 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' + issue_type: + $ref: '#/components/schemas/issue-type-webhook' + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' + required: + - issue_type + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + issue-type-removed-issue-event: + title: Issue Type Removed Issue Event + description: Issue Type 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' + prev_issue_type: + $ref: '#/components/schemas/issue-type-webhook' + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' + required: + - prev_issue_type + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + issue-type-changed-issue-event: + title: Issue Type Changed Issue Event + description: Issue Type Changed 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' + issue_type: + $ref: '#/components/schemas/issue-type-webhook' + prev_issue_type: + $ref: '#/components/schemas/issue-type-webhook' + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' + required: + - issue_type + - prev_issue_type + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + sub-issue-added-issue-event: + title: Sub-issue Added Issue Event + description: Sub-issue Added 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' + sub_issue: + $ref: '#/components/schemas/nullable-issue-reference' + required: + - sub_issue + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + sub-issue-removed-issue-event: + title: Sub-issue Removed Issue Event + description: Sub-issue 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' + sub_issue: + $ref: '#/components/schemas/nullable-issue-reference' + required: + - sub_issue + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + parent-issue-added-issue-event: + title: Parent-issue Added Issue Event + description: Parent-issue Added 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' + parent_issue: + $ref: '#/components/schemas/nullable-issue-reference' + required: + - parent_issue + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + parent-issue-removed-issue-event: + title: Parent-issue Removed Issue Event + description: Parent-issue 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' + parent_issue: + $ref: '#/components/schemas/nullable-issue-reference' + required: + - parent_issue + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + blocked-by-added-issue-event: + title: Blocked-by Added Issue Event + description: Blocked-by Added 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' + blocked_by: + $ref: '#/components/schemas/nullable-issue-reference' + required: + - blocked_by + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + blocked-by-removed-issue-event: + title: Blocked-by Removed Issue Event + description: Blocked-by 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' + blocked_by: + $ref: '#/components/schemas/nullable-issue-reference' + required: + - blocked_by + - id + - node_id + - url + - actor + - event + - commit_id + - commit_url + - created_at + - performed_via_github_app + blocking-added-issue-event: + title: Blocking Added Issue Event + description: Blocking Added Issue Event type: object properties: id: @@ -6535,30 +8018,10 @@ components: 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 + blocking: + $ref: '#/components/schemas/nullable-issue-reference' required: + - blocking - id - node_id - url @@ -6568,9 +8031,9 @@ components: - 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 + blocking-removed-issue-event: + title: Blocking Removed Issue Event + description: Blocking Removed Issue Event type: object properties: id: @@ -6592,31 +8055,11 @@ components: 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 + $ref: '#/components/schemas/nullable-integration' + blocking: + $ref: '#/components/schemas/nullable-issue-reference' required: + - blocking - id - node_id - url @@ -6694,6 +8137,8 @@ components: $ref: '#/components/schemas/reaction-rollup' pin: $ref: '#/components/schemas/nullable-pinned-issue-comment' + minimized: + $ref: '#/components/schemas/nullable-issue-comment-minimized' required: - event - actor @@ -6999,6 +8444,8 @@ components: $ref: '#/components/schemas/nullable-integration' assignee: $ref: '#/components/schemas/simple-user' + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' required: - id - node_id @@ -7076,6 +8523,8 @@ components: state_reason: type: string nullable: true + intent: + $ref: '#/components/schemas/nullable-issue-event-intent' required: - id - node_id @@ -7257,6 +8706,255 @@ components: - slug - type nullable: true + 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 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. @@ -7855,23 +9553,22 @@ components: required: true schema: type: integer - milestone-number: - name: milestone_number - description: The number that identifies the milestone. + issue-field-id: + name: issue_field_id + description: The unique identifier of the issue field. in: path required: true schema: type: integer - repository-id: - name: repository_id - description: The unique identifier of the repository. - in: path - required: true + issue-timeline-exclude: + name: exclude + in: query + description: A comma-separated list of timeline event names to exclude from the response. schema: - type: integer - issue-field-id: - name: issue_field_id - description: The unique identifier of the issue field. + type: string + milestone-number: + name: milestone_number + description: The number that identifies the milestone. in: path required: true schema: @@ -8435,6 +10132,12 @@ components: site_admin: false author_association: COLLABORATOR state_reason: completed + x-github-breaking-changes: + - changeset: remove_singular_assignee_from_issues_and_pull_requests + patch: + - op: remove + path: /value/assignee + version: '2026-03-10' issue-comment-items: value: - id: 1 @@ -8465,6 +10168,7 @@ components: updated_at: '2011-04-14T16:00:49Z' issue_url: https://api.github.com/repos/octocat/Hello-World/issues/1347 author_association: COLLABORATOR + minimized: null issue-comment: value: id: 1 @@ -8496,6 +10200,7 @@ components: issue_url: https://api.github.com/repos/octocat/Hello-World/issues/1347 author_association: COLLABORATOR pin: null + minimized: null issue-comment-pinned: value: id: 1 @@ -9088,6 +10793,12 @@ components: site_admin: false author_association: COLLABORATOR state_reason: completed + x-github-breaking-changes: + - changeset: remove_singular_assignee_from_issues_and_pull_requests + patch: + - op: remove + path: /value/assignee + version: '2026-03-10' issue-event-for-issue-items: value: - id: 1 @@ -9123,10 +10834,12 @@ components: issue-field-value-items: value: - issue_field_id: 1 + issue_field_name: DRI node_id: IFT_GDKND data_type: text value: DRI - issue_field_id: 2 + issue_field_name: Priority node_id: IFSS_SADMS data_type: single_select value: 1 @@ -9135,13 +10848,27 @@ components: name: High color: red - issue_field_id: 3 + issue_field_name: Points node_id: IFN_POINTS data_type: number value: 42 - issue_field_id: 4 + issue_field_name: Due Date node_id: IFD_DUEDATE data_type: date value: '2025-12-25' + - issue_field_id: 5 + issue_field_name: Labels + node_id: IFMS_LABELS + data_type: multi_select + value: Frontend,Backend + multi_select_options: + - id: 1 + name: Frontend + color: blue + - id: 2 + name: Backend + color: green label-items: value: - id: 208045946 @@ -9167,6 +10894,49 @@ components: description: Something isn't working color: f29513 default: true + issue-suggestions: + value: + - id: 12 + issue_id: 4567 + action: add_label + state: pending + target_id: 208045946 + target_value: null + rationale: This looks like a bug report based on the stack trace in the description. + confidence: HIGH + actor_id: 41898282 + issue_event_id: null + resolved_by: null + created_at: '2026-06-01T14:20:00Z' + updated_at: '2026-06-01T14:20:00Z' + - id: 13 + issue_id: 4567 + action: set_type + state: pending + target_id: 3 + target_value: Bug + rationale: The report describes unexpected behaviour with reproduction steps. + confidence: MEDIUM + actor_id: 41898282 + issue_event_id: null + resolved_by: null + created_at: '2026-06-01T14:21:00Z' + updated_at: '2026-06-01T14:21:00Z' + issue-suggestion: + value: + id: 12 + issue_id: 4567 + action: add_label + state: approved + target_id: 208045946 + target_value: null + rationale: This looks like a bug report based on the stack trace in the description. + confidence: HIGH + actor_id: 41898282 + issue_event_id: 6430295168 + resolved_by: 583231 + created_at: '2026-06-01T14:20:00Z' + updated_at: '2026-06-01T15:05:00Z' timeline-issue-events: value: - id: 6430295168 diff --git a/provider-dev/source/meta.yaml b/provider-dev/source/meta.yaml index 7de404b..e286c12 100644 --- a/provider-dev/source/meta.yaml +++ b/provider-dev/source/meta.yaml @@ -36,7 +36,7 @@ paths: 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/)." - The API's response also includes a list of GitHub's domain names. + The API's response also includes a list of GitHub's domain names, and the public keys used by GitHub to sign commits made through the web UI. The values shown in the documentation's response are example values. You must always query the API directly to get the latest values. @@ -118,9 +118,10 @@ paths: schema: type: array items: - type: string - format: date - example: '2021-01-01' + type: object + properties: + meta/get_all_version: + type: string examples: default: value: @@ -416,6 +417,12 @@ components: type: string example: - 192.0.2.1 + commit_signing_keys: + type: array + items: + type: string + example: + - ABCDEFGHIJKLMNOPQRSTUVWXYZ domains: type: object properties: @@ -443,6 +450,12 @@ components: type: string example: - example.com + storage: + type: array + items: + type: string + example: + - example.com actions: type: array items: @@ -584,6 +597,8 @@ components: - 192.0.2.1 copilot: - 192.0.2.1 + commit_signing_keys: + - ABCDEFGHIJKLMNOPQRSTUVWXYZ domains: website: - '*.example.com' diff --git a/provider-dev/source/migrations.yaml b/provider-dev/source/migrations.yaml index 0620bb9..d89e03a 100644 --- a/provider-dev/source/migrations.yaml +++ b/provider-dev/source/migrations.yaml @@ -451,7 +451,7 @@ paths: default: value: vcs: subversion - vcs_url: http://svn.mycompany.com/svn/myproject + vcs_url: http://svn.example.com/svn/myproject vcs_username: octocat vcs_password: secret responses: @@ -3704,7 +3704,7 @@ components: value: vcs: subversion use_lfs: true - vcs_url: http://svn.mycompany.com/svn/myproject + vcs_url: http://svn.example.com/svn/myproject status: complete status_text: Done has_large_files: true @@ -3719,7 +3719,7 @@ components: value: vcs: subversion use_lfs: true - vcs_url: http://svn.mycompany.com/svn/myproject + vcs_url: http://svn.example.com/svn/myproject status: importing status_text: Importing... has_large_files: false @@ -3736,7 +3736,7 @@ components: value: vcs: subversion use_lfs: true - vcs_url: http://svn.mycompany.com/svn/myproject + vcs_url: http://svn.example.com/svn/myproject status: detecting url: https://api.github.com/repos/octocat/socm/import html_url: https://import.github.com/octocat/socm/import @@ -3747,7 +3747,7 @@ components: value: vcs: tfvc use_lfs: true - vcs_url: http://tfs.mycompany.com/tfs/myproject + vcs_url: http://tfs.example.com/tfs/myproject tfvc_project: project1 status: importing status_text: Importing... @@ -3765,7 +3765,7 @@ components: value: vcs: subversion use_lfs: true - vcs_url: http://svn.mycompany.com/svn/myproject + vcs_url: http://svn.example.com/svn/myproject status: importing status_text: Importing... has_large_files: false diff --git a/provider-dev/source/oidc.yaml b/provider-dev/source/oidc.yaml index 59bd340..d29829c 100644 --- a/provider-dev/source/oidc.yaml +++ b/provider-dev/source/oidc.yaml @@ -301,6 +301,9 @@ paths: type: array items: type: string + use_immutable_subject: + description: Whether to opt in to the immutable OIDC subject claim format for the organization. When `true`, new OIDC tokens will use a stable, repository-ID-based `sub` claim instead of the name-based format. + type: boolean examples: default: $ref: '#/components/examples/oidc-custom-sub' @@ -364,6 +367,9 @@ components: type: array items: type: string + use_immutable_subject: + description: Whether to opt in to the immutable OIDC subject claim format for the organization. When `true`, new OIDC tokens will use a stable, repository-ID-based `sub` claim instead of the name-based format. + type: boolean required: - include_claim_keys empty-object: diff --git a/provider-dev/source/orgs.yaml b/provider-dev/source/orgs.yaml index 172c6f1..1c3f068 100644 --- a/provider-dev/source/orgs.yaml +++ b/provider-dev/source/orgs.yaml @@ -562,6 +562,10 @@ paths: 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. + Note: Artifacts are uniquely identified by the combination of their repository and digest fields. If two entries in the deployments + array resolve to the same repository and have identical digest fields but differing name and version fields, the endpoint will use + the artifact name and version from the record processed first, since a single artifact (identified by repository and digest) can + only have one name and version. tags: - orgs operationId: orgs/set-cluster-deployment-records @@ -604,24 +608,18 @@ paths: properties: name: type: string - description: | - The name of the artifact. Note that if multiple deployments have identical 'digest' parameter values, - the name parameter must also be identical across all entries. + description: The name of the artifact. 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, - the name and version parameters must also be identical across all entries. + 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. Note that if multiple deployments have identical 'digest' parameter values, - the version parameter must also be identical across all entries. + description: The artifact version. maxLength: 100 x-multi-segment: true example: 1.2.3 @@ -674,6 +672,14 @@ paths: - name - deployment_name - digest + partial_success: + type: boolean + default: false + description: | + When enabled, deployments associated with repositories the actor can write to are processed + while deployments associated with repositories that cannot be resolved or written to by the actor + are skipped and reported in the `errors` array. When false (the default), the endpoint returns + an error if any targeted repository cannot be resolved, the actor lacks write access, or no matching attestation can be found. return_records: type: boolean default: true @@ -694,7 +700,9 @@ paths: status: deployed deployment_name: deployment-pod tags: - runtime-risk: sensitive-data + owning-team: platform + runtime_risks: + - sensitive-data responses: '200': description: | @@ -716,6 +724,103 @@ paths: examples: default: $ref: '#/components/examples/artifact-deployment-record-list' + '207': + description: | + This response format is only returned when `partial_success` is set to true in the request body. + Successfully processed deployments are included in the `deployment_records` field. Records that could + not be processed and were skipped because of unresolvable repositories, missing actor permissions, or lack of a matching attestation are + included in the `errors` field. + content: + application/json: + schema: + type: object + properties: + total_count: + description: The number of deployment records created or updated. + type: integer + deployment_records: + type: array + items: + $ref: '#/components/schemas/artifact-deployment-record' + errors: + type: array + description: A list of errors for deployments that could not be processed. + items: + type: object + properties: + cause: + type: string + description: The reason the deployment failed processing. + enum: + - unauthorized + - not_found + deployment: + type: object + description: The deployment payload that could not be processed. + properties: + name: + type: string + description: The name of the artifact. + digest: + type: string + description: The digest of the artifact. + deployment_name: + type: string + description: The name of the deployment that failed processing. + version: + type: string + nullable: true + description: The version of the deployment. + status: + type: string + description: The deployment status. + github_repository: + type: string + nullable: true + description: The repository associated with the deployment. + tags: + type: object + additionalProperties: + type: string + description: Custom metadata tags for the deployment. + runtime_risks: + type: array + items: + type: string + description: Runtime risk classifications for the deployment. + required: + - total_count + examples: + partial_success: + value: + total_count: 1 + deployment_records: + - id: 42 + digest: sha256:1bb1e949e55dcefc6353e7b36c8897d2a107d8e8dca49d4e3c0ea8493fc0bc72 + logical_environment: prod + physical_environment: us-east-1a + cluster: production-cluster + deployment_name: deployment-pod + tags: + owning-team: platform + runtime_risks: + - sensitive-data + created_at: '2024-01-01T12:00:00Z' + updated_at: '2024-01-01T12:30:00Z' + attestation_id: 777 + errors: + - cause: unauthorized + deployment: + name: my-image + digest: sha256:5aa19f9a13f67a644f6d8528e2eb5cf64431e236df5dbbd44ff9b9e3f6fc6cb2 + deployment_name: restricted-deployment + version: 2.1.1 + status: deployed + github_repository: private-repo + tags: + owning-team: platform + runtime_risks: + - sensitive-data '403': description: Forbidden content: @@ -731,7 +836,278 @@ paths: - 123 - 345 '404': - $ref: '#/components/responses/not_found' + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + examples: + not_found: + value: + message: + cause: One or more repositories do not exist + repositories: + - repoA + - repoB + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata + x-stackQL-resource: artifact_metadata + /orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs: + post: + summary: Create a cluster deployment records job + description: |- + Create a background job to set deployment records for a given cluster. + Performs validation and permission checks synchronously, returning rejected + deployments immediately, then enqueues a background job for the actual + deployment updates. Use the companion GET endpoint to poll for job status. + tags: + - orgs + operationId: orgs/create-cluster-deployment-records-job + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#create-a-cluster-deployment-records-job + parameters: + - $ref: '#/components/parameters/org' + - name: cluster + in: path + description: The cluster name. + required: true + schema: + type: string + minLength: 1 + maxLength: 128 + pattern: ^[a-zA-Z0-9._-]+$ + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + logical_environment: + type: string + description: The stage of the deployment. + minLength: 1 + maxLength: 128 + physical_environment: + type: string + description: The physical region of the deployment. + maxLength: 128 + deployments: + type: array + description: The list of deployments to record. + maxItems: 5000 + items: + type: object + properties: + name: + type: string + description: The name of the artifact. + minLength: 1 + maxLength: 256 + 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. + maxLength: 100 + x-multi-segment: true + example: 1.2.3 + status: + type: string + description: The deployment status of the artifact. + default: deployed + enum: + - deployed + - decommissioned + deployment_name: + type: string + description: | + The unique identifier for the deployment represented by the new record. + minLength: 1 + maxLength: 256 + github_repository: + type: string + description: The name of the GitHub repository associated with the artifact. + 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: + owning-team: platform + runtime_risks: + - sensitive-data + responses: + '202': + description: | + Job created successfully. Authorized deployments will be processed in the background. + content: + application/json: + schema: + type: object + properties: + job_id: + description: The ID of the created job. + type: integer + errors: + description: Deployments that were rejected during authorization. + type: array + items: + type: string + description: (opaque JSON object) + required: + - job_id + examples: + default: + value: + job_id: 123 + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + '404': + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + '409': + description: A job is already in progress for this cluster. + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: orgs + subcategory: artifact-metadata + x-stackQL-resource: artifact_metadata + /orgs/{org}/artifacts/metadata/deployment-record/cluster/{cluster}/jobs/{job_id}: + get: + summary: Get cluster deployment records job status + description: Get the status and results of a previously created cluster deployment records job. + tags: + - orgs + operationId: orgs/get-cluster-deployment-records-job + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/orgs/artifact-metadata#get-cluster-deployment-records-job-status + parameters: + - $ref: '#/components/parameters/org' + - name: cluster + in: path + description: The cluster name. + required: true + schema: + type: string + minLength: 1 + maxLength: 128 + pattern: ^[a-zA-Z0-9._-]+$ + - name: job_id + in: path + description: The ID of the job. + required: true + schema: + type: integer + responses: + '200': + description: | + Job status retrieved successfully. + content: + application/json: + schema: + type: object + properties: + job_id: + description: The ID of the job. + type: integer + status: + description: The current status of the job. + type: string + enum: + - pending + - processing + - completed + - failed + started_at: + description: When the job started processing (only present when processing, completed, or failed). + type: string + format: date-time + total_count: + description: The number of records successfully mutated (only present when completed). + type: integer + errors: + description: Processing errors (only present when completed or failed). + type: array + items: + type: string + description: (opaque JSON object) + required: + - job_id + - status + examples: + default: + value: + job_id: 123 + status: completed + started_at: '2026-06-10T12:00:00Z' + total_count: 5 + '404': + description: Resource not found + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' x-github: githubCloudOnly: false enabledForGitHubApps: true @@ -786,11 +1162,13 @@ paths: pattern: ^https:// description: The URL where the artifact is stored. example: https://reg.example.com/artifactory/bar/libfoo-1.2.3 + maxLength: 152 path: type: string format: uri description: The path of the artifact. example: com/github/bar/libfoo-1.2.3 + maxLength: 512 registry_url: type: string format: uri @@ -798,10 +1176,12 @@ paths: description: The base URL of the artifact registry. example: https://reg.example.com/artifactory/ minLength: 1 + maxLength: 256 repository: type: string description: The repository name within the registry. example: bar + maxLength: 128 status: type: string description: The status of the artifact (e.g., active, inactive). @@ -946,9 +1326,9 @@ paths: get: 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. + List artifact storage records with a given subject digest for 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. + Results are filtered by the authenticated user's permissions; records for repositories the user cannot read are omitted. Fine-grained access tokens require the `artifact-metadata:read` permission. tags: - orgs operationId: orgs/list-artifact-storage-records @@ -2091,7 +2471,10 @@ paths: /orgs/{org}/insights/api/route-stats/{actor_type}/{actor_id}: get: summary: Get route stats by actor - description: Get API request count statistics for an actor broken down by route within a specified time frame. + description: |- + Get API request count statistics for an actor broken down by route within a specified time frame. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-route-stats-by-actor @@ -2115,7 +2498,29 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/api-insights-route-stats' + 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 examples: default: $ref: '#/components/examples/api-insights-route-stats' @@ -2127,7 +2532,10 @@ paths: /orgs/{org}/insights/api/subject-stats: get: 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. + description: |- + Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-subject-stats @@ -2149,7 +2557,26 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/api-insights-subject-stats' + 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 examples: default: $ref: '#/components/examples/api-insights-subject-stats' @@ -2161,7 +2588,10 @@ paths: /orgs/{org}/insights/api/summary-stats: get: 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. + description: |- + Get overall statistics of API requests made within an organization by all users and apps within a specified time frame. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats @@ -2190,7 +2620,10 @@ paths: /orgs/{org}/insights/api/summary-stats/users/{user_id}: get: summary: Get summary stats by user - description: Get overall statistics of API requests within the organization for a user. + description: |- + Get overall statistics of API requests within the organization for a user. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats-by-user @@ -2220,7 +2653,10 @@ paths: /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. + 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. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-summary-stats-by-actor @@ -2251,7 +2687,10 @@ paths: /orgs/{org}/insights/api/time-stats: get: summary: Get time stats - description: Get the number of API requests and rate-limited requests made within an organization over a specified time period. + description: |- + Get the number of API requests and rate-limited requests made within an organization over a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats @@ -2269,7 +2708,18 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/api-insights-time-stats' + type: array + items: + type: object + properties: + timestamp: + type: string + total_request_count: + type: integer + format: int64 + rate_limited_request_count: + type: integer + format: int64 examples: default: $ref: '#/components/examples/api-insights-time-stats' @@ -2281,7 +2731,10 @@ paths: /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. + description: |- + Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats-by-user @@ -2300,7 +2753,18 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/api-insights-time-stats' + type: array + items: + type: object + properties: + timestamp: + type: string + total_request_count: + type: integer + format: int64 + rate_limited_request_count: + type: integer + format: int64 examples: default: $ref: '#/components/examples/api-insights-time-stats' @@ -2312,7 +2776,10 @@ paths: /orgs/{org}/insights/api/time-stats/{actor_type}/{actor_id}: get: 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. + description: |- + Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-time-stats-by-actor @@ -2332,7 +2799,18 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/api-insights-time-stats' + type: array + items: + type: object + properties: + timestamp: + type: string + total_request_count: + type: integer + format: int64 + rate_limited_request_count: + type: integer + format: int64 examples: default: $ref: '#/components/examples/api-insights-time-stats' @@ -2344,7 +2822,10 @@ paths: /orgs/{org}/insights/api/user-stats/{user_id}: get: summary: Get user stats - description: Get API usage statistics within an organization for a user broken down by the type of access. + description: |- + Get API usage statistics within an organization for a user broken down by the type of access. + + Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. tags: - orgs operationId: api-insights/get-user-stats @@ -2367,7 +2848,34 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/api-insights-user-stats' + 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 examples: default: $ref: '#/components/examples/api-insights-user-stats' @@ -3544,7 +4052,6 @@ paths: application/json: schema: type: array - description: List of teams assigned to the organization role items: $ref: '#/components/schemas/team-role-assignment' examples: @@ -3590,7 +4097,6 @@ paths: application/json: schema: type: array - description: List of users assigned to the organization role items: $ref: '#/components/schemas/user-role-assignment' examples: @@ -5207,7 +5713,16 @@ paths: state: active responses: '200': - description: Response + description: The user's organization invitation was accepted synchronously. + content: + application/json: + schema: + $ref: '#/components/schemas/org-membership' + examples: + default: + $ref: '#/components/examples/org-membership-2' + '202': + description: The acceptance of the user's organization invitation is being processed asynchronously. content: application/json: schema: @@ -6618,6 +7133,17 @@ components: enum: - enterprise - organization + access_source: + description: |- + How the team's access to the repository was granted. This property is only + present when the team is returned in a repository context, such as + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs @@ -6667,6 +7193,7 @@ components: - text - date - single_select + - multi_select - number visibility: type: string @@ -6675,7 +7202,7 @@ components: - organization_members_only - all options: - description: Available options for single select fields. + description: Available options for single select and multi select fields. type: array items: type: object @@ -6749,6 +7276,7 @@ components: - text - date - single_select + - multi_select - number visibility: description: The visibility of the issue field. Can be `organization_members_only` (visible only within the organization) or `all` (visible to all users who can see issues). Only used when the visibility settings feature is enabled. Defaults to `organization_members_only`. @@ -6757,7 +7285,7 @@ components: - organization_members_only - all options: - description: Options for single select fields. Required when data_type is 'single_select'. + description: Options for select fields. Required when data_type is 'single_select' or 'multi_select'. type: array items: type: object @@ -6809,11 +7337,14 @@ components: - organization_members_only - all options: - description: Options for single select fields. Only applicable when updating single_select fields. + description: Options for select fields. Only applicable when updating single_select or multi_select fields. When provided, this array **replaces** the entire existing set of options rather than adding to or updating individual options. To retain or update an existing option, include it in the array with its `id`. Options sent without an `id` are treated as new options and may cause existing options to be deleted and recreated. type: array items: type: object properties: + id: + description: The id of an existing option to retain or update. Omit this when creating a new option. + type: integer name: description: Name of the option. type: string @@ -6842,7 +7373,7 @@ components: - priority issue-type: title: Issue Type - description: The type of issue. + description: The type assigned to the issue. This is only present for issues in repositories where issue types are supported. type: object nullable: true properties: @@ -8139,7 +8670,7 @@ components: app-permissions: title: App Permissions type: object - description: The permissions granted to the user access token. + description: The permissions granted to the fine-grained access token. properties: actions: type: string @@ -8171,6 +8702,12 @@ components: enum: - read - write + code_quality: + type: string + description: The level of permission to grant the access token to view and manage code quality data. + enum: + - read + - write codespaces: type: string description: The level of permission to grant the access token to create, edit, delete, and list Codespaces. @@ -8344,10 +8881,11 @@ components: 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: + - read - write organization_copilot_agent_settings: type: string - description: The level of permission to grant the access token to view and manage Copilot coding agent settings for an organization. + description: The level of permission to grant the access token to view and manage Copilot cloud agent settings for an organization. enum: - read - write @@ -9471,92 +10009,12 @@ components: 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 + - repository_id: 1 + bundle_url: https://tmastaging.blob.core.windows.net/attestations/1/2024/11/08/4.json.sn?se=2024-11-09T17%3A13%3A43Z&sig=jPSbbJnIEshUyCjBLU5Ykq0uuGc5UYxTZE1%2FhdBNMXk%3D&sp=r&spr=https%2Chttp&sr=b&st=2024-11-08T17%3A13%3A43Z&sv=2024-08-04 + initiator: user + - repository_id: 1 + bundle_url: https://tmastaging.blob.core.windows.net/attestations/1/2024/11/08/5.json.sn?se=2024-11-09T17%3A13%3A43Z&sig=jPSbbJnIEshUyCjBLU5Ykq0uuGc5UYxTZE1%2FhdBNMXk%3D&sp=r&spr=https%2Chttp&sr=b&st=2024-11-08T17%3A13%3A43Z&sv=2024-08-04 + initiator: user simple-user-items: value: - login: octocat @@ -9899,6 +10357,23 @@ components: color: green created_at: '2024-12-11T14:39:09Z' updated_at: '2024-12-11T14:39:09Z' + - id: 3 + node_id: IFMS_kwDNAd3NAZt + name: Categories + description: Issue categories + data_type: multi_select + options: + - id: 4 + name: Frontend + color: blue + - id: 5 + name: Backend + color: green + - id: 6 + name: Infrastructure + color: purple + created_at: '2024-12-11T14:39:09Z' + updated_at: '2024-12-11T14:39:09Z' issue-field: value: id: 512 diff --git a/provider-dev/source/private_registries.yaml b/provider-dev/source/private_registries.yaml index eff1319..3ac3522 100644 --- a/provider-dev/source/private_registries.yaml +++ b/provider-dev/source/private_registries.yaml @@ -61,7 +61,7 @@ paths: description: |- 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)." - For OIDC-based registries (`oidc_azure`, `oidc_aws`, or `oidc_jfrog`), the `encrypted_value` and `key_id` fields should be omitted. + For OIDC-based registries (`oidc_azure`, `oidc_aws`, `oidc_jfrog`, `oidc_cloudsmith`, or `oidc_gcp`), the `encrypted_value` and `key_id` fields should be omitted. OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. tags: @@ -130,7 +130,7 @@ paths: items: type: integer auth_type: - description: The authentication type for the private registry. Defaults to `token` if not specified. Use `oidc_azure`, `oidc_aws`, or `oidc_jfrog` for OIDC authentication. + description: The authentication type for the private registry. Defaults to `token` if not specified. Use `oidc_azure`, `oidc_aws`, `oidc_jfrog`, `oidc_cloudsmith`, or `oidc_gcp` for OIDC authentication. type: string enum: - token @@ -138,6 +138,8 @@ paths: - oidc_azure - oidc_aws - oidc_jfrog + - oidc_cloudsmith + - oidc_gcp tenant_id: description: The tenant ID of the Azure AD application. Required when `auth_type` is `oidc_azure`. type: string @@ -163,11 +165,26 @@ paths: description: The JFrog OIDC provider name. Required when `auth_type` is `oidc_jfrog`. type: string audience: - description: The OIDC audience. Optional for `oidc_aws` and `oidc_jfrog` auth types. + description: The OIDC audience. Optional for `oidc_aws`, `oidc_jfrog`, and `oidc_gcp`, and required for `oidc_cloudsmith` auth types. type: string identity_mapping_name: description: The JFrog identity mapping name. Optional for `oidc_jfrog` auth type. type: string + namespace: + description: The Cloudsmith organization namespace. Required when `auth_type` is `oidc_cloudsmith`. + type: string + service_slug: + description: The Cloudsmith service account slug. Required when `auth_type` is `oidc_cloudsmith`. + type: string + api_host: + description: The Cloudsmith API host. Optional for `oidc_cloudsmith` auth type. If omitted, `api.cloudsmith.io` is used by default. + type: string + workload_identity_provider: + description: The full resource name of the GCP Workload Identity Provider (e.g. `projects//locations/global/workloadIdentityPools//providers/`). Required when `auth_type` is `oidc_gcp`. + type: string + service_account: + description: The GCP service account email to impersonate. Optional for `oidc_gcp` auth type. If omitted, the federated token is used directly (direct WIF). + type: string required: - registry_type - url @@ -204,6 +221,25 @@ paths: visibility: all tenant_id: 12345678-1234-1234-1234-123456789012 client_id: abcdef01-2345-6789-abcd-ef0123456789 + org-private-registry-with-oidc-cloudsmith: + summary: Example of an OIDC private registry configuration using Cloudsmith + value: + registry_type: npm_registry + url: https://npm.cloudsmith.io/my-org/my-repo/ + auth_type: oidc_cloudsmith + visibility: all + namespace: my-org + service_slug: my-service-account + audience: https://github.com/my-org + org-private-registry-with-oidc-gcp: + summary: Example of an OIDC private registry configuration using Google Cloud Artifact Registry + value: + registry_type: docker_registry + url: https://us-docker.pkg.dev/my-project/my-repo + auth_type: oidc_gcp + visibility: all + workload_identity_provider: projects/123456789/locations/global/workloadIdentityPools/github-pool/providers/github-provider + service_account: dependabot@my-project.iam.gserviceaccount.com responses: '201': description: The organization private registry configuration @@ -315,7 +351,7 @@ paths: description: |- 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)." - For OIDC-based registries (`oidc_azure`, `oidc_aws`, or `oidc_jfrog`), the `encrypted_value` and `key_id` fields should be omitted. + For OIDC-based registries (`oidc_azure`, `oidc_aws`, `oidc_jfrog`, `oidc_cloudsmith`, or `oidc_gcp`), the `encrypted_value` and `key_id` fields should be omitted. OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. tags: @@ -393,6 +429,8 @@ paths: - oidc_azure - oidc_aws - oidc_jfrog + - oidc_cloudsmith + - oidc_gcp tenant_id: description: The tenant ID of the Azure AD application. Required when `auth_type` is `oidc_azure`. type: string @@ -418,11 +456,26 @@ paths: description: The JFrog OIDC provider name. Required when `auth_type` is `oidc_jfrog`. type: string audience: - description: The OIDC audience. Optional for `oidc_aws` and `oidc_jfrog` auth types. + description: The OIDC audience. Optional for `oidc_aws`, `oidc_jfrog`, and `oidc_gcp`, and required for `oidc_cloudsmith` auth types. type: string identity_mapping_name: description: The JFrog identity mapping name. Optional for `oidc_jfrog` auth type. type: string + namespace: + description: The Cloudsmith organization namespace. Required when `auth_type` is `oidc_cloudsmith`. + type: string + service_slug: + description: The Cloudsmith service account slug. Required when `auth_type` is `oidc_cloudsmith`. + type: string + api_host: + description: The Cloudsmith API host. Optional for `oidc_cloudsmith` auth type. If omitted, `api.cloudsmith.io` is used by default. + type: string + workload_identity_provider: + description: The full resource name of the GCP Workload Identity Provider (e.g. `projects//locations/global/workloadIdentityPools//providers/`). Required when `auth_type` is `oidc_gcp`. + type: string + service_account: + description: The GCP service account email to impersonate. Optional for `oidc_gcp` auth type. If omitted, the federated token is used directly (direct WIF). + type: string examples: secret-based-update: summary: Update a secret-based private registry @@ -518,6 +571,8 @@ components: - oidc_azure - oidc_aws - oidc_jfrog + - oidc_cloudsmith + - oidc_gcp type: string url: description: The URL of the private registry. @@ -569,6 +624,21 @@ components: identity_mapping_name: description: The JFrog identity mapping name. type: string + namespace: + description: The Cloudsmith organization namespace. + type: string + service_slug: + description: The Cloudsmith service account slug. + type: string + api_host: + description: The Cloudsmith API host. + type: string + workload_identity_provider: + description: The full resource name of the GCP Workload Identity Provider (e.g. `projects//locations/global/workloadIdentityPools//providers/`). + type: string + service_account: + description: The GCP service account email to impersonate. If omitted, the federated token is used directly (direct WIF). + type: string created_at: type: string format: date-time @@ -617,6 +687,8 @@ components: - oidc_azure - oidc_aws - oidc_jfrog + - oidc_cloudsmith + - oidc_gcp type: string url: description: The URL of the private registry. @@ -672,6 +744,21 @@ components: identity_mapping_name: description: The JFrog identity mapping name. type: string + namespace: + description: The Cloudsmith organization namespace. + type: string + service_slug: + description: The Cloudsmith service account slug. + type: string + api_host: + description: The Cloudsmith API host. + type: string + workload_identity_provider: + description: The full resource name of the GCP Workload Identity Provider (e.g. `projects//locations/global/workloadIdentityPools//providers/`). + type: string + service_account: + description: The GCP service account email to impersonate. If omitted, the federated token is used directly (direct WIF). + type: string created_at: type: string format: date-time diff --git a/provider-dev/source/projects.yaml b/provider-dev/source/projects.yaml index 7337afa..0a26dba 100644 --- a/provider-dev/source/projects.yaml +++ b/provider-dev/source/projects.yaml @@ -734,6 +734,38 @@ paths: - 123 - 456 - 789 + sort_by: + type: array + description: Sorting configuration for the view. Each element is a two-element array of `[field_id, direction]` where `direction` is `"asc"` or `"desc"`. Supports multiple sort criteria applied in order. + items: + type: array + minItems: 2 + maxItems: 2 + items: + oneOf: + - type: integer + - type: string + example: + - - 123 + - asc + - - 456 + - desc + group_by: + type: array + description: The field IDs to group items by (horizontal grouping). Supports a single field. The field must support grouping; fields such as `Title`, `Reviewers`, `Linked pull requests`, `Sub-issues progress`, `Tracked by`, and `Tracks` cannot be grouped on. + items: + type: integer + maxItems: 1 + example: + - 123 + vertical_group_by: + type: array + description: The field IDs to use as columns in `board` layout (vertical grouping). Supports a single field. The field must support grouping; fields such as `Title`, `Reviewers`, `Linked pull requests`, `Sub-issues progress`, `Tracked by`, and `Tracks` cannot be grouped on. + items: + type: integer + maxItems: 1 + example: + - 456 required: - name - layout @@ -975,6 +1007,38 @@ paths: - 123 - 456 - 789 + sort_by: + type: array + description: Sorting configuration for the view. Each element is a two-element array of `[field_id, direction]` where `direction` is `"asc"` or `"desc"`. Supports multiple sort criteria applied in order. + items: + type: array + minItems: 2 + maxItems: 2 + items: + oneOf: + - type: integer + - type: string + example: + - - 123 + - asc + - - 456 + - desc + group_by: + type: array + description: The field IDs to group items by (horizontal grouping). Supports a single field. The field must support grouping; fields such as `Title`, `Reviewers`, `Linked pull requests`, `Sub-issues progress`, `Tracked by`, and `Tracks` cannot be grouped on. + items: + type: integer + maxItems: 1 + example: + - 123 + vertical_group_by: + type: array + description: The field IDs to use as columns in `board` layout (vertical grouping). Supports a single field. The field must support grouping; fields such as `Title`, `Reviewers`, `Linked pull requests`, `Sub-issues progress`, `Tracked by`, and `Tracks` cannot be grouped on. + items: + type: integer + maxItems: 1 + example: + - 456 required: - name - layout @@ -2109,6 +2173,8 @@ components: - self auto_merge: $ref: '#/components/schemas/auto-merge' + stack: + $ref: '#/components/schemas/pull-request-stack' required: - assignee - closed_at @@ -2325,6 +2391,9 @@ components: projects-v2-field-iteration-configuration: type: object description: The configuration for iteration fields. + required: + - start_date + - duration properties: start_date: type: string @@ -2339,6 +2408,10 @@ components: items: type: object additionalProperties: false + required: + - title + - start_date + - duration properties: title: type: string @@ -3317,6 +3390,8 @@ components: $ref: '#/components/schemas/author-association' auto_merge: $ref: '#/components/schemas/auto-merge' + stack: + $ref: '#/components/schemas/pull-request-stack' draft: description: Indicates whether or not the pull request is a draft. example: false @@ -3671,7 +3746,7 @@ components: nullable: true issue-type: title: Issue Type - description: The type of issue. + description: The type assigned to the issue. This is only present for issues in repositories where issue types are supported. type: object nullable: true properties: @@ -4620,6 +4695,8 @@ components: $ref: '#/components/schemas/reaction-rollup' pin: $ref: '#/components/schemas/nullable-pinned-issue-comment' + minimized: + $ref: '#/components/schemas/nullable-issue-comment-minimized' required: - id - node_id @@ -4657,6 +4734,10 @@ components: type: integer format: int64 example: 1 + issue_field_name: + description: The human-readable name of the issue field. + type: string + example: Priority node_id: type: string example: IFT_GDKND @@ -4666,6 +4747,7 @@ components: enum: - text - single_select + - multi_select - number - date example: text @@ -4696,6 +4778,30 @@ components: - name - color nullable: true + multi_select_options: + description: Details about the selected options + type: array + items: + 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 @@ -4760,6 +4866,17 @@ components: enum: - enterprise - organization + access_source: + description: |- + How the team's access to the repository was granted. This property is only + present when the team is returned in a repository context, such as + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs @@ -4818,6 +4935,38 @@ components: - commit_title - commit_message nullable: true + pull-request-stack: + title: Pull Request Stack + description: The stack information associated with a pull request. + type: object + properties: + base: + type: object + properties: + ref: + type: string + description: The base ref of the stack this pull request belongs to. + sha: + type: string + description: The base SHA of the stack this pull request belongs to. + required: + - ref + - sha + size: + type: integer + description: The total number of pull requests in the stack. + position: + type: integer + description: The one-based position of this pull request within the stack, where 1 is the bottom of the stack. + id: + type: integer + description: The ID of the stack that this pull request belongs to. + number: + type: integer + description: The number of the stack that this pull request belongs to. + required: + - base + nullable: true nullable-license-simple: title: License Simple description: License Simple @@ -4921,6 +5070,19 @@ components: - pinned_at - pinned_by nullable: true + nullable-issue-comment-minimized: + title: Minimized Issue Comment + description: Details about why an issue comment was minimized. + type: object + properties: + reason: + description: The reason the comment was minimized. + type: string + nullable: true + example: low-quality + required: + - reason + nullable: true nullable-team-simple: title: Team Simple description: Groups of organization members that gives permissions on specified repositories. @@ -5383,17 +5545,13 @@ components: name: Sprint data_type: iteration iteration_configuration: - start_day: 1 + start_date: '2022-07-01' duration: 14 iterations: - - title: - raw: Sprint 1 - html: Sprint 1 + - title: Sprint 1 start_date: '2022-07-01' duration: 14 - - title: - raw: Sprint 2 - html: Sprint 2 + - title: Sprint 2 start_date: '2022-07-15' duration: 14 projects-v2-field-text: diff --git a/provider-dev/source/pulls.yaml b/provider-dev/source/pulls.yaml index b9948fc..b664b8e 100644 --- a/provider-dev/source/pulls.yaml +++ b/provider-dev/source/pulls.yaml @@ -982,6 +982,220 @@ paths: category: pulls subcategory: pulls x-stackQL-resource: pulls + /repos/{owner}/{repo}/pulls/{pull_number}/merge-async: + put: + summary: Merge a pull request asynchronously + description: |- + Merges a pull request into the base branch in the background. Merging in this way allows certain types of errors to be retried, and avoids the risk of timeouts for particularly complex merges. + + This is the required method for merging stacked PRs, but also supports unstacked PRs. When using this endpoint to merge a stacked pull request, all pull requests in the stack up to and including the requested PR will be merged into the base branch. + + The response includes a UUID that can be used to fetch the result of the merge. If another asynchronous merge request has already been made for this pull request, the UUID of that request will be returned instead with a 409 response status to indicate that the merge options may be different from those that were requested. If there isn't an existing asynchronous merge request, a 202 response status is used. + + If the pull request is already merged, the merge commit OID will be returned immediately with a 200 status. + + If the pull request cannot be merged (e.g. because it is closed, or still a draft) this result will be returned immediately with a 400 response status. Branch protection rules and repository rules are not run at this stage, only basic pull request state checks are performed. + tags: + - pulls + operationId: pulls/merge-async + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/pulls#merge-a-pull-request-asynchronously + x-github: + triggersNotification: true + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: pulls + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $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. If not provided, the current head of the PR at the time of the request will be used; if the PR is pushed in between the merge being requested and being executed, the merge will be cancelled. + merge_method: + type: string + description: The merge method to use. + enum: + - merge + - squash + - rebase + merge_action: + type: string + description: The action that will be taken to merge the pull request. `direct_merge` merges the pull request directly without using a merge queue; `merge_queue` adds the pull request to a merge queue; `default` selects the most appropriate option. + enum: + - default + - direct_merge + - merge_queue + examples: + default: + value: + commit_title: Fix race condition + commit_message: Avoids a race by trying to read the file and handling the exception if it does not exist. + sha: 6358cd125586d9def8c3e5943f23506202da81cc + merge_method: squash + merge_action: default + responses: + '200': + description: if the pull request was already merged, or is already in a merge queue + content: + application/json: + schema: + $ref: '#/components/schemas/pull-request-merge-async-result' + examples: + response-if-pull-request-was-already-merged: + summary: Already merged + value: + status: merged + details: + message: Pull request is already merged. + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + response-if-pull-request-is-already-enqueued: + summary: Already enqueued + value: + status: enqueued + details: + message: Pull request is already in the merge queue. + '202': + description: if the merge request was accepted and will run in the background + content: + application/json: + schema: + $ref: '#/components/schemas/pull-request-merge-async-result' + examples: + response-if-merge-request-was-accepted: + summary: Request accepted + value: + status: pending + details: + message: Merge request enqueued. + uuid: 630b9d5e-3f2a-4f7e-8b0c-2d5f9a8c1e42 + merge_method: merge + merge_action: default + expected_head_sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + '400': + description: if the pull request is not ready to be merged, e.g. because it is closed + content: + application/json: + schema: + $ref: '#/components/schemas/pull-request-merge-async-result' + examples: + response-if-pull-request-is-not-ready-to-be-merged: + value: + status: failed + details: + message: Pull request is closed. + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '409': + description: if there is an existing merge request already enqueued for this pull request + content: + application/json: + schema: + $ref: '#/components/schemas/pull-request-merge-async-result' + examples: + response-if-a-merge-request-already-exists: + value: + status: pending + details: + message: A merge request already exists for this pull request. + uuid: 630b9d5e-3f2a-4f7e-8b0c-2d5f9a8c1e42 + merge_method: squash + merge_action: default + expected_head_sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + '422': + $ref: '#/components/responses/validation_failed' + x-stackQL-resource: pulls + /repos/{owner}/{repo}/pulls/{pull_number}/merge-async/{uuid}: + get: + summary: Get the result of an asynchronous merge + description: |- + Fetches the current result of an asynchronous merge request, identified by the UUID that was returned when the merge was requested. + + While the merge is still queued, the response includes the UUID, merge method, and expected head SHA of the request. Once the merge has completed, the response reports whether it was merged, including the merge commit OID on success or a message describing why it could not be merged on failure. + + The result of an asynchronous merge request is retained for 24 hours after its most recent update. After this window the request expires and this endpoint returns a `404` response for its UUID. + tags: + - pulls + operationId: pulls/get-merge-async-result + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/pulls#get-the-result-of-an-asynchronous-merge + x-github: + triggersNotification: false + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: pulls + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/pull-number' + - name: uuid + description: The UUID of the asynchronous merge request, as returned when the merge was requested. + in: path + required: true + schema: + type: string + responses: + '200': + description: the current result of the asynchronous merge request + content: + application/json: + schema: + $ref: '#/components/schemas/pull-request-merge-async-result' + examples: + response-if-the-merge-is-still-queued: + summary: Still queued + value: + status: pending + details: + message: Merge request is in progress. + uuid: 630b9d5e-3f2a-4f7e-8b0c-2d5f9a8c1e42 + merge_method: merge + merge_action: default + expected_head_sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + response-if-the-pull-request-is-enqueued: + summary: Enqueued in the merge queue + value: + status: enqueued + details: + message: Pull request is in the merge queue. + response-if-the-merge-succeeded: + summary: Merge succeeded + value: + status: merged + details: + message: Pull request was merged. + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + response-if-the-merge-failed: + summary: Merge failed + value: + status: failed + details: + message: 'Merge conflict: the pull request could not be merged.' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-stackQL-resource: pulls /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers: get: summary: Get all requested reviewers for a pull request @@ -1677,6 +1891,932 @@ paths: category: pulls subcategory: pulls x-stackQL-resource: pulls + /repos/{owner}/{repo}/stacks: + get: + summary: List pull request stacks + description: Lists pull request stacks in a repository. + tags: + - pulls + operationId: pull-request-stacks/list + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/stacks#list-pull-request-stacks + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - name: pull_request + description: Filter to the stack containing this repository pull request number. + in: query + required: false + schema: + type: integer + - $ref: '#/components/parameters/per-page' + - $ref: '#/components/parameters/page' + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/pull-request-stack-minimal' + examples: + default: + value: + - id: 9876543 + number: 42 + node_id: S_kwDOABCDEF4AAAAA + url: https://api.github.com/repos/octocat/hello-world/stacks/42 + base: + ref: main + pull_requests: + - number: 101 + state: open + draft: false + merged_at: null + head: + ref: user-model + sha: aaa1111aaa1111aaa1111aaa1111aaa1111aaa11 + - number: 102 + state: open + draft: false + merged_at: null + head: + ref: user-api + sha: bbb2222bbb2222bbb2222bbb2222bbb2222bbb22 + open: true + created_at: '2026-04-15T10:00:00Z' + '404': + $ref: '#/components/responses/not_found' + '422': + $ref: '#/components/responses/validation_failed' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: stacks + x-stackQL-resource: stacks + post: + summary: Create a pull request stack + description: |- + Creates a stack from an ordered list of pull request numbers. Provide the pull + request numbers from the bottom of the stack to the top. Each pull request's + base ref must match the previous pull request's head ref. + tags: + - pulls + operationId: pull-request-stacks/create + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/stacks#create-a-pull-request-stack + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - pull_requests + properties: + pull_requests: + type: array + description: An ordered list of pull request numbers forming the stack from bottom to top. + items: + type: integer + minItems: 2 + maxItems: 100 + examples: + default: + value: + pull_requests: + - 101 + - 102 + - 103 + responses: + '201': + description: Response + content: + application/json: + schema: + type: object + required: + - id + - number + - node_id + - url + - base + - open + - created_at + - pull_requests + properties: + id: + type: integer + number: + type: integer + node_id: + type: string + url: + type: string + format: uri + base: + type: object + required: + - ref + properties: + ref: + type: string + open: + type: boolean + description: Whether the stack has any open pull request. False when all pull requests are merged or closed. + created_at: + type: string + format: date-time + pull_requests: + type: array + items: + $ref: '#/components/schemas/pull-request-stack-pull-request' + examples: + default: + value: + id: 9876543 + number: 42 + node_id: S_kwDOABCDEF4AAAAA + url: https://api.github.com/repos/octocat/hello-world/stacks/42 + base: + ref: main + open: true + created_at: '2026-04-15T10:00:00Z' + pull_requests: + - id: 100001 + node_id: PR_kwDOABCDEF4AAAAA + title: Add user model + state: open + merged_at: null + draft: false + html_url: https://github.com/octocat/hello-world/pull/101 + 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 + user_view_type: public + number: 101 + url: https://api.github.com/repos/octocat/hello-world/pulls/101 + head: + ref: user-model + sha: aaa1111aaa1111aaa1111aaa1111aaa1111aaa11 + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + base: + ref: main + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + - id: 100002 + node_id: PR_kwDOABCDEF4AAAAB + title: Add user API + state: open + merged_at: null + draft: true + html_url: https://github.com/octocat/hello-world/pull/102 + 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 + user_view_type: public + number: 102 + url: https://api.github.com/repos/octocat/hello-world/pulls/102 + head: + ref: user-api + sha: bbb2222bbb2222bbb2222bbb2222bbb2222bbb22 + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + base: + ref: user-model + sha: aaa1111aaa1111aaa1111aaa1111aaa1111aaa11 + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + '404': + $ref: '#/components/responses/not_found' + '422': + description: |- + Validation failed. Returned when the request references pull requests that + don't exist in the repository, or when the pull requests can't form a + valid stack. + content: + application/json: + schema: + 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: + oneOf: + - type: string + - type: integer + examples: + missing_pull_requests: + summary: One or more pull request numbers don't exist in the repository + value: + message: Validation Failed + documentation_url: https://docs.github.com/rest/pulls/stacks#create-a-pull-request-stack + errors: + - resource: Stack + field: pull_requests + code: missing + value: + - 123 + not_a_linear_stack: + summary: The pull requests don't form a linear stack + value: + message: Pull requests must form a stack, where each PR's base ref is the previous PR's head ref + documentation_url: https://docs.github.com/rest/pulls/stacks#create-a-pull-request-stack + already_stacked: + summary: A pull request already belongs to a stack + value: + message: 'Pull request #123 is already part of a stack' + documentation_url: https://docs.github.com/rest/pulls/stacks#create-a-pull-request-stack + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: stacks + x-stackQL-resource: stacks + /repos/{owner}/{repo}/stacks/{stack_number}: + get: + summary: Get a pull request stack + description: Gets a pull request stack by providing its stack number. + tags: + - pulls + operationId: pull-request-stacks/get + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/stacks#get-a-pull-request-stack + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - name: stack_number + description: The number that identifies the pull request stack. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - id + - number + - node_id + - url + - base + - open + - created_at + - pull_requests + properties: + id: + type: integer + number: + type: integer + node_id: + type: string + url: + type: string + format: uri + base: + type: object + required: + - ref + properties: + ref: + type: string + open: + type: boolean + description: Whether the stack has any open pull request. False when all pull requests are merged or closed. + created_at: + type: string + format: date-time + pull_requests: + type: array + items: + $ref: '#/components/schemas/pull-request-stack-pull-request' + examples: + default: + value: + id: 9876543 + number: 42 + node_id: S_kwDOABCDEF4AAAAA + url: https://api.github.com/repos/octocat/hello-world/stacks/42 + base: + ref: main + open: true + created_at: '2026-04-15T10:00:00Z' + pull_requests: + - id: 100001 + node_id: PR_kwDOABCDEF4AAAAA + title: Add user model + state: open + merged_at: null + draft: false + html_url: https://github.com/octocat/hello-world/pull/101 + 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 + user_view_type: public + number: 101 + url: https://api.github.com/repos/octocat/hello-world/pulls/101 + head: + ref: user-model + sha: aaa1111aaa1111aaa1111aaa1111aaa1111aaa11 + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + base: + ref: main + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + - id: 100002 + node_id: PR_kwDOABCDEF4AAAAB + title: Add user API + state: open + merged_at: null + draft: true + html_url: https://github.com/octocat/hello-world/pull/102 + 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 + user_view_type: public + number: 102 + url: https://api.github.com/repos/octocat/hello-world/pulls/102 + head: + ref: user-api + sha: bbb2222bbb2222bbb2222bbb2222bbb2222bbb22 + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + base: + ref: user-model + sha: aaa1111aaa1111aaa1111aaa1111aaa1111aaa11 + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + '404': + $ref: '#/components/responses/not_found' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: stacks + x-stackQL-resource: stacks + /repos/{owner}/{repo}/stacks/{stack_number}/add: + post: + summary: Add pull requests to a pull request stack + description: |- + Appends an ordered list of pull request numbers onto the top of an existing + stack. Provide only the pull requests you want to add, from the current top of + the stack upward. The first new pull request's base ref must match the current + top pull request's head ref. + tags: + - pulls + operationId: pull-request-stacks/add + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/stacks#add-pull-requests-to-a-pull-request-stack + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - name: stack_number + description: The number that identifies the pull request stack. + in: path + required: true + schema: + type: integer + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - pull_requests + properties: + pull_requests: + type: array + description: An ordered list of pull request numbers to append to the stack, from the current top upward. + items: + type: integer + minItems: 1 + maxItems: 100 + examples: + default: + value: + pull_requests: + - 104 + - 102 + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - id + - number + - node_id + - url + - base + - open + - created_at + - pull_requests + properties: + id: + type: integer + number: + type: integer + node_id: + type: string + url: + type: string + format: uri + base: + type: object + required: + - ref + properties: + ref: + type: string + open: + type: boolean + description: Whether the stack has any open pull request. False when all pull requests are merged or closed. + created_at: + type: string + format: date-time + pull_requests: + type: array + items: + $ref: '#/components/schemas/pull-request-stack-pull-request' + examples: + default: + value: + id: 9876543 + number: 42 + node_id: S_kwDOABCDEF4AAAAA + url: https://api.github.com/repos/octocat/hello-world/stacks/42 + base: + ref: main + open: true + created_at: '2026-04-15T10:00:00Z' + pull_requests: + - id: 100001 + node_id: PR_kwDOABCDEF4AAAAA + title: Add user model + state: open + merged_at: null + draft: false + html_url: https://github.com/octocat/hello-world/pull/101 + 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 + user_view_type: public + number: 101 + url: https://api.github.com/repos/octocat/hello-world/pulls/101 + head: + ref: user-model + sha: aaa1111aaa1111aaa1111aaa1111aaa1111aaa11 + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + base: + ref: main + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + - id: 100002 + node_id: PR_kwDOABCDEF4AAAAB + title: Add user API + state: open + merged_at: null + draft: true + html_url: https://github.com/octocat/hello-world/pull/102 + 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 + user_view_type: public + number: 102 + url: https://api.github.com/repos/octocat/hello-world/pulls/102 + head: + ref: user-api + sha: bbb2222bbb2222bbb2222bbb2222bbb2222bbb22 + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + base: + ref: user-model + sha: aaa1111aaa1111aaa1111aaa1111aaa1111aaa11 + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + '404': + $ref: '#/components/responses/not_found' + '409': + description: Conflict. Returned when the stack is being modified by another request. + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + examples: + being_modified: + summary: Another request is currently modifying the stack + value: + message: Stack is currently being modified + documentation_url: https://docs.github.com/rest/pulls/stacks#add-pull-requests-to-a-pull-request-stack + status: '409' + '422': + description: |- + Validation failed. Returned when the request references pull requests that + don't exist in the repository, or when the pull requests can't be appended + to the stack. + content: + application/json: + schema: + 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: + oneOf: + - type: string + - type: integer + examples: + missing_pull_requests: + summary: One or more pull request numbers don't exist in the repository + value: + message: Validation Failed + documentation_url: https://docs.github.com/rest/pulls/stacks#add-pull-requests-to-a-pull-request-stack + errors: + - resource: Stack + field: pull_requests + code: missing + value: + - 123 + not_a_linear_stack: + summary: The pull requests don't continue the stack linearly + value: + message: Pull requests must form a stack, where each PR's base ref is the previous PR's head ref + documentation_url: https://docs.github.com/rest/pulls/stacks#add-pull-requests-to-a-pull-request-stack + already_stacked: + summary: A pull request already belongs to a stack + value: + message: 'Pull request #123 is already part of a stack' + documentation_url: https://docs.github.com/rest/pulls/stacks#add-pull-requests-to-a-pull-request-stack + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: stacks + x-stackQL-resource: stacks + /repos/{owner}/{repo}/stacks/{stack_number}/unstack: + post: + summary: Remove pull requests from a pull request stack + description: |- + Removes the unmerged pull requests from a stack. Pull requests that cannot be + unstacked (for example, those that are queued for merge) are left in place. When pull requests remain in the stack, the updated + stack is returned with a `200`. When no pull requests remain, the stack is + dissolved and a `204` is returned. + tags: + - pulls + operationId: pull-request-stacks/unstack + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/pulls/stacks#remove-pull-requests-from-a-pull-request-stack + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - name: stack_number + description: The number that identifies the pull request stack. + in: path + required: true + schema: + type: integer + responses: + '200': + description: Response + content: + application/json: + schema: + type: object + required: + - id + - number + - node_id + - url + - base + - open + - created_at + - pull_requests + properties: + id: + type: integer + number: + type: integer + node_id: + type: string + url: + type: string + format: uri + base: + type: object + required: + - ref + properties: + ref: + type: string + open: + type: boolean + description: Whether the stack has any open pull request. False when all pull requests are merged or closed. + created_at: + type: string + format: date-time + pull_requests: + type: array + items: + $ref: '#/components/schemas/pull-request-stack-pull-request' + examples: + default: + value: + id: 9876543 + number: 42 + node_id: S_kwDOABCDEF4AAAAA + url: https://api.github.com/repos/octocat/hello-world/stacks/42 + base: + ref: main + open: true + created_at: '2026-04-15T10:00:00Z' + pull_requests: + - id: 100001 + node_id: PR_kwDOABCDEF4AAAAA + title: Add user model + state: open + merged_at: null + draft: false + html_url: https://github.com/octocat/hello-world/pull/101 + 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 + user_view_type: public + number: 101 + url: https://api.github.com/repos/octocat/hello-world/pulls/101 + head: + ref: user-model + sha: aaa1111aaa1111aaa1111aaa1111aaa1111aaa11 + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + base: + ref: main + sha: 6dcb09b5b57875f334f61aebed695e2e4193db5e + repo: + id: 1296269 + url: https://api.github.com/repos/octocat/hello-world + name: hello-world + '204': + $ref: '#/components/responses/no_content' + '404': + $ref: '#/components/responses/not_found' + '409': + description: Conflict. Returned when the stack is being modified by another request. + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' + examples: + being_modified: + summary: Another request is currently modifying the stack + value: + message: Stack is currently being modified + documentation_url: https://docs.github.com/rest/pulls/stacks#remove-pull-requests-from-a-pull-request-stack + status: '409' + '422': + description: |- + Validation failed. Returned when the stack can't be unstacked because every + pull request in it is locked and cannot be removed. + content: + application/json: + schema: + $ref: '#/components/schemas/validation-error' + examples: + cannot_be_removed: + summary: Every pull request in the stack is locked and can't be removed + value: + message: Pull requests in this stack cannot be removed + documentation_url: https://docs.github.com/rest/pulls/stacks#remove-pull-requests-from-a-pull-request-stack + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: pulls + subcategory: stacks + x-stackQL-resource: stacks components: schemas: pull-request-simple: @@ -1888,6 +3028,8 @@ components: $ref: '#/components/schemas/author-association' auto_merge: $ref: '#/components/schemas/auto-merge' + stack: + $ref: '#/components/schemas/pull-request-stack' draft: description: Indicates whether or not the pull request is a draft. example: false @@ -2214,6 +3356,8 @@ components: $ref: '#/components/schemas/author-association' auto_merge: $ref: '#/components/schemas/auto-merge' + stack: + $ref: '#/components/schemas/pull-request-stack' draft: description: Indicates whether or not the pull request is a draft. example: false @@ -2951,6 +4095,56 @@ components: - merged - message - sha + pull-request-merge-async-result: + title: Pull Request Merge Async Result + description: Pull Request Merge Async Result + type: object + additionalProperties: false + properties: + status: + type: string + enum: + - pending + - merged + - enqueued + - failed + details: + description: When an asynchronous merge request was created or already existed + type: object + additionalProperties: false + properties: + message: + type: string + uuid: + type: string + merge_method: + type: string + enum: + - default + - merge + - squash + - rebase + merge_action: + type: string + enum: + - default + - merge_queue + - direct_merge + expected_head_sha: + type: string + description: SHA that the pull request head must match for the enqueued merge to proceed. + sha: + type: string + required: + - message + - uuid + - merge_method + - merge_action + - expected_head_sha + - sha + required: + - status + - details pull-request-review-request: title: Pull Request Review Request description: Pull Request Review Request @@ -3164,27 +4358,242 @@ components: description: The level at which the comment is targeted, can be a diff line or a file. type: string enum: - - line - - file + - 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 + pull-request-stack-minimal: + title: Pull Request Stack Minimal + type: object + required: + - id + - number + - node_id + - url + - base + - open + - created_at + - pull_requests + properties: + id: + type: integer + number: + type: integer + node_id: + type: string + url: + type: string + format: uri + base: + type: object + required: + - ref + properties: + ref: + type: string + open: + type: boolean + description: Whether the stack has any open pull request. False when all pull requests are merged or closed. + created_at: + type: string + format: date-time + pull_requests: + type: array + items: + type: object + required: + - number + - state + - draft + - merged_at + - head + properties: + number: + type: integer + state: + type: string + enum: + - open + - closed + draft: + type: boolean + merged_at: + type: string + format: date-time + nullable: true + head: + type: object + required: + - ref + - sha + properties: + ref: + type: string + sha: + type: string + pull-request-stack-pull-request: + title: Pull Request Stack Pull Request + 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 + node_id: + type: string + title: + type: string + state: + type: string + enum: + - open + - closed + merged_at: + type: string + format: date-time + nullable: true + draft: + type: boolean + html_url: + type: string + format: uri + user: + $ref: '#/components/schemas/nullable-simple-user' required: - id - - node_id + - number - url - - body - - diff_hunk - - path - - position - - original_position - - commit_id - - original_commit_id - - user - - pull_request_review_id + - head + - base + - node_id + - title + - state + - merged_at + - draft - html_url - - pull_request_url - - _links - - author_association - - created_at - - updated_at + - user + 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: + 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 nullable-simple-user: title: Simple User description: A GitHub user. @@ -3530,6 +4939,17 @@ components: enum: - enterprise - organization + access_source: + description: |- + How the team's access to the repository was granted. This property is only + present when the team is returned in a repository context, such as + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs @@ -4179,45 +5599,38 @@ components: - commit_title - commit_message nullable: true - validation-error: - title: Validation Error - description: Validation Error + pull-request-stack: + title: Pull Request Stack + description: The stack information associated with a pull request. 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 + base: + type: object + properties: + ref: + type: string + description: The base ref of the stack this pull request belongs to. + sha: + type: string + description: The base SHA of the stack this pull request belongs to. + required: + - ref + - sha + size: + type: integer + description: The total number of pull requests in the stack. + position: + type: integer + description: The one-based position of this pull request within the stack, where 1 is the bottom of the stack. + id: + type: integer + description: The ID of the stack that this pull request belongs to. + number: + type: integer + description: The number of the stack that this pull request belongs to. + required: + - base + nullable: true team-simple: title: Team Simple description: Groups of organization members that gives permissions on specified repositories. @@ -4300,19 +5713,6 @@ components: - repositories_url - slug - type - basic-error: - title: Basic Error - description: Basic Error - type: object - properties: - message: - type: string - documentation_url: - type: string - url: - type: string - status: - type: string reaction-rollup: title: Reaction Rollup type: object @@ -4410,6 +5810,73 @@ components: type: array items: type: string + 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 nullable-team-simple: title: Team Simple description: Groups of organization members that gives permissions on specified repositories. @@ -4578,6 +6045,8 @@ components: application/json: schema: $ref: '#/components/schemas/validation-error-simple' + no_content: + description: A header with no content is returned. parameters: owner: name: owner @@ -5621,6 +7090,17 @@ components: additions: 100 deletions: 3 changed_files: 5 + x-github-breaking-changes: + - changeset: remove_pull_request_merge_commit_sha + patch: + - op: remove + path: /value/merge_commit_sha + version: '2026-03-10' + - changeset: remove_singular_assignee_from_issues_and_pull_requests + patch: + - op: remove + path: /value/assignee + version: '2026-03-10' pull-request-review-comment-items: value: - url: https://api.github.com/repos/octocat/Hello-World/pulls/comments/1 @@ -6938,6 +8418,17 @@ components: author_association: OWNER auto_merge: null draft: false + x-github-breaking-changes: + - changeset: remove_pull_request_merge_commit_sha + patch: + - op: remove + path: /value/merge_commit_sha + version: '2026-03-10' + - changeset: remove_singular_assignee_from_issues_and_pull_requests + patch: + - op: remove + path: /value/assignee + version: '2026-03-10' pull-request-review-items: value: - id: 80 diff --git a/provider-dev/source/rate_limit.yaml b/provider-dev/source/rate_limit.yaml index e2d81c6..0502156 100644 --- a/provider-dev/source/rate_limit.yaml +++ b/provider-dev/source/rate_limit.yaml @@ -19,7 +19,6 @@ paths: * 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)." @@ -81,8 +80,6 @@ components: $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: @@ -93,6 +90,8 @@ components: $ref: '#/components/schemas/rate-limit' code_scanning_autofix: $ref: '#/components/schemas/rate-limit' + copilot_usage_records: + $ref: '#/components/schemas/rate-limit' required: - core - search @@ -178,11 +177,6 @@ components: used: 1 remaining: 99 reset: 1691591091 - code_scanning_upload: - limit: 500 - used: 1 - remaining: 499 - reset: 1691594631 actions_runner_registration: limit: 10000 used: 0 @@ -213,6 +207,12 @@ components: used: 1 remaining: 4999 reset: 1372700873 + x-github-breaking-changes: + - changeset: remove_rate_limit_rate + patch: + - op: remove + path: /value/rate + version: '2026-03-10' headers: x-rate-limit-limit: example: 5000 diff --git a/provider-dev/source/repos.yaml b/provider-dev/source/repos.yaml index e0fd7ca..cf017d5 100644 --- a/provider-dev/source/repos.yaml +++ b/provider-dev/source/repos.yaml @@ -428,6 +428,7 @@ paths: - $ref: '#/components/parameters/time-period' - $ref: '#/components/parameters/actor-name-in-query' - $ref: '#/components/parameters/rule-suite-result' + - $ref: '#/components/parameters/evaluate-status' - $ref: '#/components/parameters/per-page' - $ref: '#/components/parameters/page' responses: @@ -436,7 +437,52 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/rule-suites' + 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`. examples: default: $ref: '#/components/examples/rule-suite-items' @@ -858,6 +904,16 @@ paths: type: boolean description: Either `true` to enable the wiki for this repository or `false` to disable it. default: true + has_pull_requests: + type: boolean + description: Either `true` to allow pull requests for this repository or `false` to prevent pull requests. + default: true + pull_request_creation_policy: + type: string + description: 'The policy that controls who can create pull requests for this repository: `all` or `collaborators_only`.' + enum: + - all + - collaborators_only is_template: type: boolean description: Either `true` to make this repo available as a template repository or `false` to prevent it. @@ -2398,7 +2454,10 @@ paths: schema: type: array items: - type: string + type: object + properties: + repos/get_all_status_check_context: + type: string examples: default: value: @@ -2459,7 +2518,10 @@ paths: schema: type: array items: - type: string + type: object + properties: + repos/add_status_check_context: + type: string examples: default: value: @@ -2525,7 +2587,10 @@ paths: schema: type: array items: - type: string + type: object + properties: + repos/set_status_check_context: + type: string examples: default: value: @@ -2587,7 +2652,10 @@ paths: schema: type: array items: - type: string + type: object + properties: + repos/remove_status_check_context: + type: string examples: default: value: @@ -4078,6 +4146,8 @@ paths: description: |- Create a comment for a commit using its `:commit_sha`. + Access to commit comments can be controlled by organization owners. For more information, see "[Managing commit comments for your organization](https://docs.github.com/organizations/managing-organization-settings/managing-commit-comments-for-your-organization)". + 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)." @@ -6375,6 +6445,40 @@ paths: category: repos subcategory: forks x-stackQL-resource: forks + /repos/{owner}/{repo}/hash-algorithm: + get: + summary: Get the hash algorithm for a repository + description: Returns the hash algorithm used to store repository objects. + tags: + - repos + operationId: repos/get-hash-algorithm + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/repos#get-the-hash-algorithm-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + responses: + '200': + description: Response + content: + application/json: + schema: + $ref: '#/components/schemas/repository-hash-algorithm' + examples: + default: + value: + hash_algorithm: sha1 + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: repos + subcategory: repos + x-stackQL-resource: repos /repos/{owner}/{repo}/hooks: get: summary: List repository webhooks @@ -7062,6 +7166,42 @@ paths: category: collaborators subcategory: invitations x-stackQL-resource: invitations + /repos/{owner}/{repo}/issue-types: + get: + summary: List issue types for a repository + description: |- + Lists issue types available for a repository (inherited from its organization owner, with any per-repository overrides applied). + OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + Fine-grained access tokens require the "Metadata" repository permission (read). + tags: + - repos + operationId: repos/list-issue-types + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/repos/issue-types#list-issue-types-for-a-repository + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + 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: repos + subcategory: issue-types + x-stackQL-resource: issue_types /repos/{owner}/{repo}/keys: get: summary: List deploy keys @@ -8224,6 +8364,11 @@ paths: description: |- Users with push access to the repository can create a release. + > [!NOTE] + > If the commit identified by `target_commitish` (or, when `target_commitish` is omitted, the latest commit on the default branch) adds or modifies any file under `.github/workflows/` relative to the repository's default branch, the authenticating token must be authorized to modify workflows. Otherwise, this endpoint returns `404 Not Found`; some authentication paths surface `403 Resource not accessible by integration` instead. + + OAuth app tokens and personal access tokens (classic) need the `workflow` scope when the resolved target commit modifies workflow files. Fine-grained access tokens and GitHub App installation tokens also need the "Workflows" repository permission (write). The `GITHUB_TOKEN` available to GitHub Actions cannot be authorized for this; for more information, see "[Automatic token authentication](https://docs.github.com/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token)". + 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)." tags: - repos @@ -8602,7 +8747,13 @@ paths: x-stackQL-resource: releases patch: summary: Update a release - description: Users with push access to the repository can edit a release. + description: |- + Users with push access to the repository can edit a release. + + > [!NOTE] + > If the resolved target commit (the new value of `target_commitish` if you are changing it, otherwise the existing target) adds or modifies any file under `.github/workflows/` relative to the repository's default branch, the authenticating token must be authorized to modify workflows. Otherwise, this endpoint returns `404 Not Found`; some authentication paths surface `403 Resource not accessible by integration` instead. + + OAuth app tokens and personal access tokens (classic) need the `workflow` scope when the resolved target commit modifies workflow files. Fine-grained access tokens and GitHub App installation tokens also need the "Workflows" repository permission (write). The `GITHUB_TOKEN` available to GitHub Actions cannot be authorized for this; for more information, see "[Automatic token authentication](https://docs.github.com/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token)". tags: - repos operationId: repos/update-release @@ -8769,9 +8920,6 @@ paths: 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' - $ref: '#/components/parameters/repo' @@ -9008,6 +9156,7 @@ paths: - $ref: '#/components/parameters/time-period' - $ref: '#/components/parameters/actor-name-in-query' - $ref: '#/components/parameters/rule-suite-result' + - $ref: '#/components/parameters/evaluate-status' - $ref: '#/components/parameters/per-page' - $ref: '#/components/parameters/page' responses: @@ -9016,7 +9165,52 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/rule-suites' + 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`. examples: default: $ref: '#/components/examples/rule-suite-items' @@ -11700,7 +11894,7 @@ components: 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. + description: The ID of the actor that can bypass a ruleset. Required for `Integration`, `RepositoryRole`, `Team`, and `User` 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: @@ -11709,6 +11903,7 @@ components: - RepositoryRole - Team - DeployKey + - User description: The type of actor that can bypass a ruleset. bypass_mode: type: string @@ -12916,6 +13111,17 @@ components: enum: - enterprise - organization + access_source: + description: |- + How the team's access to the repository was granted. This property is only + present when the team is returned in a repository context, such as + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs @@ -13905,6 +14111,8 @@ components: $ref: '#/components/schemas/author-association' auto_merge: $ref: '#/components/schemas/auto-merge' + stack: + $ref: '#/components/schemas/pull-request-stack' draft: description: Indicates whether or not the pull request is a draft. example: false @@ -15227,6 +15435,20 @@ components: - slug - integration_url - node_id + repository-hash-algorithm: + title: Repository hash algorithm + description: Repository hash algorithm + type: object + properties: + hash_algorithm: + type: string + description: The Git hash algorithm used by this repository. + enum: + - sha1 + - sha256 + example: sha1 + required: + - hash_algorithm hook: title: Webhook description: Webhooks for repositories. @@ -15524,6 +15746,54 @@ components: required: - enabled - enforced_by_owner + issue-type: + title: Issue Type + description: The type assigned to the issue. This is only present for issues in repositories where issue types are supported. + 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 deploy-key: title: Deploy Key description: An SSH key granting access to a single repository. @@ -18099,6 +18369,8 @@ components: dismiss_stale_reviews_on_push: type: boolean description: New, reviewable commits pushed will dismiss previous pull request review approvals. + dismissal_restriction: + $ref: '#/components/schemas/repository-rule-params-dismissal-restriction' require_code_owner_review: type: boolean description: Require an approving review in pull requests that modify files that have a designated code owner. @@ -19085,6 +19357,38 @@ components: - commit_title - commit_message nullable: true + pull-request-stack: + title: Pull Request Stack + description: The stack information associated with a pull request. + type: object + properties: + base: + type: object + properties: + ref: + type: string + description: The base ref of the stack this pull request belongs to. + sha: + type: string + description: The base SHA of the stack this pull request belongs to. + required: + - ref + - sha + size: + type: integer + description: The total number of pull requests in the stack. + position: + type: integer + description: The one-based position of this pull request within the stack, where 1 is the bottom of the stack. + id: + type: integer + description: The ID of the stack that this pull request belongs to. + number: + type: integer + description: The number of the stack that this pull request belongs to. + required: + - base + nullable: true simple-commit-status: title: Simple Commit Status type: object @@ -19530,6 +19834,17 @@ components: - merge_method - min_entries_to_merge - min_entries_to_merge_wait_minutes + repository-rule-license-compliance-scanning: + title: license_compliance_scanning + description: Enforce any added or changed dependencies to comply with the organization's license policy. + type: object + required: + - type + properties: + type: + type: string + enum: + - license_compliance_scanning traffic: title: Traffic type: object @@ -19567,6 +19882,21 @@ components: required: - name - property_values + repository-rule-params-dismissal-restriction: + title: DismissalRestriction + description: Specify people, teams, or apps allowed to dismiss pull request reviews. + type: object + properties: + allowed_actors: + type: array + description: Specify people, teams, or apps allowed to dismiss pull request reviews. + items: + $ref: '#/components/schemas/repository-rule-params-actor' + enabled: + type: boolean + description: Whether to restrict review dismissal to specific actors. + required: + - enabled repository-rule-params-required-reviewer-configuration: title: RequiredReviewerConfiguration description: A reviewing team, and file patterns describing which files they must approve changes to. @@ -19648,6 +19978,25 @@ components: - alerts_threshold - security_alerts_threshold - tool + repository-rule-params-actor: + title: Actor + description: An actor allowed to dismiss pull request reviews + type: object + properties: + id: + type: integer + description: ID of the actor that can dismiss reviews. + type: + type: string + description: The type of the actor + enum: + - User + - Team + - IntegrationInstallation + - RepositoryRole + required: + - id + - type repository-rule-params-reviewer: title: Reviewer description: A required reviewing team @@ -19837,6 +20186,22 @@ components: - bypass - all default: all + evaluate-status: + name: evaluate_status + description: |- + The evaluate status to filter on. When specified, only rule suites resulting from rulesets with the specified evaluate status will be returned. + - `all` - all rule suites will be returned. + - `active` - only rule suites resulting from rulesets in active (non-evaluate) mode will be returned. + - `evaluate` - only rule suites resulting from rulesets in evaluate mode will be returned. + in: query + required: false + schema: + type: string + enum: + - all + - active + - evaluate + default: all rule-suite-id: name: rule_suite_id description: |- @@ -20665,6 +21030,12 @@ components: forks: 1 open_issues: 1 watchers: 1 + x-github-breaking-changes: + - changeset: remove_has_downloads + patch: + - op: remove + path: /value/has_downloads + version: '2026-03-10' org-ruleset-items: value: - id: 21 @@ -21290,6 +21661,12 @@ components: status: disabled secret_scanning_delegated_alert_dismissal: status: disabled + x-github-breaking-changes: + - changeset: remove_has_downloads + patch: + - op: remove + path: /value/has_downloads + version: '2026-03-10' activity-items: value: - id: 1296269 @@ -21365,92 +21742,12 @@ components: 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 + - repository_id: 1 + bundle_url: https://tmastaging.blob.core.windows.net/attestations/1/2024/11/08/4.json.sn?se=2024-11-09T17%3A13%3A43Z&sig=jPSbbJnIEshUyCjBLU5Ykq0uuGc5UYxTZE1%2FhdBNMXk%3D&sp=r&spr=https%2Chttp&sr=b&st=2024-11-08T17%3A13%3A43Z&sv=2024-08-04 + initiator: user + - repository_id: 1 + bundle_url: https://tmastaging.blob.core.windows.net/attestations/1/2024/11/08/5.json.sn?se=2024-11-09T17%3A13%3A43Z&sig=jPSbbJnIEshUyCjBLU5Ykq0uuGc5UYxTZE1%2FhdBNMXk%3D&sp=r&spr=https%2Chttp&sr=b&st=2024-11-08T17%3A13%3A43Z&sv=2024-08-04 + initiator: user autolink-items: value: - id: 1 @@ -24528,6 +24825,20 @@ components: expired: false url: https://api.github.com/user/repository_invitations/1296269 html_url: https://github.com/octocat/Hello-World/invitations + 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' deploy-key-items: value: - id: 1 @@ -25702,6 +26013,12 @@ components: allow_forking: true subscribers_count: 42 network_count: 0 + x-github-breaking-changes: + - changeset: remove_has_downloads + patch: + - op: remove + path: /value/has_downloads + version: '2026-03-10' public-repository-items: value: - id: 1296269 diff --git a/provider-dev/source/search.yaml b/provider-dev/source/search.yaml index 0d4c41d..9fc1833 100644 --- a/provider-dev/source/search.yaml +++ b/provider-dev/source/search.yaml @@ -27,9 +27,6 @@ paths: * 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. - > [!NOTE] - > `repository.description`, `repository.owner.type`, and `repository.owner.node_id` are closing down on this endpoint and will return `null` in a future API version. Use the [Get a repository](https://docs.github.com/rest/repos/repos#get-a-repository) endpoint (`GET /repos/{owner}/{repo}`) to retrieve full repository metadata. - This endpoint requires you to authenticate and limits you to 10 requests per minute. tags: - search @@ -265,6 +262,7 @@ paths: - no_accessible_repos - server_error - only_non_semantic_fields_requested + - service_unavailable examples: default: $ref: '#/components/examples/issue-search-result-item-paginated' @@ -2183,6 +2181,10 @@ components: type: integer format: int64 example: 1 + issue_field_name: + description: The human-readable name of the issue field. + type: string + example: Priority node_id: type: string example: IFT_GDKND @@ -2192,6 +2194,7 @@ components: enum: - text - single_select + - multi_select - number - date example: text @@ -2222,6 +2225,30 @@ components: - name - color nullable: true + multi_select_options: + description: Details about the selected options + type: array + items: + 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 @@ -2907,7 +2934,7 @@ components: version: '2026-03-10' issue-type: title: Issue Type - description: The type of issue. + description: The type assigned to the issue. This is only present for issues in repositories where issue types are supported. type: object nullable: true properties: @@ -3215,6 +3242,8 @@ components: $ref: '#/components/schemas/reaction-rollup' pin: $ref: '#/components/schemas/nullable-pinned-issue-comment' + minimized: + $ref: '#/components/schemas/nullable-issue-comment-minimized' required: - id - node_id @@ -3546,6 +3575,19 @@ components: - pinned_at - pinned_by nullable: true + nullable-issue-comment-minimized: + title: Minimized Issue Comment + description: Details about why an issue comment was minimized. + type: object + properties: + reason: + description: The reason the comment was minimized. + type: string + nullable: true + example: low-quality + required: + - reason + nullable: true responses: not_modified: description: Not modified @@ -3848,6 +3890,15 @@ components: node_id: MDU6SXNzdWUzNTgwMg== number: 132 title: Line Number Indexes Beyond 20 Not Displayed + type: + id: 1 + node_id: IT_kwDNJr9H + name: Bug + description: An unexpected problem or behavior + color: red + created_at: '2023-10-09T13:30:49Z' + updated_at: '2024-05-30T18:20:53Z' + is_enabled: true user: login: Nick3C id: 90254 @@ -3924,6 +3975,12 @@ components: locked: true author_association: COLLABORATOR state_reason: completed + x-github-breaking-changes: + - changeset: remove_singular_assignee_from_issues_and_pull_requests + patch: + - op: remove + path: /value/items/0/assignee + version: '2026-03-10' issue-search-result-item-paginated-lexical-fallback: summary: Hybrid search with lexical fallback description: When a hybrid or semantic search falls back to lexical, the response includes search_type set to "lexical" and lexical_fallback_reason listing the reasons. Items are the same shape as the default example. diff --git a/provider-dev/source/secret_scanning.yaml b/provider-dev/source/secret_scanning.yaml index 7b6fb35..d5e2743 100644 --- a/provider-dev/source/secret_scanning.yaml +++ b/provider-dev/source/secret_scanning.yaml @@ -38,6 +38,9 @@ paths: - $ref: '#/components/parameters/secret-scanning-alert-publicly-leaked' - $ref: '#/components/parameters/secret-scanning-alert-multi-repo' - $ref: '#/components/parameters/secret-scanning-alert-hide-secret' + - $ref: '#/components/parameters/secret-scanning-alert-bypassed' + - $ref: '#/components/parameters/secret-scanning-alert-included-metadata' + - $ref: '#/components/parameters/secret-scanning-alert-owner-email-hash' responses: '200': description: Response @@ -63,6 +66,248 @@ paths: category: secret-scanning subcategory: secret-scanning x-stackQL-resource: secret_scanning + /orgs/{org}/secret-scanning/custom-patterns: + get: + summary: List organization custom patterns + description: |- + Lists secret scanning custom patterns for an organization. + + Personal access tokens (classic) need the `read:org` scope to use this endpoint. + tags: + - secret-scanning + operationId: secret-scanning/list-org-custom-patterns + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/secret-scanning/custom-patterns#list-organization-custom-patterns + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: custom-patterns + parameters: + - $ref: '#/components/parameters/org' + - $ref: '#/components/parameters/secret-scanning-custom-pattern-state' + - $ref: '#/components/parameters/secret-scanning-custom-pattern-push-protection' + - $ref: '#/components/parameters/secret-scanning-custom-pattern-sort' + - $ref: '#/components/parameters/direction' + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/per-page' + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/secret-scanning-custom-pattern' + examples: + default: + $ref: '#/components/examples/secret-scanning-custom-pattern-list' + headers: + Link: + $ref: '#/components/headers/link' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-stackQL-resource: custom_patterns + post: + summary: Bulk create organization custom patterns + description: |- + Bulk creates secret scanning custom patterns for an organization. + + Personal access tokens (classic) need the `write:org` scope to use this endpoint. + tags: + - secret-scanning + operationId: secret-scanning/bulk-create-org-custom-patterns + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/secret-scanning/custom-patterns#bulk-create-organization-custom-patterns + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: custom-patterns + parameters: + - $ref: '#/components/parameters/org' + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - patterns + properties: + patterns: + type: array + description: The list of custom patterns to create. + items: + $ref: '#/components/schemas/secret-scanning-custom-pattern-to-create' + examples: + default: + $ref: '#/components/examples/secret-scanning-custom-pattern-bulk-create-request' + responses: + '201': + description: All patterns created successfully. + content: + application/json: + schema: + type: object + properties: + created_patterns: + type: array + description: The list of successfully created custom patterns. + items: + $ref: '#/components/schemas/secret-scanning-custom-pattern' + examples: + default: + $ref: '#/components/examples/secret-scanning-custom-pattern-bulk-create-response' + '400': + $ref: '#/components/responses/bad_request' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + description: Validation failed for one or more patterns. + content: + application/json: + schema: + type: object + properties: + message: + type: string + description: A summary message describing the error. + validation_errors: + type: object + description: A map of validation errors keyed by the zero-based index of the pattern that failed. + additionalProperties: + type: object + properties: + errors: + type: array + description: List of validation errors for this pattern. + items: + $ref: '#/components/schemas/secret-scanning-custom-pattern-validation-error' + x-stackQL-resource: custom_patterns + delete: + summary: Bulk delete organization custom patterns + description: |- + Bulk deletes secret scanning custom patterns for an organization. + + Personal access tokens (classic) need the `write:org` scope to use this endpoint. + tags: + - secret-scanning + operationId: secret-scanning/bulk-delete-org-custom-patterns + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/secret-scanning/custom-patterns#bulk-delete-organization-custom-patterns + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: custom-patterns + parameters: + - $ref: '#/components/parameters/org' + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - patterns + properties: + patterns: + type: array + description: The list of custom patterns to delete. + maxItems: 500 + items: + $ref: '#/components/schemas/secret-scanning-custom-pattern-to-delete' + post_delete_action: + type: string + description: |- + What to do with alerts associated with the deleted patterns. + `delete_alerts` permanently removes the alerts. + `resolve_alerts` resolves the alerts as "pattern deleted". + Defaults to `delete_alerts` when not specified. + enum: + - delete_alerts + - resolve_alerts + default: delete_alerts + examples: + default: + $ref: '#/components/examples/secret-scanning-custom-pattern-bulk-delete-request' + responses: + '204': + description: All patterns deleted successfully. + '400': + $ref: '#/components/responses/bad_request' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '412': + $ref: '#/components/responses/precondition_failed' + x-stackQL-resource: custom_patterns + /orgs/{org}/secret-scanning/custom-patterns/{pattern_id}: + patch: + summary: Update an organization custom pattern + description: |- + Updates a secret scanning custom pattern for an organization. + + Personal access tokens (classic) need the `write:org` scope to use this endpoint. + tags: + - secret-scanning + operationId: secret-scanning/update-org-custom-pattern + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/secret-scanning/custom-patterns#update-an-organization-custom-pattern + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: custom-patterns + parameters: + - $ref: '#/components/parameters/org' + - name: pattern_id + in: path + required: true + schema: + type: integer + description: The ID of the custom pattern. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/secret-scanning-custom-pattern-to-update' + examples: + default: + $ref: '#/components/examples/secret-scanning-custom-pattern-update-request' + responses: + '200': + description: Pattern updated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/secret-scanning-custom-pattern' + examples: + default: + $ref: '#/components/examples/secret-scanning-custom-pattern' + '400': + $ref: '#/components/responses/bad_request' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '412': + $ref: '#/components/responses/precondition_failed' + '422': + $ref: '#/components/responses/validation_failed' + x-stackQL-resource: custom_patterns /orgs/{org}/secret-scanning/pattern-configurations: get: summary: List organization pattern configurations @@ -231,6 +476,9 @@ paths: - $ref: '#/components/parameters/secret-scanning-alert-publicly-leaked' - $ref: '#/components/parameters/secret-scanning-alert-multi-repo' - $ref: '#/components/parameters/secret-scanning-alert-hide-secret' + - $ref: '#/components/parameters/secret-scanning-alert-bypassed' + - $ref: '#/components/parameters/secret-scanning-alert-included-metadata' + - $ref: '#/components/parameters/secret-scanning-alert-owner-email-hash' responses: '200': description: Response @@ -279,7 +527,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/secret-scanning-alert' + $ref: '#/components/schemas/secret-scanning-alert-with-metadata' examples: default: $ref: '#/components/examples/secret-scanning-alert-open' @@ -330,6 +578,13 @@ paths: $ref: '#/components/schemas/secret-scanning-alert-resolution-comment' assignee: $ref: '#/components/schemas/secret-scanning-alert-assignee' + validity: + type: string + nullable: true + enum: + - active + - inactive + description: Sets the validity of the secret scanning alert. Can be `active`, `inactive`, or `null` to clear the override. required: - state - assignee @@ -353,16 +608,18 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/secret-scanning-alert' + $ref: '#/components/schemas/secret-scanning-alert-with-metadata' examples: default: $ref: '#/components/examples/secret-scanning-alert-resolved' '400': description: Bad request, resolution comment is invalid or the resolution was not changed. + '403': + description: Delegated alert dismissal is enabled and the authenticated user is not a valid reviewer. '404': description: Repository is public, or secret scanning is disabled for the repository, or the resource is not found '422': - description: State does not match the resolution or resolution comment, or assignee does not have write access to the repository + description: State does not match the resolution or resolution comment, assignee does not have write access to the repository, or the requested validity change could not be applied to this alert '503': $ref: '#/components/responses/service_unavailable' x-github: @@ -399,7 +656,6 @@ paths: application/json: schema: type: array - description: List of locations where the secret was detected items: $ref: '#/components/schemas/secret-scanning-location' examples: @@ -418,6 +674,252 @@ paths: category: secret-scanning subcategory: secret-scanning x-stackQL-resource: secret_scanning + /repos/{owner}/{repo}/secret-scanning/custom-patterns: + get: + summary: List repository custom patterns + description: |- + Lists secret scanning custom patterns for a repository. + + 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. + tags: + - secret-scanning + operationId: secret-scanning/list-repo-custom-patterns + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/secret-scanning/custom-patterns#list-repository-custom-patterns + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: custom-patterns + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - $ref: '#/components/parameters/secret-scanning-custom-pattern-state' + - $ref: '#/components/parameters/secret-scanning-custom-pattern-push-protection' + - $ref: '#/components/parameters/secret-scanning-custom-pattern-sort' + - $ref: '#/components/parameters/direction' + - $ref: '#/components/parameters/page' + - $ref: '#/components/parameters/per-page' + responses: + '200': + description: Response + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/secret-scanning-custom-pattern' + examples: + default: + $ref: '#/components/examples/secret-scanning-custom-pattern-list' + headers: + Link: + $ref: '#/components/headers/link' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + x-stackQL-resource: custom_patterns + post: + summary: Bulk create repository custom patterns + description: |- + Bulk creates secret scanning custom patterns for a repository. + + 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. + tags: + - secret-scanning + operationId: secret-scanning/bulk-create-repo-custom-patterns + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/secret-scanning/custom-patterns#bulk-create-repository-custom-patterns + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: custom-patterns + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - patterns + properties: + patterns: + type: array + description: The list of custom patterns to create. + items: + $ref: '#/components/schemas/secret-scanning-custom-pattern-to-create' + examples: + default: + $ref: '#/components/examples/secret-scanning-custom-pattern-bulk-create-request' + responses: + '201': + description: All patterns created successfully. + content: + application/json: + schema: + type: object + properties: + created_patterns: + type: array + description: The list of successfully created custom patterns. + items: + $ref: '#/components/schemas/secret-scanning-custom-pattern' + examples: + default: + $ref: '#/components/examples/secret-scanning-custom-pattern-bulk-create-response' + '400': + $ref: '#/components/responses/bad_request' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '422': + description: Validation failed for one or more patterns. + content: + application/json: + schema: + type: object + properties: + message: + type: string + description: A summary message describing the error. + validation_errors: + type: object + description: A map of validation errors keyed by the zero-based index of the pattern that failed. + additionalProperties: + type: object + properties: + errors: + type: array + description: List of validation errors for this pattern. + items: + $ref: '#/components/schemas/secret-scanning-custom-pattern-validation-error' + x-stackQL-resource: custom_patterns + delete: + summary: Bulk delete repository custom patterns + description: |- + Bulk deletes secret scanning custom patterns for a repository. + + 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. + tags: + - secret-scanning + operationId: secret-scanning/bulk-delete-repo-custom-patterns + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/secret-scanning/custom-patterns#bulk-delete-repository-custom-patterns + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: custom-patterns + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + requestBody: + required: true + content: + application/json: + schema: + type: object + required: + - patterns + properties: + patterns: + type: array + description: The list of custom patterns to delete. + maxItems: 500 + items: + $ref: '#/components/schemas/secret-scanning-custom-pattern-to-delete' + post_delete_action: + type: string + description: |- + What to do with alerts associated with the deleted patterns. + `delete_alerts` permanently removes the alerts. + `resolve_alerts` resolves the alerts as "pattern deleted". + Defaults to `delete_alerts` when not specified. + enum: + - delete_alerts + - resolve_alerts + default: delete_alerts + examples: + default: + $ref: '#/components/examples/secret-scanning-custom-pattern-bulk-delete-request' + responses: + '204': + description: All patterns deleted successfully. + '400': + $ref: '#/components/responses/bad_request' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '412': + $ref: '#/components/responses/precondition_failed' + x-stackQL-resource: custom_patterns + /repos/{owner}/{repo}/secret-scanning/custom-patterns/{pattern_id}: + patch: + summary: Update a repository custom pattern + description: |- + Updates a secret scanning custom pattern for a repository. + + 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. + tags: + - secret-scanning + operationId: secret-scanning/update-repo-custom-pattern + externalDocs: + description: API method documentation + url: https://docs.github.com/rest/secret-scanning/custom-patterns#update-a-repository-custom-pattern + x-github: + githubCloudOnly: false + enabledForGitHubApps: true + category: secret-scanning + subcategory: custom-patterns + parameters: + - $ref: '#/components/parameters/owner' + - $ref: '#/components/parameters/repo' + - name: pattern_id + in: path + required: true + schema: + type: integer + description: The ID of the custom pattern. + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/secret-scanning-custom-pattern-to-update' + examples: + default: + $ref: '#/components/examples/secret-scanning-custom-pattern-update-request' + responses: + '200': + description: Pattern updated successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/secret-scanning-custom-pattern' + examples: + default: + $ref: '#/components/examples/secret-scanning-custom-pattern' + '400': + $ref: '#/components/responses/bad_request' + '403': + $ref: '#/components/responses/forbidden' + '404': + $ref: '#/components/responses/not_found' + '412': + $ref: '#/components/responses/precondition_failed' + '422': + $ref: '#/components/responses/validation_failed' + x-stackQL-resource: custom_patterns /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses: post: summary: Create a push protection bypass @@ -483,10 +985,10 @@ paths: 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. + Lists the latest default incremental and backfill scans by type for a repository. > [!NOTE] - > This endpoint requires [GitHub Advanced Security](https://docs.github.com/get-started/learning-about-github/about-github-advanced-security)." + > 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. tags: @@ -567,8 +1069,310 @@ components: secret: type: string description: The secret that was detected. - repository: - $ref: '#/components/schemas/simple-repository' + 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' + closure_request_comment: + type: string + description: An optional comment from the closure request author. + nullable: true + closure_request_reviewer_comment: + type: string + description: An optional comment from the closure request reviewer. + nullable: true + closure_request_reviewer: + $ref: '#/components/schemas/nullable-simple-user' + secret-scanning-custom-pattern: + title: Secret Scanning Custom Pattern + description: A custom pattern for secret scanning. + type: object + properties: + id: + type: integer + description: The ID of the custom pattern. + name: + type: string + description: The name of the custom pattern. + pattern: + type: string + description: The regular expression of the custom pattern. + slug: + type: string + description: A URL-friendly identifier for the custom pattern, derived from its name. + state: + type: string + description: The state of the custom pattern. + enum: + - published + - unpublished + push_protection_enabled: + type: boolean + description: Whether push protection is enabled for this custom pattern. + start_delimiter: + type: string + description: The start delimiter regex for the custom pattern. + nullable: true + end_delimiter: + type: string + description: The end delimiter regex for the custom pattern. + nullable: true + must_match: + type: array + description: List of regexes that the secret must match. + nullable: true + items: + type: string + must_not_match: + type: array + description: List of regexes that the secret must not match. + nullable: true + items: + type: string + custom_pattern_version: + $ref: '#/components/schemas/secret-scanning-row-version' + created_at: + type: string + format: date-time + description: The date and time the custom pattern was created in ISO 8601 format. + updated_at: + type: string + format: date-time + description: The date and time the custom pattern was last updated in ISO 8601 format. + required: + - id + - name + - pattern + - slug + - state + - push_protection_enabled + secret-scanning-custom-pattern-to-create: + title: Secret Scanning Custom Pattern To Create + description: A custom pattern to create in a bulk operation. + type: object + required: + - name + - pattern + properties: + name: + type: string + description: The name of the custom pattern. + pattern: + type: string + description: The regular expression of the custom pattern. + start_delimiter: + type: string + description: |- + The start delimiter regex for the custom pattern. + Defaults to `\A|[^0-9A-Za-z]` when not specified. + default: \A|[^0-9A-Za-z] + end_delimiter: + type: string + description: |- + The end delimiter regex for the custom pattern. + Defaults to `\z|[^0-9A-Za-z]` when not specified. + default: \z|[^0-9A-Za-z] + must_match: + type: array + description: List of regexes that the secret must match. + items: + type: string + must_not_match: + type: array + description: List of regexes that the secret must not match. + items: + type: string + secret-scanning-custom-pattern-validation-error: + title: Secret Scanning Custom Pattern Validation Error + description: A validation error for a custom pattern in a batch operation. + type: object + properties: + code: + type: string + description: A machine-readable code describing the error. + enum: + - invalid + - unprocessable + - start_delimiter + - end_delimiter + - name + - must_match + - must_not_match + - custom_pattern_version_mismatch + message: + type: string + description: A human-readable description of the error. + secret-scanning-custom-pattern-to-delete: + title: Secret Scanning Custom Pattern To Delete + description: A custom pattern to delete in a bulk operation. + type: object + required: + - pattern_id + properties: + pattern_id: + type: integer + description: The ID of the custom pattern to delete. + custom_pattern_version: + $ref: '#/components/schemas/secret-scanning-row-version' + secret-scanning-custom-pattern-to-update: + title: Secret Scanning Custom Pattern To Update + description: Fields to update on a custom pattern. At least one updatable field (`pattern`, `start_delimiter`, `end_delimiter`, `must_match`, or `must_not_match`) must also be provided. Only provided fields will be updated. + required: + - custom_pattern_version + - pattern + - start_delimiter + - end_delimiter + - must_match + - must_not_match + properties: + pattern: + type: string + description: The updated regular expression of the custom pattern. + start_delimiter: + type: string + description: The updated start delimiter regex for the custom pattern. + end_delimiter: + type: string + description: The updated end delimiter regex for the custom pattern. + must_match: + type: array + description: Updated list of regexes that the secret must match. + items: + type: string + must_not_match: + type: array + description: Updated list of regexes that the secret must not match. + items: + type: string + custom_pattern_version: + $ref: '#/components/schemas/secret-scanning-row-version' + type: object + 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' + 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-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`. + For 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)." + provider: + type: string + description: The provider of the secret that was detected. + nullable: true + provider_slug: + type: string + description: The slug identifier for the provider of the secret that was detected. Use this value for filtering by provider with the `providers` or `exclude_providers` parameters. + nullable: true + secret: + type: string + description: The secret that was detected. push_protection_bypassed: type: boolean description: Whether push protection was bypassed for the detected secret. @@ -595,10 +1399,6 @@ components: 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. @@ -608,11 +1408,11 @@ components: - unknown publicly_leaked: type: boolean - description: Whether the secret was publicly leaked. + 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 enterprise. + description: Whether the detected secret was found in multiple repositories under the same organization or enterprise. nullable: true is_base64_encoded: type: boolean @@ -635,28 +1435,7 @@ components: nullable: true closure_request_reviewer: $ref: '#/components/schemas/nullable-simple-user' - 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' - 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-alert: + secret-scanning-alert-with-metadata: type: object properties: number: @@ -769,6 +1548,8 @@ components: nullable: true closure_request_reviewer: $ref: '#/components/schemas/nullable-simple-user' + metadata: + $ref: '#/components/schemas/secret-scanning-alert-metadata' 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 @@ -982,7 +1763,13 @@ components: description: The type of scan status: type: string - description: The state of the scan. Either "completed", "running", or "pending" + description: |- + The state of the scan. Either "completed", "running", "pending", "failed", or "unknown". + + "failed": this scan type has hit its retry limit and has been marked permanently failed. + This usually resolves on its own at the next scheduled scan attempt. If "failed" persists, contact Support. + + "unknown": the scan is in an unrecognized or currently unhandled state. completed_at: type: string format: date-time @@ -999,6 +1786,10 @@ components: pattern_scope: type: string description: Level at which the custom pattern is defined, one of "repository", "organization", or "enterprise" + generic_secrets_backfill_scans: + type: array + items: + $ref: '#/components/schemas/secret-scanning-scan' alert-number: type: integer description: The security alert number. @@ -1508,58 +2299,6 @@ components: type: string status: type: string - 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 scim-error: title: Scim Error description: Scim Error @@ -1622,6 +2361,74 @@ components: nullable: true items: type: string + 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-alert-metadata: + type: array + description: A list of metadata key/value pairs associated with the secret scanning alert. + readOnly: true + items: + type: object + properties: + key: + type: string + description: The metadata key. + value: + type: string + description: The metadata value. + required: + - key + - value 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 @@ -1887,7 +2694,13 @@ components: description: The type of scan status: type: string - description: The state of the scan. Either "completed", "running", or "pending" + description: |- + The state of the scan. Either "completed", "running", "pending", "failed", or "unknown". + + "failed": this scan type has hit its retry limit and has been marked permanently failed. + This usually resolves on its own at the next scheduled scan attempt. If "failed" persists, contact Support. + + "unknown": the scan is in an unrecognized or currently unhandled state. completed_at: type: string format: date-time @@ -2032,8 +2845,8 @@ components: application/scim+json: schema: $ref: '#/components/schemas/scim-error' - conflict: - description: Conflict + precondition_failed: + description: Precondition Failed content: application/json: schema: @@ -2044,6 +2857,12 @@ components: application/json: schema: $ref: '#/components/schemas/validation-error' + conflict: + description: Conflict + content: + application/json: + schema: + $ref: '#/components/schemas/basic-error' not_modified: description: Not modified parameters: @@ -2205,6 +3024,68 @@ components: schema: type: boolean default: false + secret-scanning-alert-bypassed: + name: is_bypassed + in: query + description: A boolean value (`true` or `false`) indicating whether to filter alerts by their push protection bypass status. When set to `true`, only alerts that were created because a push protection rule was bypassed will be returned. When set to `false`, only alerts that were not caused by a push protection bypass will be returned. + required: false + schema: + type: boolean + secret-scanning-alert-included-metadata: + name: included_metadata + in: query + description: |- + A comma-separated list of metadata fields to filter alerts by. Only alerts that have all of the + specified metadata fields attached will be returned. Possible values are: `owner-email`, `owner-id`, + `owner-name`, `secret-id`, `secret-name`, `secret-issued-date`, `secret-expiration-date`, `organization-name`, + `organization-id`, `last-used-date`, and `has-organization-access`. + required: false + schema: + type: string + secret-scanning-alert-owner-email-hash: + name: owner_email_hash + in: query + description: |- + Filters alerts to only those whose attached `owner_email` metadata field matches the + provided value. The value must be the lowercase hex-encoded SHA-256 hash of the email + address to match (for example, the SHA-256 of `user@example.com`). Only alerts that + have an `owner_email` metadata value whose SHA-256 hash equals this parameter are + returned. + required: false + schema: + type: string + secret-scanning-custom-pattern-state: + name: state + description: Filter custom patterns by state. When absent, returns patterns in all states. + in: query + required: false + schema: + type: string + enum: + - published + - unpublished + secret-scanning-custom-pattern-push-protection: + name: push_protection + description: Filter custom patterns by whether push protection is enabled. When absent, returns patterns regardless of push protection status. + in: query + required: false + schema: + type: string + enum: + - enabled + - disabled + secret-scanning-custom-pattern-sort: + name: sort + description: The property to sort the results by. + in: query + required: false + schema: + type: string + enum: + - created + - updated + - name + default: created owner: name: owner description: The account owner of the repository. The name is not case sensitive. @@ -2402,6 +3283,108 @@ components: received_events_url: https://api.github.com/users/octocat/received_events type: User site_admin: false + secret-scanning-custom-pattern-list: + value: + - id: 1 + name: Example Custom Pattern + pattern: '[a-z]+_token_[0-9]+' + slug: example-custom-pattern + state: published + push_protection_enabled: true + start_delimiter: null + end_delimiter: null + must_match: null + must_not_match: null + created_at: '2024-01-15T10:30:00Z' + updated_at: '2024-01-15T10:30:00Z' + - id: 2 + name: Another Custom Pattern + pattern: prefix_[a-zA-Z0-9]{32} + slug: another-custom-pattern + state: published + push_protection_enabled: false + start_delimiter: \b + end_delimiter: \b + must_match: + - ^prefix_prod + must_not_match: + - test + created_at: '2024-01-16T14:20:00Z' + updated_at: '2024-01-17T09:15:00Z' + secret-scanning-custom-pattern-bulk-create-request: + value: + patterns: + - name: Example Custom Pattern + pattern: '[a-z]+_token_[0-9]+' + - name: Another Custom Pattern + pattern: prefix_[a-zA-Z0-9]{32} + start_delimiter: \b + end_delimiter: \b + must_match: + - ^prefix_prod + must_not_match: + - test + secret-scanning-custom-pattern-bulk-create-response: + value: + created_patterns: + - id: 1 + name: Example Custom Pattern + pattern: '[a-z]+_token_[0-9]+' + slug: example-custom-pattern + state: unpublished + push_protection_enabled: false + start_delimiter: null + end_delimiter: null + must_match: null + must_not_match: null + created_at: '2024-01-15T10:30:00Z' + updated_at: '2024-01-15T10:30:00Z' + - id: 2 + name: Another Custom Pattern + pattern: prefix_[a-zA-Z0-9]{32} + slug: another-custom-pattern + state: unpublished + push_protection_enabled: false + start_delimiter: \b + end_delimiter: \b + must_match: + - ^prefix_prod + must_not_match: + - test + created_at: '2024-01-15T10:30:00Z' + updated_at: '2024-01-15T10:30:00Z' + secret-scanning-custom-pattern-bulk-delete-request: + value: + patterns: + - pattern_id: 2 + custom_pattern_version: 0ujsswThIGTUYm2K8FjOOfXtY1K + secret-scanning-custom-pattern-update-request: + value: + pattern: updated_secret_[0-9A-Z]{16} + start_delimiter: '[^0-9A-Za-z]' + end_delimiter: '[^0-9A-Za-z]' + must_match: + - updated_secret_[0-9]{2}* + must_not_match: + - updated_secret_1234567890ABCDEF + custom_pattern_version: 0ujsswThIGTUYm2K8FjOOfXtY1K + secret-scanning-custom-pattern: + value: + id: 1 + name: Example Custom Pattern + pattern: updated_secret_[0-9A-Z]{16} + slug: example_custom_pattern + state: published + push_protection_enabled: true + start_delimiter: '[^0-9A-Za-z]' + end_delimiter: '[^0-9A-Za-z]' + must_match: + - updated_secret_[0-9]{2}* + must_not_match: + - updated_secret_1234567890ABCDEF + custom_pattern_version: 0ujsswThIGTUYm2K8FjOOfXtY1K + created_at: '2024-01-15T10:30:00Z' + updated_at: '2024-06-01T12:00:00Z' secret-scanning-pattern-configuration: value: pattern_config_version: 0ujsswThIGTUYm2K8FjOOfXtY1K @@ -2564,6 +3547,9 @@ components: validity: unknown publicly_leaked: false multi_repo: false + metadata: + - key: owner_email + value: owner@example.com secret-scanning-alert-resolved: value: number: 42 @@ -2607,6 +3593,9 @@ components: validity: unknown publicly_leaked: false multi_repo: false + metadata: + - key: owner_email + value: owner@example.com assigned_to: login: octocat id: 1 @@ -2725,6 +3714,11 @@ components: completed_at: '2024-10-07T02:55:00Z' pattern_slug: my-custom-pattern pattern_scope: organization + generic_secrets_backfill_scans: + - type: git + status: completed + started_at: '2024-10-07T02:47:00Z' + completed_at: '2024-10-07T02:55:00Z' headers: link: example: ; rel="next", ; rel="last" diff --git a/provider-dev/source/security_advisories.yaml b/provider-dev/source/security_advisories.yaml index cff617e..3b4b864 100644 --- a/provider-dev/source/security_advisories.yaml +++ b/provider-dev/source/security_advisories.yaml @@ -2811,6 +2811,17 @@ components: enum: - enterprise - organization + access_source: + description: |- + How the team's access to the repository was granted. This property is only + present when the team is returned in a repository context, such as + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs @@ -4847,6 +4858,12 @@ components: type: User site_admin: false type: analyst + x-github-breaking-changes: + - changeset: deprecate_cvss + patch: + - op: remove + path: /value/cvss + version: '2026-03-10' list-repository-advisories: value: - ghsa_id: GHSA-abcd-1234-efgh @@ -5418,6 +5435,12 @@ components: 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} + x-github-breaking-changes: + - changeset: deprecate_cvss + patch: + - op: remove + path: /value/cvss + version: '2026-03-10' repository-advisory-pvr: value: ghsa_id: GHSA-abcd-1234-efgh @@ -5536,6 +5559,12 @@ components: permission: admin parent: null private_fork: null + x-github-breaking-changes: + - changeset: deprecate_cvss + patch: + - op: remove + path: /value/cvss + version: '2026-03-10' full-repository: value: id: 1296269 @@ -6026,5 +6055,11 @@ components: forks: 1 open_issues: 1 watchers: 1 + x-github-breaking-changes: + - changeset: remove_has_downloads + patch: + - op: remove + path: /value/has_downloads + version: '2026-03-10' servers: - url: https://api.github.com diff --git a/provider-dev/source/teams.yaml b/provider-dev/source/teams.yaml index 3e031af..9879400 100644 --- a/provider-dev/source/teams.yaml +++ b/provider-dev/source/teams.yaml @@ -113,6 +113,9 @@ paths: parent_team_id: type: integer description: The ID of a team to set as the parent team. + parent_team_slug: + type: string + description: The slug of a team to set as the parent team. Ignored when `parent_team_id` is also provided. required: - name examples: @@ -252,6 +255,10 @@ paths: type: integer description: The ID of a team to set as the parent team. nullable: true + parent_team_slug: + type: string + description: The slug of a team to set as the parent team. Ignored when `parent_team_id` is also provided. + nullable: true examples: default: value: @@ -367,6 +374,8 @@ paths: description: |- Team members will include the members of child teams. + Each member includes their `role` on the team (`member` or `maintainer`) and an `inherited` flag indicating whether the membership is inherited from a child team (`true`) or is a direct membership (`false`). These fields let you read a member's role and direct/inherited status without additional requests. + To list members in a team, the team must be visible to the authenticated user. tags: - teams @@ -398,10 +407,10 @@ paths: schema: type: array items: - $ref: '#/components/schemas/simple-user' + $ref: '#/components/schemas/team-member' examples: default: - $ref: '#/components/examples/simple-user-items' + $ref: '#/components/examples/team-member-items' headers: Link: $ref: '#/components/headers/link' @@ -558,6 +567,8 @@ paths: description: |- Lists a team's repositories visible to the authenticated user. + OAuth app tokens and personal access tokens (classic) need the `read:org` or `repo` scope to use this endpoint. + > [!NOTE] > You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`. tags: @@ -847,6 +858,10 @@ paths: type: integer description: The ID of a team to set as the parent team. nullable: true + parent_team_slug: + type: string + description: The slug of a team to set as the parent team. Ignored when `parent_team_id` is also provided. + nullable: true required: - name examples: @@ -973,6 +988,8 @@ paths: > **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. + + Each member includes their `role` on the team (`member` or `maintainer`) and an `inherited` flag indicating whether the membership is inherited from a child team (`true`) or is a direct membership (`false`). tags: - teams operationId: teams/list-members-legacy @@ -1002,10 +1019,10 @@ paths: schema: type: array items: - $ref: '#/components/schemas/simple-user' + $ref: '#/components/schemas/team-member' examples: default: - $ref: '#/components/examples/simple-user-items' + $ref: '#/components/examples/team-member-items' headers: Link: $ref: '#/components/headers/link' @@ -1601,6 +1618,17 @@ components: enum: - enterprise - organization + access_source: + description: |- + How the team's access to the repository was granted. This property is only + present when the team is returned in a repository context, such as + `GET /repos/{owner}/{repo}/teams`. + type: string + enum: + - direct + - organization + - enterprise + example: direct organization_id: type: integer description: Unique identifier of the organization to which this team belongs @@ -1779,9 +1807,9 @@ components: - team_count - invitation_teams_url - node_id - simple-user: - title: Simple User - description: A GitHub user. + team-member: + title: Team Member + description: A user that is a member of a team, including their role on the team and whether the membership is inherited from a child team. type: object properties: name: @@ -1859,6 +1887,17 @@ components: user_view_type: type: string example: public + role: + type: string + description: The member's role on the team. Only present on the `List team members` endpoint, and only when the feature is enabled for the organization. + enum: + - member + - maintainer + example: member + inherited: + type: boolean + description: Whether the user is a member of the team only through a child team. `true` means the membership is inherited from a child team; `false` means the user is a direct (immediate) member of the team. Only present on the `List team members` endpoint, and only when the feature is enabled for the organization. + example: false required: - avatar_url - events_url @@ -3087,6 +3126,105 @@ components: nullable: true items: type: string + 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 code-of-conduct: title: Code Of Conduct description: Code Of Conduct @@ -3590,7 +3728,7 @@ components: team_count: 2 invitation_teams_url: https://api.github.com/organizations/2/invitations/1/teams invitation_source: member - simple-user-items: + team-member-items: value: - login: octocat id: 1 @@ -3610,6 +3748,8 @@ components: received_events_url: https://api.github.com/users/octocat/received_events type: User site_admin: false + role: member + inherited: false team-membership-response-if-user-is-a-team-maintainer: summary: Response if user is a team maintainer value: @@ -3855,6 +3995,12 @@ components: forks: 1 open_issues: 1 watchers: 1 + x-github-breaking-changes: + - changeset: remove_has_downloads + patch: + - op: remove + path: /value/has_downloads + version: '2026-03-10' team-items-response-if-child-teams-exist: value: - id: 2 @@ -4003,6 +4149,12 @@ components: forks: 1 open_issues: 1 watchers: 1 + x-github-breaking-changes: + - changeset: remove_has_downloads + patch: + - op: remove + path: /value/has_downloads + version: '2026-03-10' team-full-items: value: - id: 1 diff --git a/provider-dev/source/users.yaml b/provider-dev/source/users.yaml index f37622c..31e96dd 100644 --- a/provider-dev/source/users.yaml +++ b/provider-dev/source/users.yaml @@ -4137,92 +4137,12 @@ components: 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 + - repository_id: 1 + bundle_url: https://tmastaging.blob.core.windows.net/attestations/1/2024/11/08/4.json.sn?se=2024-11-09T17%3A13%3A43Z&sig=jPSbbJnIEshUyCjBLU5Ykq0uuGc5UYxTZE1%2FhdBNMXk%3D&sp=r&spr=https%2Chttp&sr=b&st=2024-11-08T17%3A13%3A43Z&sv=2024-08-04 + initiator: user + - repository_id: 1 + bundle_url: https://tmastaging.blob.core.windows.net/attestations/1/2024/11/08/5.json.sn?se=2024-11-09T17%3A13%3A43Z&sig=jPSbbJnIEshUyCjBLU5Ykq0uuGc5UYxTZE1%2FhdBNMXk%3D&sp=r&spr=https%2Chttp&sr=b&st=2024-11-08T17%3A13%3A43Z&sv=2024-08-04 + initiator: user hovercard: value: contexts: diff --git a/provider-dev/test/README.md b/provider-dev/test/README.md index d639977..fd01405 100644 --- a/provider-dev/test/README.md +++ b/provider-dev/test/README.md @@ -10,7 +10,7 @@ API. Designed for WSL / Linux. Same suite runs in two modes: ```bash # from repo root -bash provider-dev/test/bootstrap.sh # downloads latest stackql into provider-dev/test/.bin/ +bash provider-dev/test/bootstrap.sh # downloads latest stackql into provider-dev/test/.bin/ (or: make smoke-test) python -m venv provider-dev/test/.venv source provider-dev/test/.venv/bin/activate pip install -r provider-dev/test/requirements.txt @@ -18,8 +18,11 @@ pip install -r provider-dev/test/requirements.txt ## Run +The Makefile wraps all of this (`make smoke-test`, `make smoke-test MODE=both`); +the manual form is: + ```bash -source provider-dev/.env # exports STACKQL_GITHUB_USERNAME / PASSWORD +set -a; source .env; set +a # repo-root .env exports STACKQL_GITHUB_USERNAME / PASSWORD # exec mode (default) pytest provider-dev/test/ -v diff --git a/provider-dev/test/conftest.py b/provider-dev/test/conftest.py index e8c1c52..9c601ee 100644 --- a/provider-dev/test/conftest.py +++ b/provider-dev/test/conftest.py @@ -83,7 +83,7 @@ def test_env(provider_config: ProviderConfig) -> dict[str, str]: if missing: pytest.exit( f"Required env vars not set: {', '.join(missing)}. " - f"Source provider-dev/.env (or set them) before running tests.", + f"Source the repo-root .env (or set them) before running tests.", returncode=2, ) # .strip() defends against CRLF in .env files sourced from WSL - a trailing diff --git a/provider-dev/test/provider.yaml b/provider-dev/test/provider.yaml index 43eef5a..f0a1d1d 100644 --- a/provider-dev/test/provider.yaml +++ b/provider-dev/test/provider.yaml @@ -19,3 +19,5 @@ test_env_defaults: TEST_ORG: stackql TEST_REPO: stackql TEST_USER: stackql + TEST_CALENDAR_USER: jeffreyaven # a user (not an org) - GraphQL user(login:) + TEST_PULL_NUMBER: "600" # any PR number in TEST_REPO diff --git a/provider-dev/test/tier1.yaml b/provider-dev/test/tier1.yaml index e742a4e..2e5b797 100644 --- a/provider-dev/test/tier1.yaml +++ b/provider-dev/test/tier1.yaml @@ -93,17 +93,17 @@ required_columns: [number, title, state] - name: list_workflows - # GitHub returns {total_count, workflows: [...]} - stackql exposes the envelope - # as a single row when no objectKey unwrap is configured. + # GitHub returns {total_count, workflows: [...]}; the provider unwraps the + # `workflows` array (objectKey) so each workflow is a row. sql: | - SELECT total_count, workflows + SELECT id, name, state, path FROM github.actions.workflows WHERE owner = '${TEST_ORG}' AND repo = '${TEST_REPO}' assertions: min_rows: 1 - required_columns: [total_count, workflows] + required_columns: [id, name, state, path] row_predicates: - - "int(r['total_count']) >= 0" + - "all(row['path'] for row in rows)" - name: list_branches sql: | @@ -147,3 +147,123 @@ required_columns: [id, name, full_name] row_predicates: - "all(row['name'] for row in rows)" + +# --- pagination ------------------------------------------------------------- + +- name: pagination_follows_link_header + # The service-level x-stackQL-config declares Link-header pagination. The + # default page size is 30, so more than 30 rows proves a second page was + # fetched. TEST_REPO must have more than 30 commits. + sql: | + SELECT sha + FROM github.repos.commits + WHERE owner = '${TEST_ORG}' AND repo = '${TEST_REPO}' + assertions: + min_rows: 31 + required_columns: [sha] + +- name: pagination_honours_per_page_param + # per_page is an ordinary operation parameter, pushed to the query string. + sql: | + SELECT count(*) AS n + FROM github.repos.commits + WHERE owner = '${TEST_ORG}' AND repo = '${TEST_REPO}' AND per_page = 100 + assertions: + min_rows: 1 + row_predicates: + - "int(r['n']) > 100" + +# --- resources added in the 2026-08 spec refresh ------------------------------ + +- name: list_issue_types + sql: | + SELECT id, name + FROM github.repos.issue_types + WHERE owner = '${TEST_ORG}' AND repo = '${TEST_REPO}' + assertions: + min_rows: 0 # only populated for repos in orgs with issue types configured + +- name: list_contributors_window_function + sql: | + SELECT login, contributions, + RANK() OVER (ORDER BY contributions DESC) AS rank + FROM github.repos.contributors + WHERE owner = '${TEST_ORG}' AND repo = '${TEST_REPO}' + assertions: + min_rows: 1 + required_columns: [login, contributions, rank] + row_predicates: + - "int(rows[0]['rank']) == 1" + +# --- GraphQL-backed resources --------------------------------------------------- +# These POST to https://api.github.com/graphql; the same basic-auth PAT is used. + +- name: graphql_discussions + sql: | + SELECT number, title, json_extract(category, '$.name') AS category, created_at + FROM github.discussions.discussions + WHERE owner = '${TEST_ORG}' AND repo = '${TEST_REPO}' + assertions: + min_rows: 1 # TEST_REPO must have Discussions enabled with at least one discussion + required_columns: [number, title, category, created_at] + row_predicates: + - "all(int(row['number']) > 0 for row in rows)" + +- name: graphql_discussion_categories + sql: | + SELECT name, slug, is_answerable + FROM github.discussions.discussion_categories + WHERE owner = '${TEST_ORG}' AND repo = '${TEST_REPO}' + assertions: + min_rows: 1 + required_columns: [name, slug, is_answerable] + +- name: graphql_contribution_calendar + sql: | + SELECT first_day, contribution_days + FROM github.users.contribution_calendar + WHERE username = '${TEST_CALENDAR_USER}' + assertions: + min_rows: 52 # trailing year, one row per week + required_columns: [first_day, contribution_days] + +- name: graphql_contribution_calendar_json_each + sql: | + SELECT json_extract(d.value, '$.date') AS day, + json_extract(d.value, '$.contribution_count') AS n + FROM github.users.contribution_calendar c, json_each(c.contribution_days) d + WHERE c.username = '${TEST_CALENDAR_USER}' + assertions: + min_rows: 365 + required_columns: [day, n] + +- name: graphql_review_threads + sql: | + SELECT is_resolved, path, line + FROM github.pulls.review_threads + WHERE owner = '${TEST_ORG}' AND repo = '${TEST_REPO}' AND pull_number = ${TEST_PULL_NUMBER} + assertions: + min_rows: 0 # exercises the query path; the PR may have no review threads + +- name: graphql_org_sponsorships + sql: | + SELECT id, privacy_level + FROM github.orgs.sponsorships + WHERE org = '${TEST_ORG}' + assertions: + min_rows: 0 + +- name: graphql_star_history + sql: | + SELECT starred_at, json_extract(user, '$.login') AS login + FROM github.activity.star_history + WHERE owner = '${TEST_ORG}' AND repo = '${TEST_REPO}' + assertions: + min_rows: 1 + required_columns: [starred_at, login] + xfail: + reason: >- + Since July 2026 GitHub limits stargazer listings (REST and GraphQL) to + repository admins and collaborators; other tokens get "Resource not + accessible by personal access token". Remove this xfail when running + with a token that has admin or collaborator access to TEST_REPO. diff --git a/website/docs/index.md b/website/docs/index.md index 9a8f9c8..10b266d 100644 --- a/website/docs/index.md +++ b/website/docs/index.md @@ -20,82 +20,474 @@ Web-based version-control and collaboration. :::info[Provider Summary] -total services: __44__ -total resources: __433__ +total services: __48__ +total resources: __480__ ::: -See also: -[[` SHOW `]](https://stackql.io/docs/language-spec/show) [[` DESCRIBE `]](https://stackql.io/docs/language-spec/describe) [[` REGISTRY `]](https://stackql.io/docs/language-spec/registry) -* * * - -## Installation - -To pull the latest version of the `github` provider, run the following command: - -```bash -REGISTRY PULL github; -``` -> To view previous provider versions or to pull a specific provider version, see [here](https://stackql.io/docs/language-spec/registry). - -## Authentication - -The following system environment variables are used for authentication by default: - -- - GitHub username (login) -- - GitHub Personal Access Token (see Creating a personal access token) - -These variables are sourced at runtime (from the local machine or as CI variables/secrets). - -
- -Using different environment variables - -To use different environment variables (instead of the defaults), use the `--auth` flag of the `stackql` program. For example: - -```bash - -AUTH='{ "github": { "type": "basic", "username_var": "YOUR_GITHUB_USERNAME_VAR", "password_var": "YOUR_GITHUB_PASSWORD_VAR" }}' -stackql shell --auth="${AUTH}" - -``` -or using PowerShell: - -```powershell - -$Auth = "{ 'github': { 'type': 'basic', 'username_var': 'YOUR_GITHUB_USERNAME_VAR', 'password_var': 'YOUR_GITHUB_PASSWORD_VAR' }}" -stackql.exe shell --auth=$Auth - -``` +See also: +[[` SHOW `]](https://stackql.io/docs/language-spec/show) [[` DESCRIBE `]](https://stackql.io/docs/language-spec/describe) [[` REGISTRY `]](https://stackql.io/docs/language-spec/registry) +* * * + +## Installation + +To pull the latest version of the `github` provider, run the following command: + +```bash +REGISTRY PULL github; +``` +> To view previous provider versions or to pull a specific provider version, see [here](https://stackql.io/docs/language-spec/registry). + +## Authentication + +The following system environment variables are used for authentication by default: + +- - GitHub username (login) +- - GitHub Personal Access Token (see Creating a personal access token) + +These variables are sourced at runtime (from the local machine or as CI variables/secrets). + +
+ +Using different environment variables + +To use different environment variables (instead of the defaults), use the `--auth` flag of the `stackql` program. For example: + +```bash + +AUTH='{ "github": { "type": "basic", "username_var": "YOUR_GITHUB_USERNAME_VAR", "password_var": "YOUR_GITHUB_PASSWORD_VAR" }}' +stackql shell --auth="${AUTH}" + +``` +or using PowerShell: + +```powershell + +$Auth = "{ 'github': { 'type': 'basic', 'username_var': 'YOUR_GITHUB_USERNAME_VAR', 'password_var': 'YOUR_GITHUB_PASSWORD_VAR' }}" +stackql.exe shell --auth=$Auth + +```
+### Authenticating with the GitHub CLI (no PAT required) + +If you are logged in to the [GitHub CLI](https://cli.github.com/) (`gh auth login`), you can reuse its stored OAuth token instead of creating a Personal Access Token. The token is supplied to the provider using the `bearer` auth type: + +```bash +export STACKQL_GITHUB_TOKEN=$(gh auth token) +stackql exec --auth='{"github":{"type":"bearer","credentialsenvvar":"STACKQL_GITHUB_TOKEN"}}' \ + "SELECT login FROM github.users.users" +``` + +or using PowerShell: + +```powershell +$env:STACKQL_GITHUB_TOKEN = (gh auth token) +$Auth = "{ 'github': { 'type': 'bearer', 'credentialsenvvar': 'STACKQL_GITHUB_TOKEN' }}" +stackql.exe shell --auth=$Auth +``` + +The same `bearer` configuration works with any GitHub token source, including the `GITHUB_TOKEN` injected into GitHub Actions workflows (set `credentialsenvvar` to `GITHUB_TOKEN`), so no PAT is required in CI either. + +### Using the github provider with agent assistants (MCP) + +StackQL ships an MCP server (`stackql mcp`), so agent assistants such as Claude Code, Claude Desktop, Codex and other MCP clients can query GitHub with SQL, pre-authenticated and without a PAT. + +First, store the GitHub CLI token in a dotenv file that the server sources at startup: + +```bash +mkdir -p ~/.stackql +echo "STACKQL_GITHUB_TOKEN=$(gh auth token)" > ~/.stackql/github.env +``` + +Then register the server with your MCP client, passing the `bearer` auth configuration and the env file. + +For Claude Code: + +```bash +claude mcp add stackql -- stackql mcp \ + --auth='{"github":{"type":"bearer","credentialsenvvar":"STACKQL_GITHUB_TOKEN"}}' \ + --env.file="$HOME/.stackql/github.env" +``` + +For Claude Desktop (`claude_desktop_config.json`) or any client configured with JSON: + +```json +{ + "mcpServers": { + "stackql": { + "command": "stackql", + "args": [ + "mcp", + "--auth={\"github\":{\"type\":\"bearer\",\"credentialsenvvar\":\"STACKQL_GITHUB_TOKEN\"}}", + "--env.file=/path/to/.stackql/github.env" + ] + } + } +} +``` + +For Codex (`~/.codex/config.toml`): + +```toml +[mcp_servers.stackql] +command = "stackql" +args = [ + "mcp", + "--auth={\"github\":{\"type\":\"bearer\",\"credentialsenvvar\":\"STACKQL_GITHUB_TOKEN\"}}", + "--env.file=/path/to/.stackql/github.env" +] +``` + +The agent can then discover and query GitHub using the server's tools (`list_resources`, `describe_resource`, `run_select_query` and so on). Credential values are resolved inside the server process and are never visible to the agent. If you re-authenticate with `gh auth login`, rewrite the dotenv file and ask the agent to call the `reload_credentials` tool (or restart the server) to pick up the new token. + + +## Repository inventory + +Repositories in an organization, with size, language and activity signals: + +```sql +SELECT + name, + visibility, + language, + default_branch, + stargazers_count, + forks_count, + open_issues_count, + pushed_at +FROM github.repos.repos +WHERE org = 'stackql' +ORDER BY pushed_at DESC; +``` + +Repository counts by primary language: + +```sql +SELECT language, count(*) AS repos +FROM github.repos.repos +WHERE org = 'stackql' +GROUP BY language +ORDER BY repos DESC; +``` + +A single repository: + +```sql +SELECT name, full_name, description, default_branch, license +FROM github.repos.details +WHERE owner = 'stackql' AND repo = 'stackql'; +``` + +## Contributors and window functions + +The SQL engine supports window functions, so ranking, running totals and +percentiles run locally over the API results. Rank contributors in a +repository: + +```sql +SELECT + login, + contributions, + RANK() OVER (ORDER BY contributions DESC) AS rank, + ROUND(100.0 * contributions / SUM(contributions) OVER (), 2) AS pct_of_total, + SUM(contributions) OVER (ORDER BY contributions DESC) AS running_total +FROM github.repos.contributors +WHERE owner = 'stackql' AND repo = 'stackql'; +``` + +Group contributors into quartiles: + +```sql +SELECT + login, + contributions, + CASE NTILE(4) OVER (ORDER BY contributions DESC) + WHEN 1 THEN 'Top Contributors' + WHEN 2 THEN 'Active Contributors' + WHEN 3 THEN 'Moderate Contributors' + ELSE 'Occasional Contributors' + END AS contributor_tier +FROM github.repos.contributors +WHERE owner = 'stackql' AND repo = 'stackql'; +``` + +Rank contributors across several repositories with `IN` (one request per +repository, unioned by the engine): + +```sql +SELECT + DENSE_RANK() OVER (ORDER BY SUM(contributions) DESC) AS rank, + login, + SUM(contributions) AS total_contributions, + MAX(html_url) AS html_url +FROM github.repos.contributors +WHERE owner = 'stackql' +AND repo IN ('stackql', 'stackql-deploy', 'stackql-provider-registry') +GROUP BY login +ORDER BY total_contributions DESC; +``` + +## Release cadence + +Days between releases, using `LAG` and `LEAD`: + +```sql +SELECT + tag_name, + published_at, + LAG(tag_name, 1) OVER (ORDER BY published_at) AS previous_release, + LEAD(tag_name, 1) OVER (ORDER BY published_at) AS next_release, + ROUND(julianday(published_at) - julianday(LAG(published_at, 1) OVER (ORDER BY published_at)), 1) AS days_since_last_release +FROM github.repos.releases +WHERE owner = 'stackql' AND repo = 'stackql' +ORDER BY published_at; +``` + +## Issues and pull requests + +Cumulative issue count over time: + +```sql +SELECT + number, + title, + state, + created_at, + COUNT(*) OVER (ORDER BY created_at) AS cumulative_issues, + COUNT(*) OVER (PARTITION BY state ORDER BY created_at) AS cumulative_by_state +FROM github.issues.issues +WHERE owner = 'stackql' AND repo = 'stackql' AND state = 'all' +ORDER BY created_at; +``` + +Open pull requests with their age in days (`state` is pushed to the API as a +query parameter): + +```sql +SELECT + number, + title, + json_extract(user, '$.login') AS author, + ROUND(julianday('now') - julianday(created_at)) AS age_days +FROM github.pulls.pull_requests +WHERE owner = 'stackql' AND repo = 'stackql' AND state = 'open'; +``` + +## Commit activity + +Four-week moving average of commits, expanding the weekly `days` array with +`json_each`: + +```sql +WITH weekly_totals AS ( + SELECT + datetime(week, 'unixepoch') AS week_start, + SUM(json_each.value) AS commits_this_week + FROM github.repos.stats_commit_activity, json_each(days) + WHERE owner = 'stackql' AND repo = 'stackql' + GROUP BY week +) +SELECT + week_start, + commits_this_week, + ROUND(AVG(commits_this_week) OVER (ORDER BY week_start ROWS BETWEEN 3 PRECEDING AND CURRENT ROW), 1) AS four_week_moving_avg, + SUM(commits_this_week) OVER (ORDER BY week_start) AS cumulative_commits +FROM weekly_totals +ORDER BY week_start; +``` + +## GitHub Actions + +Workflows and their most recent runs: + +```sql +SELECT id, name, state, path +FROM github.actions.workflows +WHERE owner = 'stackql' AND repo = 'stackql'; +``` + +```sql +SELECT + id, + display_title, + status, + conclusion, + run_started_at, + ROUND((julianday(updated_at) - julianday(run_started_at)) * 1440) AS duration_minutes +FROM github.actions.workflow_runs +WHERE owner = 'stackql' AND repo = 'stackql' AND workflow_id = 130624966; +``` + +Success rate by workflow: + +```sql +SELECT + name, + COUNT(*) AS runs, + SUM(conclusion = 'success') AS succeeded, + ROUND(100.0 * SUM(conclusion = 'success') / COUNT(*), 1) AS success_pct +FROM github.actions.workflow_runs +WHERE owner = 'stackql' AND repo = 'stackql' +GROUP BY name; +``` + +## Discussions, stars and contribution graphs + +Nested objects in these resources come back as JSON columns; use +`json_extract` to pull out individual fields. + +Discussions in a repository with their category and comment counts: + +```sql +SELECT + number, + title, + json_extract(category, '$.name') AS category, + json_extract(author, '$.login') AS author, + json_extract(comments, '$.total_count') AS comments, + is_answered, + created_at +FROM github.discussions.discussions +WHERE owner = 'stackql' AND repo = 'stackql'; +``` + +Star growth by month (each star with the time it was given). Start a shell +with the GitHub CLI token and no page cap so the full history is fetched: + +```bash +export STACKQL_GITHUB_TOKEN=$(gh auth token) +stackql shell \ + --auth='{"github":{"type":"bearer","credentialsenvvar":"STACKQL_GITHUB_TOKEN"}}' \ + --http.response.pageLimit=0 +``` + +```sql +SELECT + strftime('%Y-%m', starred_at) AS month, + COUNT(*) AS stars, + SUM(COUNT(*)) OVER (ORDER BY strftime('%Y-%m', starred_at)) AS cumulative_stars +FROM github.activity.star_history +WHERE owner = 'stackql' AND repo = 'stackql' +GROUP BY month +ORDER BY month; +``` + +:::note Resources that require a bearer token + +The following resources return `Resource not accessible by personal access token` +when authenticated with a fine-grained personal access token. Use a bearer +token with access to the repository or organization instead, such as the +GitHub CLI token shown above (`gh auth token`): + +- `github.activity.star_history` and `github.activity.repo_stargazers` (stargazer + listings are limited to repository admins and collaborators) +- `github.orgs.saml_identities` (requires organization owner access) + +::: + +A user's contribution calendar, one row per day: + +```sql +SELECT + json_extract(d.value, '$.date') AS day, + json_extract(d.value, '$.contribution_count') AS contributions +FROM github.users.contribution_calendar c, json_each(c.contribution_days) d +WHERE c.username = 'jeffreyaven' +ORDER BY day; +``` + +Unresolved review threads on a pull request: + +```sql +SELECT path, line, json_extract(comments, '$.total_count') AS comments +FROM github.pulls.review_threads +WHERE owner = 'stackql' AND repo = 'stackql' AND pull_number = 600 +AND is_resolved = 0; +``` + +## Rate limits + +```sql +SELECT + json_extract(rate, '$.limit') AS rate_limit, + json_extract(rate, '$.remaining') AS remaining, + json_extract(rate, '$.used') AS used, + datetime(json_extract(rate, '$.reset'), 'unixepoch') AS reset_at +FROM github.rate_limit.rate_limit; +``` + +## Provision, mutate and tear down + +Mutations use the same SQL grammar: `INSERT` creates, `UPDATE` patches, +`EXEC` invokes lifecycle methods and `DELETE` removes. Request body fields are +supplied as columns using their API names. An issue end to end: + +```sql +-- create +INSERT INTO github.issues.issues (owner, repo, title, body, labels) +SELECT 'stackql', 'my-repo', 'Example issue', 'Created with StackQL', '["documentation"]'; + +-- update +UPDATE github.issues.issues +SET state = 'closed', state_reason = 'completed' +WHERE owner = 'stackql' AND repo = 'my-repo' AND issue_number = 1; + +-- lock the conversation +EXEC github.issues.issues.lock + @owner = 'stackql', @repo = 'my-repo', @issue_number = 1 + @@json = '{"lock_reason": "resolved"}'; +``` + +Create a repository in an organization, then delete it: + +```sql +INSERT INTO github.repos.repos (org, name, description, private, auto_init) +SELECT 'stackql', 'stackql-example', 'Created with StackQL', true, true; + +DELETE FROM github.repos.repos +WHERE owner = 'stackql' AND repo = 'stackql-example'; +``` + +Re-run the failed jobs of a workflow run: + +```sql +EXEC github.actions.workflow_runs.re_run_workflow_failed_jobs + @owner = 'stackql', @repo = 'stackql', @run_id = 1234567890; +``` + + ## Services
+gists
+git
gitignore
hosted_compute
interactions
diff --git a/website/docs/services/actions/allowed_actions/index.md b/website/docs/services/actions/allowed_actions/index.md index f01ac75..d4f0b34 100644 --- a/website/docs/services/actions/allowed_actions/index.md +++ b/website/docs/services/actions/allowed_actions/index.md @@ -130,7 +130,7 @@ The following methods are available for this resource: org - 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](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository)."

OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this 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](https://docs.github.com/en/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization)."

OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. @@ -144,7 +144,7 @@ The following methods are available for this resource: org - 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](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository)."

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this 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](https://docs.github.com/en/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization)."

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. @@ -206,7 +206,7 @@ AND repo = '{{ repo }}' -- required -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](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository)."

OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this 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](https://docs.github.com/en/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization)."

OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. ```sql SELECT @@ -247,7 +247,7 @@ AND repo = '{{ repo }}' --required;
-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](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository)."

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this 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](https://docs.github.com/en/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization)."

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. ```sql REPLACE github.actions.allowed_actions diff --git a/website/docs/services/actions/concurrency_groups/index.md b/website/docs/services/actions/concurrency_groups/index.md new file mode 100644 index 0000000..8536f8a --- /dev/null +++ b/website/docs/services/actions/concurrency_groups/index.md @@ -0,0 +1,239 @@ +--- +title: concurrency_groups +hide_title: false +hide_table_of_contents: false +keywords: + - concurrency_groups + - actions + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a concurrency_groups resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the concurrency group.
array
string (uri)API URL for this concurrency group.
integer
+
+ + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the concurrency group.
string (uri)API URL for this concurrency group.
string (date-time)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repo, concurrency_group_nameahead_of_run, ahead_of_jobGets a specific concurrency group for a repository, including all instances in the group's queue.
Returns 404 if the group is inactive or does not exist.

Optionally, pass `ahead_of_run` or `ahead_of_job` to filter the results to only the items
ahead of the specified workflow run or job in the queue, plus the specified item itself
(returned as the last element). This is useful for determining what is blocking a particular
run or job. Returns 422 if the specified run or job is not in this concurrency group.

When using `ahead_of_run`, this matches workflow-level concurrency and any reusable-workflow
leases held on behalf of that run. Job-level leases within the run are not considered to
block the run as a whole. Use `ahead_of_job` to match job-level concurrency and reusable-workflow
leases on the job's ancestor paths.

OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.
owner, repoper_page, afterLists the active concurrency groups for a repository.

OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the concurrency group.
stringThe account owner of the repository. The name is not case sensitive.
stringThe name of the repository without the `.git` extension. The name is not case sensitive.
stringA 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)."
integerFilter to items ahead of this job ID in the queue, plus the job itself. Matches job-level concurrency and reusable-workflow leases on the job's ancestor paths. Mutually exclusive with `ahead_of_run`.
integerFilter to items ahead of this workflow run ID in the queue, plus the run itself. Matches workflow-level concurrency and reusable-workflow leases held on behalf of the run. Mutually exclusive with `ahead_of_job`.
integerThe 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)."
+ +## `SELECT` examples + + + + +Gets a specific concurrency group for a repository, including all instances in the group's queue.
Returns 404 if the group is inactive or does not exist.

Optionally, pass `ahead_of_run` or `ahead_of_job` to filter the results to only the items
ahead of the specified workflow run or job in the queue, plus the specified item itself
(returned as the last element). This is useful for determining what is blocking a particular
run or job. Returns 422 if the specified run or job is not in this concurrency group.

When using `ahead_of_run`, this matches workflow-level concurrency and any reusable-workflow
leases held on behalf of that run. Job-level leases within the run are not considered to
block the run as a whole. Use `ahead_of_job` to match job-level concurrency and reusable-workflow
leases on the job's ancestor paths.

OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + +```sql +SELECT +group_name, +group_members, +group_url, +total_count +FROM github.actions.concurrency_groups +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +AND concurrency_group_name = '{{ concurrency_group_name }}' -- required +AND ahead_of_run = '{{ ahead_of_run }}' +AND ahead_of_job = '{{ ahead_of_job }}' +; +``` +
+ + +Lists the active concurrency groups for a repository.

OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + +```sql +SELECT +group_name, +group_url, +last_acquired_at +FROM github.actions.concurrency_groups +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +AND per_page = '{{ per_page }}' +AND after = '{{ after }}' +; +``` +
+
diff --git a/website/docs/services/actions/enabled_repos/index.md b/website/docs/services/actions/enabled_repos/index.md index eec0f9b..0131ab1 100644 --- a/website/docs/services/actions/enabled_repos/index.md +++ b/website/docs/services/actions/enabled_repos/index.md @@ -566,28 +566,28 @@ The following methods are available for this resource: org per_page, page - 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](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository)."

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this 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](https://docs.github.com/en/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization)."

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. org, repository_id - 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](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository)."

OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this 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](https://docs.github.com/en/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization)."

OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. org, selected_repository_ids - 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](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository)."


OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this 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](https://docs.github.com/en/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization)."


OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. org, repository_id - 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](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository)."

OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this 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](https://docs.github.com/en/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization)."

OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. @@ -638,7 +638,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -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](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository)."

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this 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](https://docs.github.com/en/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization)."

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. ```sql SELECT @@ -761,7 +761,7 @@ AND page = '{{ page }}' > -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](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository)."

OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this 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](https://docs.github.com/en/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization)."

OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. ```sql REPLACE github.actions.enabled_repos @@ -774,7 +774,7 @@ AND repository_id = '{{ repository_id }}' --required;
-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](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository)."


OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this 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](https://docs.github.com/en/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization)."


OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. ```sql REPLACE github.actions.enabled_repos @@ -798,7 +798,7 @@ AND selected_repository_ids = '{{ selected_repository_ids }}' --required; > -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](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository)."

OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this 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](https://docs.github.com/en/organizations/managing-organization-settings/disabling-or-limiting-github-actions-for-your-organization)."

OAuth tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. ```sql DELETE FROM github.actions.enabled_repos diff --git a/website/docs/services/actions/index.md b/website/docs/services/actions/index.md index 64a8eeb..ee895eb 100644 --- a/website/docs/services/actions/index.md +++ b/website/docs/services/actions/index.md @@ -18,7 +18,7 @@ actions service documentation. :::info[Service Summary] -total resources: __52__ +total resources: __54__ ::: @@ -32,6 +32,7 @@ total resources: __52__ cache_retention_limit
cache_storage_limit
cache_usage
+concurrency_groups
default_workflow_permissions
enabled_repos
fork_pr_contributor_approval_permissions
@@ -73,6 +74,7 @@ total resources: __52__ variables
workflow_access
workflow_jobs
+workflow_run_concurrency_groups
workflow_run_logs
workflow_run_reviews
workflow_run_usage
diff --git a/website/docs/services/actions/oidc/index.md b/website/docs/services/actions/oidc/index.md index 8fbe855..f13fad1 100644 --- a/website/docs/services/actions/oidc/index.md +++ b/website/docs/services/actions/oidc/index.md @@ -56,11 +56,21 @@ Status response array Array of unique strings. Each claim key can only contain alphanumeric characters and underscores. + + + string + The current `sub` claim prefix for this repository. + boolean Whether to use the default template or not. If `true`, the `include_claim_keys` field is ignored. + + + boolean + Whether the repository has opted in to the immutable OIDC subject claim format. When `true`, OIDC tokens will use a stable, repository-ID-based `sub` claim. If not set at the repository level, falls back to the organization-level setting. +
@@ -139,7 +149,9 @@ Gets the customization template for an OpenID Connect (OIDC) subject claim.
string The status of the runner. (example: online) + + + string + The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once. (example: 2.323.0) +
@@ -204,7 +209,8 @@ busy, ephemeral, labels, os, -status +status, +version FROM github.actions.org_runner_group_runners WHERE org = '{{ org }}' -- required AND runner_group_id = '{{ runner_group_id }}' -- required diff --git a/website/docs/services/actions/self_hosted_runners/index.md b/website/docs/services/actions/self_hosted_runners/index.md index 5587f29..ba5ea43 100644 --- a/website/docs/services/actions/self_hosted_runners/index.md +++ b/website/docs/services/actions/self_hosted_runners/index.md @@ -94,6 +94,11 @@ Response string The status of the runner. (example: online) + + + string + The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once. (example: 2.323.0) +
@@ -150,6 +155,11 @@ Response string The status of the runner. (example: online) + + + string + The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once. (example: 2.323.0) +
@@ -206,6 +216,11 @@ Response string The status of the runner. (example: online) + + + string + The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once. (example: 2.323.0) + @@ -262,6 +277,11 @@ Response string The status of the runner. (example: online) + + + string + The version of the GitHub Actions Runner software. This is only set if the runner has connected to the service at least once. (example: 2.323.0) + @@ -402,7 +422,8 @@ busy, ephemeral, labels, os, -status +status, +version FROM github.actions.self_hosted_runners WHERE owner = '{{ owner }}' -- required AND repo = '{{ repo }}' -- required @@ -423,7 +444,8 @@ busy, ephemeral, labels, os, -status +status, +version FROM github.actions.self_hosted_runners WHERE org = '{{ org }}' -- required AND runner_id = '{{ runner_id }}' -- required @@ -443,7 +465,8 @@ busy, ephemeral, labels, os, -status +status, +version FROM github.actions.self_hosted_runners WHERE owner = '{{ owner }}' -- required AND repo = '{{ repo }}' -- required @@ -466,7 +489,8 @@ busy, ephemeral, labels, os, -status +status, +version FROM github.actions.self_hosted_runners WHERE org = '{{ org }}' -- required AND name = '{{ name }}' diff --git a/website/docs/services/actions/workflow_jobs/index.md b/website/docs/services/actions/workflow_jobs/index.md index 23d27fb..813dd33 100644 --- a/website/docs/services/actions/workflow_jobs/index.md +++ b/website/docs/services/actions/workflow_jobs/index.md @@ -55,7 +55,7 @@ Response - integer + integer (int64) The id of the job. @@ -70,7 +70,7 @@ Response - integer + integer (int64) The id of the associated workflow run. @@ -186,7 +186,7 @@ Response - integer + integer (int64) The id of the job. @@ -201,7 +201,7 @@ Response - integer + integer (int64) The id of the associated workflow run. @@ -317,7 +317,7 @@ Response - integer + integer (int64) The id of the job. @@ -332,7 +332,7 @@ Response - integer + integer (int64) The id of the associated workflow run. @@ -494,7 +494,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# - integer + integer (int64) The unique identifier of the job. diff --git a/website/docs/services/actions/workflow_run_concurrency_groups/index.md b/website/docs/services/actions/workflow_run_concurrency_groups/index.md new file mode 100644 index 0000000..377e73d --- /dev/null +++ b/website/docs/services/actions/workflow_run_concurrency_groups/index.md @@ -0,0 +1,172 @@ +--- +title: workflow_run_concurrency_groups +hide_title: false +hide_table_of_contents: false +keywords: + - workflow_run_concurrency_groups + - actions + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a workflow_run_concurrency_groups resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the concurrency group.
arrayItems belonging to this workflow run that are either currently holding or waiting for the concurrency group lease. May be empty if the run no longer has any active or queued items in this group.
string (uri)API URL for this concurrency group. May return 404 if the group has no active items at the time it is requested, since the get-by-name endpoint reports the live repo-wide state of a group while this endpoint lists groups associated with a run by configuration.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repo, run_idper_page, before, afterLists all concurrency groups associated with a workflow run or its jobs.

The set of groups is derived from the run's configuration, so a group is
included even when the run no longer has any items currently holding or
waiting in it. In that case the `group_members` array will be empty.
`total_count` reflects the number of groups the run participates in by
configuration, not the number with active items.

This differs from `GET /repos/{owner}/{repo}/actions/concurrency_groups/{group_name}`,
which returns 404 when a group has no active items. That endpoint reports
the live state of a group repo-wide, while this endpoint reports the
groups associated with a specific run by configuration.

Results are sorted by group name and support cursor-based pagination via
`before` and `after`. The `after` cursor paginates forward only and does
not emit a `rel="prev"` Link; use `before` to page backward from a
forward page's `next` cursor.

OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe account owner of the repository. The name is not case sensitive.
stringThe name of the repository without the `.git` extension. The name is not case sensitive.
integerThe unique identifier of the workflow run.
stringA 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)."
stringA 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)."
integerThe 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)."
+ +## `SELECT` examples + + + + +Lists all concurrency groups associated with a workflow run or its jobs.

The set of groups is derived from the run's configuration, so a group is
included even when the run no longer has any items currently holding or
waiting in it. In that case the `group_members` array will be empty.
`total_count` reflects the number of groups the run participates in by
configuration, not the number with active items.

This differs from `GET /repos/{owner}/{repo}/actions/concurrency_groups/{group_name}`,
which returns 404 when a group has no active items. That endpoint reports
the live state of a group repo-wide, while this endpoint reports the
groups associated with a specific run by configuration.

Results are sorted by group name and support cursor-based pagination via
`before` and `after`. The `after` cursor paginates forward only and does
not emit a `rel="prev"` Link; use `before` to page backward from a
forward page's `next` cursor.

OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint with a private repository. + +```sql +SELECT +group_name, +group_members, +group_url +FROM github.actions.workflow_run_concurrency_groups +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +AND run_id = '{{ run_id }}' -- required +AND per_page = '{{ per_page }}' +AND before = '{{ before }}' +AND after = '{{ after }}' +; +``` +
+
diff --git a/website/docs/services/actions/workflow_runs/index.md b/website/docs/services/actions/workflow_runs/index.md index 29febd3..d6076b8 100644 --- a/website/docs/services/actions/workflow_runs/index.md +++ b/website/docs/services/actions/workflow_runs/index.md @@ -56,7 +56,7 @@ Response - integer + integer (int64) The ID of the workflow run. @@ -66,7 +66,7 @@ Response - integer + integer (int64) The ID of the associated check suite. @@ -252,7 +252,7 @@ Response - integer + integer (int64) The ID of the workflow run. @@ -262,7 +262,7 @@ Response - integer + integer (int64) The ID of the associated check suite. @@ -448,7 +448,7 @@ Response - integer + integer (int64) The ID of the workflow run. @@ -458,7 +458,7 @@ Response - integer + integer (int64) The ID of the associated check suite. @@ -644,7 +644,7 @@ Response - integer + integer (int64) The ID of the workflow run. @@ -654,7 +654,7 @@ Response - integer + integer (int64) The ID of the associated check suite. @@ -949,7 +949,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# - integer + integer (int64) The unique identifier of the job. @@ -984,7 +984,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# - integer + integer (int64) Returns workflow runs with the `check_suite_id` that you specify. @@ -1350,7 +1350,8 @@ EXEC github.actions.workflow_runs.re_run_job_for_workflow_run @job_id='{{ job_id }}' --required @@json= '{ -"enable_debug_logging": {{ enable_debug_logging }} +"enable_debug_logging": {{ enable_debug_logging }}, +"enable_debugger": {{ enable_debugger }} }' ; ``` diff --git a/website/docs/services/activity/index.md b/website/docs/services/activity/index.md index 3acb31a..f0a5924 100644 --- a/website/docs/services/activity/index.md +++ b/website/docs/services/activity/index.md @@ -18,7 +18,7 @@ activity service documentation. :::info[Service Summary] -total resources: __12__ +total resources: __13__ ::: @@ -30,13 +30,14 @@ total resources: __12__ notifications
notifications_thread_subscriptions
public_events
-received_events +received_events
+received_public_events
diff --git a/website/docs/services/activity/star_history/index.md b/website/docs/services/activity/star_history/index.md new file mode 100644 index 0000000..469ce1e --- /dev/null +++ b/website/docs/services/activity/star_history/index.md @@ -0,0 +1,142 @@ +--- +title: star_history +hide_title: false +hide_table_of_contents: false +keywords: + - star_history + - activity + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a star_history resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string (date-time)When the star was given.
objectThe user who starred the repository (`login`, `id`, `database_id`, `name`, `company`, `location`, `url`, `avatar_url`).
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repoEvery star on a repository with the time it was given, oldest first - suitable for star growth over time. Backed by the GitHub GraphQL API (`repository.stargazers` ordered by `STARRED_AT`). Since July 2026 GitHub limits stargazer listings to repository admins and collaborators; other tokens get "Resource not accessible by personal access token".
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe account owner of the repository.
stringThe name of the repository.
+ +## `SELECT` examples + + + + +Every star on a repository with the time it was given, oldest first - suitable for star growth over time. Backed by the GitHub GraphQL API (`repository.stargazers` ordered by `STARRED_AT`). Since July 2026 GitHub limits stargazer listings to repository admins and collaborators; other tokens get "Resource not accessible by personal access token". + +```sql +SELECT +starred_at, +user +FROM github.activity.star_history +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +; +``` + + diff --git a/website/docs/services/agent_tasks/repo_tasks/index.md b/website/docs/services/agent_tasks/repo_tasks/index.md index 1ea43bf..fe00537 100644 --- a/website/docs/services/agent_tasks/repo_tasks/index.md +++ b/website/docs/services/agent_tasks/repo_tasks/index.md @@ -122,6 +122,11 @@ Task retrieved successfully string (date-time) Last update timestamp + + + object + Structured information about billing units consumed by the session. + object @@ -178,6 +183,11 @@ Tasks retrieved successfully string Type of the task creator (user, organization) + + + object + Custom agent metadata associated with this task + string @@ -243,21 +253,21 @@ The following methods are available for this resource: owner, repo, task_id - > [!NOTE]
> This endpoint is in public preview and is subject to change.

Returns a task by ID scoped to an owner/repo path
+ > [!NOTE]
> This endpoint is in public preview and is subject to change.

Returns a task by ID scoped to an owner/repo path

**Fine-grained access tokens for "Get a task by repo"**

This endpoint works with the following fine-grained token types:

* [GitHub App user access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app)
* [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token)

The fine-grained token must have the following permission set:

* "Agent tasks" repository permissions (read)

GitHub App installation access tokens are not supported for this endpoint.
owner, repo per_page, page, sort, direction, state, is_archived, since, creator_id - > [!NOTE]
> This endpoint is in public preview and is subject to change.

Returns a list of tasks for a specific repository
+ > [!NOTE]
> This endpoint is in public preview and is subject to change.

Returns a list of tasks for a specific repository

**Fine-grained access tokens for "List tasks for repository"**

This endpoint works with the following fine-grained token types:

* [GitHub App user access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app)
* [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token)

The fine-grained token must have the following permission set:

* "Agent tasks" repository permissions (read)

GitHub App installation access tokens are not supported for this endpoint.
- + owner, repo, prompt - > [!NOTE]
> This endpoint is in public preview and is subject to change.

Creates a new task for a repository.
+ > [!NOTE]
> This endpoint is in public preview and is subject to change.

Starts a new Copilot cloud agent task for a repository.

This endpoint is only available to users with a Copilot Business or Copilot Enterprise subscription.

**Fine-grained access tokens for "Start a task"**

This endpoint works with the following fine-grained token types:

* [GitHub App user access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app)
* [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token)

The fine-grained token must have the following permission set:

* "Agent tasks" repository permissions (read and write)

GitHub App installation access tokens are not supported for this endpoint.
@@ -292,8 +302,8 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# - integer - Filter tasks by creator user ID + array + Filter tasks by creator user ID. Accepts one or more user IDs. @@ -344,7 +354,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -> [!NOTE]
> This endpoint is in public preview and is subject to change.

Returns a task by ID scoped to an owner/repo path
+> [!NOTE]
> This endpoint is in public preview and is subject to change.

Returns a task by ID scoped to an owner/repo path

**Fine-grained access tokens for "Get a task by repo"**

This endpoint works with the following fine-grained token types:

* [GitHub App user access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app)
* [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token)

The fine-grained token must have the following permission set:

* "Agent tasks" repository permissions (read)

GitHub App installation access tokens are not supported for this endpoint.
```sql SELECT @@ -362,6 +372,7 @@ prompt, repository, state, updated_at, +usage, user FROM github.agent_tasks.repo_tasks WHERE owner = '{{ owner }}' -- required @@ -372,7 +383,7 @@ AND task_id = '{{ task_id }}' -- required
-> [!NOTE]
> This endpoint is in public preview and is subject to change.

Returns a list of tasks for a specific repository
+> [!NOTE]
> This endpoint is in public preview and is subject to change.

Returns a list of tasks for a specific repository

**Fine-grained access tokens for "List tasks for repository"**

This endpoint works with the following fine-grained token types:

* [GitHub App user access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app)
* [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token)

The fine-grained token must have the following permission set:

* "Agent tasks" repository permissions (read)

GitHub App installation access tokens are not supported for this endpoint.
```sql SELECT @@ -383,6 +394,7 @@ artifacts, created_at, creator, creator_type, +custom_agent, html_url, owner, repository, @@ -411,30 +423,34 @@ AND creator_id = '{{ creator_id }}' ## `INSERT` examples - + -> [!NOTE]
> This endpoint is in public preview and is subject to change.

Creates a new task for a repository.
+> [!NOTE]
> This endpoint is in public preview and is subject to change.

Starts a new Copilot cloud agent task for a repository.

This endpoint is only available to users with a Copilot Business or Copilot Enterprise subscription.

**Fine-grained access tokens for "Start a task"**

This endpoint works with the following fine-grained token types:

* [GitHub App user access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app)
* [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token)

The fine-grained token must have the following permission set:

* "Agent tasks" repository permissions (read and write)

GitHub App installation access tokens are not supported for this endpoint.
```sql INSERT INTO github.agent_tasks.repo_tasks ( prompt, model, +custom_agent, create_pull_request, base_ref, +head_ref, owner, repo ) SELECT '{{ prompt }}' /* required */, '{{ model }}', +'{{ custom_agent }}', {{ create_pull_request }}, '{{ base_ref }}', +'{{ head_ref }}', '{{ owner }}', '{{ repo }}' RETURNING @@ -445,6 +461,7 @@ artifacts, created_at, creator, creator_type, +custom_agent, html_url, owner, repository, @@ -475,6 +492,10 @@ user_collaborators value: "{{ model }}" description: | The model to use for this task. The allowed models may change over time and depend on the user's GitHub Copilot plan and organization policies. Currently supported values: \`claude-sonnet-4.6\`, \`claude-opus-4.6\`, \`gpt-5.2-codex\`, \`gpt-5.3-codex\`, \`gpt-5.4\`, \`claude-sonnet-4.5\`, \`claude-opus-4.5\` + - name: custom_agent + value: "{{ custom_agent }}" + description: | + Optional identifier for a custom agent to use for this task. Use the custom agent's filename without the extension - for example, for a \`.github/agents/performance-optimizer.agent.md\` custom agent, use \`performance-optimizer\`. - name: create_pull_request value: {{ create_pull_request }} description: | @@ -484,6 +505,10 @@ user_collaborators value: "{{ base_ref }}" description: | Base ref for new branch/PR + - name: head_ref + value: "{{ head_ref }}" + description: | + Head ref for existing branch/PR. If provided with \`base_ref\`, the agent looks up open PR context for \`head_ref\` targeting \`base_ref\` and commits to \`head_ref\` instead of creating a new branch. `}
diff --git a/website/docs/services/agent_tasks/tasks/index.md b/website/docs/services/agent_tasks/tasks/index.md index 50589b6..1bc8f46 100644 --- a/website/docs/services/agent_tasks/tasks/index.md +++ b/website/docs/services/agent_tasks/tasks/index.md @@ -122,6 +122,11 @@ Task retrieved successfully string (date-time) Last update timestamp + + + object + Structured information about billing units consumed by the session. + object @@ -178,6 +183,11 @@ Tasks retrieved successfully string Type of the task creator (user, organization) + + + object + Custom agent metadata associated with this task + string @@ -243,14 +253,14 @@ The following methods are available for this resource: task_id - > [!NOTE]
> This endpoint is in public preview and is subject to change.

Returns a task by ID with its associated sessions
+ > [!NOTE]
> This endpoint is in public preview and is subject to change.

Returns a task by ID with its associated sessions

**Fine-grained access tokens for "Get a task by ID"**

This endpoint works with the following fine-grained token types:

* [GitHub App user access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app)
* [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token)

The fine-grained token must have the following permission set:

* "Agent tasks" repository permissions (read)

GitHub App installation access tokens are not supported for this endpoint.
per_page, page, sort, direction, state, is_archived, since - > [!NOTE]
> This endpoint is in public preview and is subject to change.

Returns a list of tasks for the authenticated user
+ > [!NOTE]
> This endpoint is in public preview and is subject to change.

Returns a list of tasks for the authenticated user

**Fine-grained access tokens for "List tasks"**

This endpoint works with the following fine-grained token types:

* [GitHub App user access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app)
* [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token)

The fine-grained token must have the following permission set:

* "Agent tasks" repository permissions (read)

GitHub App installation access tokens are not supported for this endpoint.
@@ -322,7 +332,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -> [!NOTE]
> This endpoint is in public preview and is subject to change.

Returns a task by ID with its associated sessions
+> [!NOTE]
> This endpoint is in public preview and is subject to change.

Returns a task by ID with its associated sessions

**Fine-grained access tokens for "Get a task by ID"**

This endpoint works with the following fine-grained token types:

* [GitHub App user access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app)
* [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token)

The fine-grained token must have the following permission set:

* "Agent tasks" repository permissions (read)

GitHub App installation access tokens are not supported for this endpoint.
```sql SELECT @@ -340,6 +350,7 @@ prompt, repository, state, updated_at, +usage, user FROM github.agent_tasks.tasks WHERE task_id = '{{ task_id }}' -- required @@ -348,7 +359,7 @@ WHERE task_id = '{{ task_id }}' -- required
-> [!NOTE]
> This endpoint is in public preview and is subject to change.

Returns a list of tasks for the authenticated user
+> [!NOTE]
> This endpoint is in public preview and is subject to change.

Returns a list of tasks for the authenticated user

**Fine-grained access tokens for "List tasks"**

This endpoint works with the following fine-grained token types:

* [GitHub App user access tokens](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app)
* [Fine-grained personal access tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token)

The fine-grained token must have the following permission set:

* "Agent tasks" repository permissions (read)

GitHub App installation access tokens are not supported for this endpoint.
```sql SELECT @@ -359,6 +370,7 @@ artifacts, created_at, creator, creator_type, +custom_agent, html_url, owner, repository, diff --git a/website/docs/services/agents/index.md b/website/docs/services/agents/index.md new file mode 100644 index 0000000..0c97e2d --- /dev/null +++ b/website/docs/services/agents/index.md @@ -0,0 +1,38 @@ +--- +title: agents +hide_title: false +hide_table_of_contents: false +keywords: + - agents + - github + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +agents service documentation. + +:::info[Service Summary] + +total resources: __7__ + +::: + +## Resources + \ No newline at end of file diff --git a/website/docs/services/agents/public_keys/index.md b/website/docs/services/agents/public_keys/index.md new file mode 100644 index 0000000..c5674ca --- /dev/null +++ b/website/docs/services/agents/public_keys/index.md @@ -0,0 +1,243 @@ +--- +title: public_keys +hide_title: false +hide_table_of_contents: false +keywords: + - public_keys + - agents + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a public_keys resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer
stringThe identifier for the key. (example: 1234567)
string (example: 2011-01-26T19:01:12Z)
stringThe Base64 encoded public key. (example: hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs=)
string (example: ssh-rsa AAAAB3NzaC1yc2EAAA)
string (example: https://api.github.com/user/keys/2)
+
+ + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer
stringThe identifier for the key. (example: 1234567)
string (example: 2011-01-26T19:01:12Z)
stringThe Base64 encoded public key. (example: hBT5WZEj8ZoOv6TYJsfWq7MxTEQopZO5/IT3ZCVQPzs=)
string (example: ssh-rsa AAAAB3NzaC1yc2EAAA)
string (example: https://api.github.com/user/keys/2)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repoGets 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.
orgGets your public key, which you need to encrypt secrets. You need to
encrypt a secret before you can create or update secrets.

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.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe organization name. The name is not case sensitive.
stringThe account owner of the repository. The name is not case sensitive.
stringThe name of the repository without the `.git` extension. The name is not case sensitive.
+ +## `SELECT` examples + + + + +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. + +```sql +SELECT +id, +key_id, +created_at, +key, +title, +url +FROM github.agents.public_keys +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +; +``` +
+ + +Gets your public key, which you need to encrypt secrets. You need to
encrypt a secret before you can create or update secrets.

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. + +```sql +SELECT +id, +key_id, +created_at, +key, +title, +url +FROM github.agents.public_keys +WHERE org = '{{ org }}' -- required +; +``` +
+
diff --git a/website/docs/services/agents/repo_org_secrets/index.md b/website/docs/services/agents/repo_org_secrets/index.md new file mode 100644 index 0000000..3cc8ed4 --- /dev/null +++ b/website/docs/services/agents/repo_org_secrets/index.md @@ -0,0 +1,160 @@ +--- +title: repo_org_secrets +hide_title: false +hide_table_of_contents: false +keywords: + - repo_org_secrets + - agents + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a repo_org_secrets resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the secret. (example: SECRET_TOKEN)
string (date-time)
string (date-time)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repoper_page, pageLists 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.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe account owner of the repository. The name is not case sensitive.
stringThe name of the repository without the `.git` extension. The name is not case sensitive.
integerThe 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)."
integerThe 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)."
+ +## `SELECT` examples + + + + +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. + +```sql +SELECT +name, +created_at, +updated_at +FROM github.agents.repo_org_secrets +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +AND per_page = '{{ per_page }}' +AND page = '{{ page }}' +; +``` +
+
diff --git a/website/docs/services/agents/repo_org_variables/index.md b/website/docs/services/agents/repo_org_variables/index.md new file mode 100644 index 0000000..c3dd3e4 --- /dev/null +++ b/website/docs/services/agents/repo_org_variables/index.md @@ -0,0 +1,166 @@ +--- +title: repo_org_variables +hide_title: false +hide_table_of_contents: false +keywords: + - repo_org_variables + - agents + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a repo_org_variables resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the variable. (example: USERNAME)
string (date-time)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)
string (date-time)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)
stringThe value of the variable. (example: octocat)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repoper_page, pageLists 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.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe account owner of the repository. The name is not case sensitive.
stringThe name of the repository without the `.git` extension. The name is not case sensitive.
integerThe 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)."
integerThe 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)."
+ +## `SELECT` examples + + + + +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. + +```sql +SELECT +name, +created_at, +updated_at, +value +FROM github.agents.repo_org_variables +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +AND per_page = '{{ per_page }}' +AND page = '{{ page }}' +; +``` +
+
diff --git a/website/docs/services/agents/repos_for_org_variable/index.md b/website/docs/services/agents/repos_for_org_variable/index.md new file mode 100644 index 0000000..052970c --- /dev/null +++ b/website/docs/services/agents/repos_for_org_variable/index.md @@ -0,0 +1,802 @@ +--- +title: repos_for_org_variable +hide_title: false +hide_table_of_contents: false +keywords: + - repos_for_org_variable + - agents + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a repos_for_org_variable resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer (int64)
string (example: Hello-World)
string (example: MDEwOlJlcG9zaXRvcnkxMjk2MjY5)
string (example: octocat/Hello-World)
string (example: admin)
boolean
string (example: http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref})
boolean
string (example: http://api.github.com/repos/octocat/Hello-World/assignees{/user})
string (example: http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha})
string (example: http://api.github.com/repos/octocat/Hello-World/branches{/branch})
string
objectCode Of Conduct (title: Code Of Conduct)
string (example: http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator})
string (example: http://api.github.com/repos/octocat/Hello-World/comments{/number})
string (example: http://api.github.com/repos/octocat/Hello-World/commits{/sha})
string (example: http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head})
string (example: http://api.github.com/repos/octocat/Hello-World/contents/{+path})
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/contributors)
string (date-time) (example: 2011-01-26T19:01:12Z)
objectThe custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values.
string
boolean
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/deployments)
string (example: This your first repo!)
boolean
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/downloads)
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/events)
boolean
integer
integer
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/forks)
string (example: http://api.github.com/repos/octocat/Hello-World/git/commits{/sha})
string (example: http://api.github.com/repos/octocat/Hello-World/git/refs{/sha})
string (example: http://api.github.com/repos/octocat/Hello-World/git/tags{/sha})
string
boolean
boolean
boolean
boolean
boolean
boolean
boolean
string
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/hooks)
string (uri) (example: https://github.com/octocat/Hello-World)
boolean
string (example: http://api.github.com/repos/octocat/Hello-World/issues/comments{/number})
string (example: http://api.github.com/repos/octocat/Hello-World/issues/events{/number})
string (example: http://api.github.com/repos/octocat/Hello-World/issues{/number})
string (example: http://api.github.com/repos/octocat/Hello-World/keys{/key_id})
string (example: http://api.github.com/repos/octocat/Hello-World/labels{/name})
string
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/languages)
object
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/merges)
string (example: http://api.github.com/repos/octocat/Hello-World/milestones{/number})
string
integer
string (example: http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating})
integer
integer
objectA GitHub user. (title: Simple User)
object
boolean
stringThe policy controlling who can create pull requests: all or collaborators_only. (all, collaborators_only)
string (example: http://api.github.com/repos/octocat/Hello-World/pulls{/number})
string (date-time) (example: 2011-01-26T19:06:43Z)
string (example: http://api.github.com/repos/octocat/Hello-World/releases{/id})
object
integerThe size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0.
string
integer
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/stargazers)
string (example: http://api.github.com/repos/octocat/Hello-World/statuses/{sha})
integer
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/subscribers)
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/subscription)
string
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/tags)
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/teams)
string
array
string (example: http://api.github.com/repos/octocat/Hello-World/git/trees{/sha})
string (date-time) (example: 2011-01-26T19:14:43Z)
string (uri) (example: https://api.github.com/repos/octocat/Hello-World)
string
integer
integer
boolean
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
org, namepage, per_pageLists all repositories that can access an organization agent 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.
org, name, repository_idAdds a repository to an organization agent 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 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.
org, name, selected_repository_idsReplaces all repositories for an organization agent 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.
org, name, repository_idRemoves a repository from an organization agent 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.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the variable.
stringThe organization name. The name is not case sensitive.
integer
integerThe 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)."
integerThe 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)."
+ +## `SELECT` examples + + + + +Lists all repositories that can access an organization agent 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. + +```sql +SELECT +id, +name, +node_id, +full_name, +role_name, +allow_forking, +archive_url, +archived, +assignees_url, +blobs_url, +branches_url, +clone_url, +code_of_conduct, +collaborators_url, +comments_url, +commits_url, +compare_url, +contents_url, +contributors_url, +created_at, +custom_properties, +default_branch, +delete_branch_on_merge, +deployments_url, +description, +disabled, +downloads_url, +events_url, +fork, +forks, +forks_count, +forks_url, +git_commits_url, +git_refs_url, +git_tags_url, +git_url, +has_discussions, +has_downloads, +has_issues, +has_pages, +has_projects, +has_pull_requests, +has_wiki, +homepage, +hooks_url, +html_url, +is_template, +issue_comment_url, +issue_events_url, +issues_url, +keys_url, +labels_url, +language, +languages_url, +license, +merges_url, +milestones_url, +mirror_url, +network_count, +notifications_url, +open_issues, +open_issues_count, +owner, +permissions, +private, +pull_request_creation_policy, +pulls_url, +pushed_at, +releases_url, +security_and_analysis, +size, +ssh_url, +stargazers_count, +stargazers_url, +statuses_url, +subscribers_count, +subscribers_url, +subscription_url, +svn_url, +tags_url, +teams_url, +temp_clone_token, +topics, +trees_url, +updated_at, +url, +visibility, +watchers, +watchers_count, +web_commit_signoff_required +FROM github.agents.repos_for_org_variable +WHERE org = '{{ org }}' -- required +AND name = '{{ name }}' -- required +AND page = '{{ page }}' +AND per_page = '{{ per_page }}' +; +``` +
+
+ + +## `INSERT` examples + + + + +Adds a repository to an organization agent 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 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. + +```sql +INSERT INTO github.agents.repos_for_org_variable ( +org, +name, +repository_id +) +SELECT +'{{ org }}', +'{{ name }}', +'{{ repository_id }}' +; +``` +
+ + +{`# Description fields are for documentation purposes +- name: repos_for_org_variable + props: + - name: org + value: "{{ org }}" + description: Required parameter for the repos_for_org_variable resource. + - name: name + value: "{{ name }}" + description: Required parameter for the repos_for_org_variable resource. + - name: repository_id + value: {{ repository_id }} + description: Required parameter for the repos_for_org_variable resource. +`} + + +
+ + +## `REPLACE` examples + + + + +Replaces all repositories for an organization agent 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. + +```sql +REPLACE github.agents.repos_for_org_variable +SET +selected_repository_ids = '{{ selected_repository_ids }}' +WHERE +org = '{{ org }}' --required +AND name = '{{ name }}' --required +AND selected_repository_ids = '{{ selected_repository_ids }}' --required; +``` +
+
+ + +## `DELETE` examples + + + + +Removes a repository from an organization agent 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. + +```sql +DELETE FROM github.agents.repos_for_org_variable +WHERE org = '{{ org }}' --required +AND name = '{{ name }}' --required +AND repository_id = '{{ repository_id }}' --required +; +``` +
+
diff --git a/website/docs/services/agents/repos_for_secret/index.md b/website/docs/services/agents/repos_for_secret/index.md new file mode 100644 index 0000000..c8482a0 --- /dev/null +++ b/website/docs/services/agents/repos_for_secret/index.md @@ -0,0 +1,802 @@ +--- +title: repos_for_secret +hide_title: false +hide_table_of_contents: false +keywords: + - repos_for_secret + - agents + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a repos_for_secret resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer (int64)
string (example: Hello-World)
string (example: MDEwOlJlcG9zaXRvcnkxMjk2MjY5)
string (example: octocat/Hello-World)
string (example: admin)
boolean
string (example: http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref})
boolean
string (example: http://api.github.com/repos/octocat/Hello-World/assignees{/user})
string (example: http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha})
string (example: http://api.github.com/repos/octocat/Hello-World/branches{/branch})
string
objectCode Of Conduct (title: Code Of Conduct)
string (example: http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator})
string (example: http://api.github.com/repos/octocat/Hello-World/comments{/number})
string (example: http://api.github.com/repos/octocat/Hello-World/commits{/sha})
string (example: http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head})
string (example: http://api.github.com/repos/octocat/Hello-World/contents/{+path})
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/contributors)
string (date-time) (example: 2011-01-26T19:01:12Z)
objectThe custom properties that were defined for the repository. The keys are the custom property names, and the values are the corresponding custom property values.
string
boolean
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/deployments)
string (example: This your first repo!)
boolean
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/downloads)
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/events)
boolean
integer
integer
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/forks)
string (example: http://api.github.com/repos/octocat/Hello-World/git/commits{/sha})
string (example: http://api.github.com/repos/octocat/Hello-World/git/refs{/sha})
string (example: http://api.github.com/repos/octocat/Hello-World/git/tags{/sha})
string
boolean
boolean
boolean
boolean
boolean
boolean
boolean
string
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/hooks)
string (uri) (example: https://github.com/octocat/Hello-World)
boolean
string (example: http://api.github.com/repos/octocat/Hello-World/issues/comments{/number})
string (example: http://api.github.com/repos/octocat/Hello-World/issues/events{/number})
string (example: http://api.github.com/repos/octocat/Hello-World/issues{/number})
string (example: http://api.github.com/repos/octocat/Hello-World/keys{/key_id})
string (example: http://api.github.com/repos/octocat/Hello-World/labels{/name})
string
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/languages)
object
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/merges)
string (example: http://api.github.com/repos/octocat/Hello-World/milestones{/number})
string
integer
string (example: http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating})
integer
integer
objectA GitHub user. (title: Simple User)
object
boolean
stringThe policy controlling who can create pull requests: all or collaborators_only. (all, collaborators_only)
string (example: http://api.github.com/repos/octocat/Hello-World/pulls{/number})
string (date-time) (example: 2011-01-26T19:06:43Z)
string (example: http://api.github.com/repos/octocat/Hello-World/releases{/id})
object
integerThe size of the repository, in kilobytes. Size is calculated hourly. When a repository is initially created, the size is 0.
string
integer
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/stargazers)
string (example: http://api.github.com/repos/octocat/Hello-World/statuses/{sha})
integer
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/subscribers)
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/subscription)
string
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/tags)
string (uri) (example: http://api.github.com/repos/octocat/Hello-World/teams)
string
array
string (example: http://api.github.com/repos/octocat/Hello-World/git/trees{/sha})
string (date-time) (example: 2011-01-26T19:14:43Z)
string (uri) (example: https://api.github.com/repos/octocat/Hello-World)
string
integer
integer
boolean
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
org, secret_namepage, per_pageLists 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.
org, secret_name, repository_idAdds 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/agents/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.
org, secret_name, selected_repository_idsReplaces 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/agents/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.
org, secret_name, repository_idRemoves 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/agents/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.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe organization name. The name is not case sensitive.
integer
stringThe name of the secret.
integerThe 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)."
integerThe 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)."
+ +## `SELECT` examples + + + + +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. + +```sql +SELECT +id, +name, +node_id, +full_name, +role_name, +allow_forking, +archive_url, +archived, +assignees_url, +blobs_url, +branches_url, +clone_url, +code_of_conduct, +collaborators_url, +comments_url, +commits_url, +compare_url, +contents_url, +contributors_url, +created_at, +custom_properties, +default_branch, +delete_branch_on_merge, +deployments_url, +description, +disabled, +downloads_url, +events_url, +fork, +forks, +forks_count, +forks_url, +git_commits_url, +git_refs_url, +git_tags_url, +git_url, +has_discussions, +has_downloads, +has_issues, +has_pages, +has_projects, +has_pull_requests, +has_wiki, +homepage, +hooks_url, +html_url, +is_template, +issue_comment_url, +issue_events_url, +issues_url, +keys_url, +labels_url, +language, +languages_url, +license, +merges_url, +milestones_url, +mirror_url, +network_count, +notifications_url, +open_issues, +open_issues_count, +owner, +permissions, +private, +pull_request_creation_policy, +pulls_url, +pushed_at, +releases_url, +security_and_analysis, +size, +ssh_url, +stargazers_count, +stargazers_url, +statuses_url, +subscribers_count, +subscribers_url, +subscription_url, +svn_url, +tags_url, +teams_url, +temp_clone_token, +topics, +trees_url, +updated_at, +url, +visibility, +watchers, +watchers_count, +web_commit_signoff_required +FROM github.agents.repos_for_secret +WHERE org = '{{ org }}' -- required +AND secret_name = '{{ secret_name }}' -- required +AND page = '{{ page }}' +AND per_page = '{{ per_page }}' +; +``` +
+
+ + +## `INSERT` examples + + + + +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/agents/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. + +```sql +INSERT INTO github.agents.repos_for_secret ( +org, +secret_name, +repository_id +) +SELECT +'{{ org }}', +'{{ secret_name }}', +'{{ repository_id }}' +; +``` +
+ + +{`# Description fields are for documentation purposes +- name: repos_for_secret + props: + - name: org + value: "{{ org }}" + description: Required parameter for the repos_for_secret resource. + - name: secret_name + value: "{{ secret_name }}" + description: Required parameter for the repos_for_secret resource. + - name: repository_id + value: {{ repository_id }} + description: Required parameter for the repos_for_secret resource. +`} + + +
+ + +## `REPLACE` examples + + + + +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/agents/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. + +```sql +REPLACE github.agents.repos_for_secret +SET +selected_repository_ids = '{{ selected_repository_ids }}' +WHERE +org = '{{ org }}' --required +AND secret_name = '{{ secret_name }}' --required +AND selected_repository_ids = '{{ selected_repository_ids }}' --required; +``` +
+
+ + +## `DELETE` examples + + + + +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/agents/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. + +```sql +DELETE FROM github.agents.repos_for_secret +WHERE org = '{{ org }}' --required +AND secret_name = '{{ secret_name }}' --required +AND repository_id = '{{ repository_id }}' --required +; +``` +
+
diff --git a/website/docs/services/agents/secrets/index.md b/website/docs/services/agents/secrets/index.md new file mode 100644 index 0000000..a32fde3 --- /dev/null +++ b/website/docs/services/agents/secrets/index.md @@ -0,0 +1,519 @@ +--- +title: secrets +hide_title: false +hide_table_of_contents: false +keywords: + - secrets + - agents + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a secrets resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the secret. (example: SECRET_TOKEN)
string (date-time)
string (date-time)
+
+ + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the secret. (example: SECRET_TOKEN)
string (date-time)
string (uri) (example: https://api.github.com/organizations/org/secrets/my_secret/repositories)
string (date-time)
stringVisibility of a secret (all, private, selected)
+
+ + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the secret. (example: SECRET_TOKEN)
string (date-time)
string (date-time)
+
+ + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the secret. (example: SECRET_TOKEN)
string (date-time)
string (uri) (example: https://api.github.com/organizations/org/secrets/my_secret/repositories)
string (date-time)
stringVisibility of a secret (all, private, selected)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repo, secret_nameGets a single repository secret without revealing its encrypted value.

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.
org, secret_nameGets 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.
owner, repoper_page, pageLists all secrets available in 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.
orgper_page, pageLists 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.
owner, repo, secret_name, encrypted_value, key_idCreates 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)."

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.
org, secret_name, encrypted_value, key_id, visibilityCreates 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.
owner, repo, secret_nameDeletes a secret in a repository 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 `repo` scope to use this endpoint.
org, secret_nameDeletes 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.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe organization name. The name is not case sensitive.
stringThe account owner of the repository. The name is not case sensitive.
stringThe name of the repository without the `.git` extension. The name is not case sensitive.
stringThe name of the secret.
integerThe 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)."
integerThe 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)."
+ +## `SELECT` examples + + + + +Gets a single repository secret without revealing its encrypted value.

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. + +```sql +SELECT +name, +created_at, +updated_at +FROM github.agents.secrets +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +AND secret_name = '{{ secret_name }}' -- required +; +``` +
+ + +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. + +```sql +SELECT +name, +created_at, +selected_repositories_url, +updated_at, +visibility +FROM github.agents.secrets +WHERE org = '{{ org }}' -- required +AND secret_name = '{{ secret_name }}' -- required +; +``` +
+ + +Lists all secrets available in 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. + +```sql +SELECT +name, +created_at, +updated_at +FROM github.agents.secrets +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +AND per_page = '{{ per_page }}' +AND page = '{{ page }}' +; +``` +
+ + +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. + +```sql +SELECT +name, +created_at, +selected_repositories_url, +updated_at, +visibility +FROM github.agents.secrets +WHERE org = '{{ org }}' -- required +AND per_page = '{{ per_page }}' +AND page = '{{ page }}' +; +``` +
+
+ + +## `INSERT` examples + + + + +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)."

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. + +```sql +INSERT INTO github.agents.secrets ( +encrypted_value, +key_id, +owner, +repo, +secret_name +) +SELECT +'{{ encrypted_value }}' /* required */, +'{{ key_id }}' /* required */, +'{{ owner }}', +'{{ repo }}', +'{{ secret_name }}' +; +``` +
+ + +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. + +```sql +INSERT INTO github.agents.secrets ( +encrypted_value, +key_id, +visibility, +selected_repository_ids, +org, +secret_name +) +SELECT +'{{ encrypted_value }}' /* required */, +'{{ key_id }}' /* required */, +'{{ visibility }}' /* required */, +'{{ selected_repository_ids }}', +'{{ org }}', +'{{ secret_name }}' +; +``` +
+ + +{`# Description fields are for documentation purposes +- name: secrets + props: + - name: owner + value: "{{ owner }}" + description: Required parameter for the secrets resource. + - name: repo + value: "{{ repo }}" + description: Required parameter for the secrets resource. + - name: secret_name + value: "{{ secret_name }}" + description: Required parameter for the secrets resource. + - name: org + value: "{{ org }}" + description: Required parameter for the secrets resource. + - name: encrypted_value + value: "{{ encrypted_value }}" + 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/agents/secrets#get-an-organization-public-key) endpoint. + - name: key_id + value: "{{ key_id }}" + description: | + ID of the key you used to encrypt the secret. + - name: visibility + value: "{{ visibility }}" + 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. + valid_values: ['all', 'private', 'selected'] + - name: selected_repository_ids + value: + - {{ selected_repository_ids }} + 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/agents/secrets#list-selected-repositories-for-an-organization-secret), [Set selected repositories for an organization secret](https://docs.github.com/rest/agents/secrets#set-selected-repositories-for-an-organization-secret), and [Remove selected repository from an organization secret](https://docs.github.com/rest/agents/secrets#remove-selected-repository-from-an-organization-secret) endpoints. +`} + + +
+ + +## `DELETE` examples + + + + +Deletes a secret in a repository 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 `repo` scope to use this endpoint. + +```sql +DELETE FROM github.agents.secrets +WHERE owner = '{{ owner }}' --required +AND repo = '{{ repo }}' --required +AND secret_name = '{{ secret_name }}' --required +; +``` +
+ + +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. + +```sql +DELETE FROM github.agents.secrets +WHERE org = '{{ org }}' --required +AND secret_name = '{{ secret_name }}' --required +; +``` +
+
diff --git a/website/docs/services/agents/variables/index.md b/website/docs/services/agents/variables/index.md new file mode 100644 index 0000000..e12af6d --- /dev/null +++ b/website/docs/services/agents/variables/index.md @@ -0,0 +1,593 @@ +--- +title: variables +hide_title: false +hide_table_of_contents: false +keywords: + - variables + - agents + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a variables resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the variable. (example: USERNAME)
string (date-time)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)
string (date-time)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)
stringThe value of the variable. (example: octocat)
+
+ + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the variable. (example: USERNAME)
string (date-time)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)
string (uri) (example: https://api.github.com/organizations/org/variables/USERNAME/repositories)
string (date-time)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)
stringThe value of the variable. (example: octocat)
stringVisibility of a variable (all, private, selected)
+
+ + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the variable. (example: USERNAME)
string (date-time)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)
string (date-time)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)
stringThe value of the variable. (example: octocat)
+
+ + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the variable. (example: USERNAME)
string (date-time)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)
string (uri) (example: https://api.github.com/organizations/org/variables/USERNAME/repositories)
string (date-time)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)
stringThe value of the variable. (example: octocat)
stringVisibility of a variable (all, private, selected)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repo, nameGets a specific variable in a repository.

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.
org, nameGets a specific agent 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.
owner, repoper_page, pageLists 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.
orgper_page, pageLists all agent variables available in an organization.
Returned variables include their values.

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.
owner, repo, name, valueCreates 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.
org, name, value, visibilityCreates an organization agent 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.
owner, repo, nameUpdates 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 app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.
org, nameUpdates an organization agent 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.
owner, repo, nameDeletes a repository 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.
org, nameDeletes an organization agent 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.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe name of the variable.
stringThe organization name. The name is not case sensitive.
stringThe account owner of the repository. The name is not case sensitive.
stringThe name of the repository without the `.git` extension. The name is not case sensitive.
integerThe 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)."
integerThe 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)."
+ +## `SELECT` examples + + + + +Gets a specific variable in a repository.

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. + +```sql +SELECT +name, +created_at, +updated_at, +value +FROM github.agents.variables +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +AND name = '{{ name }}' -- required +; +``` +
+ + +Gets a specific agent 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. + +```sql +SELECT +name, +created_at, +selected_repositories_url, +updated_at, +value, +visibility +FROM github.agents.variables +WHERE org = '{{ org }}' -- required +AND name = '{{ name }}' -- required +; +``` +
+ + +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. + +```sql +SELECT +name, +created_at, +updated_at, +value +FROM github.agents.variables +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +AND per_page = '{{ per_page }}' +AND page = '{{ page }}' +; +``` +
+ + +Lists all agent variables available in an organization.
Returned variables include their values.

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. + +```sql +SELECT +name, +created_at, +selected_repositories_url, +updated_at, +value, +visibility +FROM github.agents.variables +WHERE org = '{{ org }}' -- required +AND per_page = '{{ per_page }}' +AND page = '{{ page }}' +; +``` +
+
+ + +## `INSERT` examples + + + + +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. + +```sql +INSERT INTO github.agents.variables ( +name, +value, +owner, +repo +) +SELECT +'{{ name }}' /* required */, +'{{ value }}' /* required */, +'{{ owner }}', +'{{ repo }}' +; +``` +
+ + +Creates an organization agent 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. + +```sql +INSERT INTO github.agents.variables ( +name, +value, +visibility, +selected_repository_ids, +org +) +SELECT +'{{ name }}' /* required */, +'{{ value }}' /* required */, +'{{ visibility }}' /* required */, +'{{ selected_repository_ids }}', +'{{ org }}' +; +``` +
+ + +{`# Description fields are for documentation purposes +- name: variables + props: + - name: owner + value: "{{ owner }}" + description: Required parameter for the variables resource. + - name: repo + value: "{{ repo }}" + description: Required parameter for the variables resource. + - name: org + value: "{{ org }}" + description: Required parameter for the variables resource. + - name: name + value: "{{ name }}" + description: | + The name of the variable. + - name: value + value: "{{ value }}" + description: | + The value of the variable. + - name: visibility + value: "{{ visibility }}" + 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. + valid_values: ['all', 'private', 'selected'] + - name: selected_repository_ids + value: + - {{ selected_repository_ids }} + 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\`. +`} + + +
+ + +## `UPDATE` examples + + + + +Updates 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 app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + +```sql +UPDATE github.agents.variables +SET +name = '{{ name }}', +value = '{{ value }}' +WHERE +owner = '{{ owner }}' --required +AND repo = '{{ repo }}' --required +AND name = '{{ name }}' --required; +``` +
+ + +Updates an organization agent 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. + +```sql +UPDATE github.agents.variables +SET +name = '{{ name }}', +value = '{{ value }}', +visibility = '{{ visibility }}', +selected_repository_ids = '{{ selected_repository_ids }}' +WHERE +org = '{{ org }}' --required +AND name = '{{ name }}' --required; +``` +
+
+ + +## `DELETE` examples + + + + +Deletes a repository 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. + +```sql +DELETE FROM github.agents.variables +WHERE owner = '{{ owner }}' --required +AND repo = '{{ repo }}' --required +AND name = '{{ name }}' --required +; +``` +
+ + +Deletes an organization agent 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. + +```sql +DELETE FROM github.agents.variables +WHERE org = '{{ org }}' --required +AND name = '{{ name }}' --required +; +``` +
+
diff --git a/website/docs/services/apps/apps/index.md b/website/docs/services/apps/apps/index.md index 330d7e1..b00a49b 100644 --- a/website/docs/services/apps/apps/index.md +++ b/website/docs/services/apps/apps/index.md @@ -123,7 +123,7 @@ Response object - The permissions granted to the user access token. (title: App Permissions) + The permissions granted to the fine-grained access token. (title: App Permissions) @@ -244,7 +244,7 @@ Response object - The permissions granted to the user access token. (title: App Permissions) + The permissions granted to the fine-grained access token. (title: App Permissions) @@ -365,7 +365,7 @@ Response object - The permissions granted to the user access token. (title: App Permissions) + The permissions granted to the fine-grained access token. (title: App Permissions) @@ -486,7 +486,7 @@ Response object - The permissions granted to the user access token. (title: App Permissions) + The permissions granted to the fine-grained access token. (title: App Permissions) @@ -607,7 +607,7 @@ The permissions the installation has are included under the `permissions` key. object - The permissions granted to the user access token. (title: App Permissions) + The permissions granted to the fine-grained access token. (title: App Permissions) @@ -711,7 +711,7 @@ The following methods are available for this resource: installation_id - 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. + 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.

> [!NOTE]
> Starting April 27, 2026, GitHub began a staged rollout of a stateless format (`ghs_APPID_JWT`) to all newly minted GitHub App installation tokens, making them more performant and improving the reliability of our API surface. If your application expects or relies on installation tokens being exactly 40 characters long, it may not handle this new token format correctly. You can now validate your apps and workflows using a temporary request header that lets you enable the token format on demand. For more information about the temporary header, see [the GitHub blog](https://github.blog/changelog/2026-05-15-github-app-installation-tokens-per-request-override-header).

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. @@ -1037,7 +1037,7 @@ webhook_secret
-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. +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.

> [!NOTE]
> Starting April 27, 2026, GitHub began a staged rollout of a stateless format (`ghs_APPID_JWT`) to all newly minted GitHub App installation tokens, making them more performant and improving the reliability of our API surface. If your application expects or relies on installation tokens being exactly 40 characters long, it may not handle this new token format correctly. You can now validate your apps and workflows using a temporary request header that lets you enable the token format on demand. For more information about the temporary header, see [the GitHub blog](https://github.blog/changelog/2026-05-15-github-app-installation-tokens-per-request-override-header).

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. ```sql INSERT INTO github.apps.apps ( @@ -1086,13 +1086,14 @@ token List of repository IDs that the token should have access to - name: permissions description: | - The permissions granted to the user access token. + The permissions granted to the fine-grained access token. value: actions: "{{ actions }}" administration: "{{ administration }}" artifact_metadata: "{{ artifact_metadata }}" attestations: "{{ attestations }}" checks: "{{ checks }}" + code_quality: "{{ code_quality }}" codespaces: "{{ codespaces }}" contents: "{{ contents }}" dependabot_secrets: "{{ dependabot_secrets }}" diff --git a/website/docs/services/apps/installation_repos/index.md b/website/docs/services/apps/installation_repos/index.md index f9a5b36..0c5cb44 100644 --- a/website/docs/services/apps/installation_repos/index.md +++ b/website/docs/services/apps/installation_repos/index.md @@ -177,6 +177,11 @@ The access the user has to each repository is included in the hash under the `pe string (date-time) (example: 2011-01-26T19:01:12Z) + + + object + 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. Present for org repos only. + string @@ -683,6 +688,11 @@ Response string (date-time) (example: 2011-01-26T19:01:12Z) + + + object + 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. Present for org repos only. + string @@ -1175,6 +1185,7 @@ compare_url, contents_url, contributors_url, created_at, +custom_properties, default_branch, delete_branch_on_merge, deployments_url, @@ -1286,6 +1297,7 @@ compare_url, contents_url, contributors_url, created_at, +custom_properties, default_branch, delete_branch_on_merge, deployments_url, diff --git a/website/docs/services/apps/installations/index.md b/website/docs/services/apps/installations/index.md index e9426b1..e369cac 100644 --- a/website/docs/services/apps/installations/index.md +++ b/website/docs/services/apps/installations/index.md @@ -119,7 +119,7 @@ You can find the permissions for the installation under the `permissions` key. object - The permissions granted to the user access token. (title: App Permissions) + The permissions granted to the fine-grained access token. (title: App Permissions) diff --git a/website/docs/services/billing/ai_credit_usage/index.md b/website/docs/services/billing/ai_credit_usage/index.md new file mode 100644 index 0000000..565f7fc --- /dev/null +++ b/website/docs/services/billing/ai_credit_usage/index.md @@ -0,0 +1,220 @@ +--- +title: ai_credit_usage +hide_title: false +hide_table_of_contents: false +keywords: + - ai_credit_usage + - billing + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an ai_credit_usage resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response when getting a billing AI credit usage report + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
numberDiscount amount of the usage line item.
numberDiscount quantity of the usage line item.
numberGross amount of the usage line item.
numberGross quantity of the usage line item.
stringModel name.
numberNet amount of the usage line item.
numberNet quantity of the usage line item.
numberPrice per unit of the usage line item.
stringProduct name.
stringSKU name.
stringUnit type of the usage line item.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
usernameyear, month, day, model, productGets a report of AI credit usage for a user.

**Note:** Only data from the past 24 months is accessible via this endpoint.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe handle for the GitHub user account.
integerIf 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.
stringThe model name to query usage for. The name is not case sensitive.
integerIf 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.
stringThe product name to query usage for. The name is not case sensitive.
integerIf 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.
+ +## `SELECT` examples + + + + +Gets a report of AI credit usage for a user.

**Note:** Only data from the past 24 months is accessible via this endpoint. + +```sql +SELECT +discountAmount, +discountQuantity, +grossAmount, +grossQuantity, +model, +netAmount, +netQuantity, +pricePerUnit, +product, +sku, +unitType +FROM github.billing.ai_credit_usage +WHERE username = '{{ username }}' -- required +AND year = '{{ year }}' +AND month = '{{ month }}' +AND day = '{{ day }}' +AND model = '{{ model }}' +AND product = '{{ product }}' +; +``` +
+
diff --git a/website/docs/services/billing/index.md b/website/docs/services/billing/index.md index a3927ca..a3af054 100644 --- a/website/docs/services/billing/index.md +++ b/website/docs/services/billing/index.md @@ -18,19 +18,21 @@ billing service documentation. :::info[Service Summary] -total resources: __7__ +total resources: __9__ ::: ## Resources
+org_usage_summary
premium_request_usage
usage
usage_summary diff --git a/website/docs/services/billing/org_ai_credit_usage/index.md b/website/docs/services/billing/org_ai_credit_usage/index.md new file mode 100644 index 0000000..65d7e42 --- /dev/null +++ b/website/docs/services/billing/org_ai_credit_usage/index.md @@ -0,0 +1,226 @@ +--- +title: org_ai_credit_usage +hide_title: false +hide_table_of_contents: false +keywords: + - org_ai_credit_usage + - billing + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an org_ai_credit_usage resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response when getting a billing AI credit usage report + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
numberDiscount amount of the usage line item.
numberDiscount quantity of the usage line item.
numberGross amount of the usage line item.
numberGross quantity of the usage line item.
stringModel name.
numberNet amount of the usage line item.
numberNet quantity of the usage line item.
numberPrice per unit of the usage line item.
stringProduct name.
stringSKU name.
stringUnit type of the usage line item.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
orgyear, month, day, user, model, productGets a report of AI credit usage for an organization. To use this endpoint, you must be an administrator of an organization within an enterprise or an organization account.

**Note:** Only data from the past 24 months is accessible via this endpoint.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe organization name. The name is not case sensitive.
integerIf 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.
stringThe model name to query usage for. The name is not case sensitive.
integerIf 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.
stringThe product name to query usage for. The name is not case sensitive.
stringThe user name to query usage for. The name is not case sensitive.
integerIf 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.
+ +## `SELECT` examples + + + + +Gets a report of AI credit usage for an organization. To use this endpoint, you must be an administrator of an organization within an enterprise or an organization account.

**Note:** Only data from the past 24 months is accessible via this endpoint. + +```sql +SELECT +discountAmount, +discountQuantity, +grossAmount, +grossQuantity, +model, +netAmount, +netQuantity, +pricePerUnit, +product, +sku, +unitType +FROM github.billing.org_ai_credit_usage +WHERE org = '{{ org }}' -- required +AND year = '{{ year }}' +AND month = '{{ month }}' +AND day = '{{ day }}' +AND user = '{{ user }}' +AND model = '{{ model }}' +AND product = '{{ product }}' +; +``` +
+
diff --git a/website/docs/services/billing/org_budgets/index.md b/website/docs/services/billing/org_budgets/index.md index 14d633c..4e72ae3 100644 --- a/website/docs/services/billing/org_budgets/index.md +++ b/website/docs/services/billing/org_budgets/index.md @@ -80,7 +80,7 @@ Response when updating a budget string - The type of scope for the budget (enterprise, organization, repository, cost_center) (example: enterprise) + The type of scope for the budget (enterprise, organization, repository, cost_center, multi_user_customer, multi_user_cost_center, user) (example: enterprise) @@ -92,6 +92,11 @@ Response when updating a budget boolean Whether to prevent additional spending once the budget is exceeded + + + string + The user login when the budget is scoped to a single user (`user` scope). (example: octocat) + @@ -113,6 +118,11 @@ Response when getting all budgets array Array of budget objects for the enterprise + + + object + Effective user-level budget details returned when the response is scoped with the `user` query parameter. + boolean @@ -123,6 +133,11 @@ Response when getting all budgets integer Total number of budgets matching the query + + + string + User login included when the response is scoped with the `user` query parameter. + @@ -148,28 +163,35 @@ The following methods are available for this resource: org, budget_id - > [!NOTE]
> This endpoint is in public preview and is subject to change.

Gets a budget by ID. The authenticated user must be an organization admin or billing manager. + Gets a budget by ID. The authenticated user must be an organization admin or billing manager. org - page, per_page, scope - > [!NOTE]
> This endpoint is in public preview and is subject to change.

Gets all budgets for an organization. The authenticated user must be an organization admin or billing manager.
Each page returns up to 10 budgets. + page, per_page, scope, user + Gets all budgets for an organization. The authenticated user must be an organization admin or billing manager.
Each page returns up to 100 budgets. + + + + + org + + Creates a new budget for an organization. The authenticated user must be an
organization admin or billing manager. org, budget_id - > [!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. + Updates an existing budget for an organization. The authenticated user must be an organization admin or billing manager. org, budget_id - > [!NOTE]
> This endpoint is in public preview and is subject to change.

Deletes a budget by ID for an organization. The authenticated user must be an organization admin or billing manager. + Deletes a budget by ID for an organization. The authenticated user must be an organization admin or billing manager. @@ -205,12 +227,17 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# integer - The number of results per page (max 10). + The number of results per page (max 100). string - Filter budgets by scope type. + Filter budgets by scope type. - `organization`: Budgets scoped to the organization. - `repository`: Budgets scoped to a repository. - `multi_user_customer`: Universal budgets that apply to all users in the organization. - `user`: Budgets scoped to an individual user. + + + + string + Filter consumed amount details for budgets by the specified user login. @@ -226,7 +253,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -> [!NOTE]
> This endpoint is in public preview and is subject to change.

Gets a budget by ID. The authenticated user must be an organization admin or billing manager. +Gets a budget by ID. The authenticated user must be an organization admin or billing manager. ```sql SELECT @@ -237,7 +264,8 @@ budget_amount, budget_product_sku, budget_scope, budget_type, -prevent_further_usage +prevent_further_usage, +user FROM github.billing.org_budgets WHERE org = '{{ org }}' -- required AND budget_id = '{{ budget_id }}' -- required @@ -246,24 +274,127 @@ AND budget_id = '{{ budget_id }}' -- required
-> [!NOTE]
> This endpoint is in public preview and is subject to change.

Gets all budgets for an organization. The authenticated user must be an organization admin or billing manager.
Each page returns up to 10 budgets. +Gets all budgets for an organization. The authenticated user must be an organization admin or billing manager.
Each page returns up to 100 budgets. ```sql SELECT budgets, +effective_budget, has_next_page, -total_count +total_count, +user FROM github.billing.org_budgets WHERE org = '{{ org }}' -- required AND page = '{{ page }}' AND per_page = '{{ per_page }}' AND scope = '{{ scope }}' +AND user = '{{ user }}' ; ```
+## `INSERT` examples + + + + +Creates a new budget for an organization. The authenticated user must be an
organization admin or billing manager. + +```sql +INSERT INTO github.billing.org_budgets ( +budget_amount, +prevent_further_usage, +budget_alerting, +budget_scope, +budget_entity_name, +budget_type, +budget_product_sku, +user, +org +) +SELECT +{{ budget_amount }}, +{{ prevent_further_usage }}, +'{{ budget_alerting }}', +'{{ budget_scope }}', +'{{ budget_entity_name }}', +'{{ budget_type }}', +'{{ budget_product_sku }}', +'{{ user }}', +'{{ org }}' +RETURNING +budget, +message +; +``` +
+ + +{`# Description fields are for documentation purposes +- name: org_budgets + props: + - name: org + value: "{{ org }}" + description: Required parameter for the org_budgets resource. + - name: budget_amount + value: {{ budget_amount }} + description: | + The budget amount in whole dollars. For license-based products, this represents the number of licenses. + - name: prevent_further_usage + value: {{ prevent_further_usage }} + description: | + Whether to prevent additional spending once the budget is exceeded. For \`user\` and \`multi_user_customer\` scopes, this must be \`true\`. + - name: budget_alerting + value: + will_alert: {{ will_alert }} + alert_recipients: + - "{{ alert_recipients }}" + - name: budget_scope + value: "{{ budget_scope }}" + description: | + The scope of the budget for this organization. + - \`organization\`: Apply the budget to the organization. + - \`repository\`: Apply the budget to a specific repository in the organization. + - \`multi_user_customer\`: Apply a universal budget to all users in the organization. + - \`user\`: Apply the budget to a single user in the organization. + \`user\` and \`multi_user_customer\` scopes are only supported when + \`budget_product_sku\` is \`ai_credits\` or \`premium_requests\`. + valid_values: ['organization', 'repository', 'multi_user_customer', 'user'] + - name: budget_entity_name + value: "{{ budget_entity_name }}" + description: | + The name of the entity to apply the budget to + default: + - name: budget_type + value: "{{ budget_type }}" + description: | + The type of pricing model used by the budget. Determines how \`budget_product_sku\` is interpreted. + - \`BundlePricing\`: Covers all AI credit SKUs. Set \`budget_product_sku\` to \`ai_credits\`. + - \`ProductPricing\`: Covers all SKUs that belong to a product. Set \`budget_product_sku\` to a product such as \`actions\` or \`packages\`. + - \`SkuPricing\`: Covers a single, specific SKU. Set \`budget_product_sku\` to a SKU such as \`actions_linux\`. + valid_values: ['BundlePricing'] + - name: budget_product_sku + value: "{{ budget_product_sku }}" + description: | + A single product or SKU that will be covered in the budget + - name: user + value: "{{ user }}" + description: | + The username of the user for \`user\` scope budgets. This field is required when \`budget_scope\` is \`user\`. +`} + + +
+ + ## `UPDATE` examples -> [!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. +Updates an existing budget for an organization. The authenticated user must be an organization admin or billing manager. ```sql UPDATE github.billing.org_budgets @@ -285,7 +416,8 @@ budget_alerting = '{{ budget_alerting }}', budget_scope = '{{ budget_scope }}', budget_entity_name = '{{ budget_entity_name }}', budget_type = '{{ budget_type }}', -budget_product_sku = '{{ budget_product_sku }}' +budget_product_sku = '{{ budget_product_sku }}', +user = '{{ user }}' WHERE org = '{{ org }}' --required AND budget_id = '{{ budget_id }}' --required @@ -307,7 +439,7 @@ message; > -> [!NOTE]
> This endpoint is in public preview and is subject to change.

Deletes a budget by ID for an organization. The authenticated user must be an organization admin or billing manager. +Deletes a budget by ID for an organization. The authenticated user must be an organization admin or billing manager. ```sql DELETE FROM github.billing.org_budgets diff --git a/website/docs/services/checks/annotations/index.md b/website/docs/services/checks/annotations/index.md index e499aab..1b07aed 100644 --- a/website/docs/services/checks/annotations/index.md +++ b/website/docs/services/checks/annotations/index.md @@ -146,7 +146,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# - integer + integer (int64) The unique identifier of the check run. diff --git a/website/docs/services/checks/runs/index.md b/website/docs/services/checks/runs/index.md index 2719c6e..d0a6c89 100644 --- a/website/docs/services/checks/runs/index.md +++ b/website/docs/services/checks/runs/index.md @@ -420,7 +420,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# - integer + integer (int64) The unique identifier of the check run. diff --git a/website/docs/services/classroom/assignment_accepted_assignments/index.md b/website/docs/services/classroom/assignment_accepted_assignments/index.md index 7632923..5b37d62 100644 --- a/website/docs/services/classroom/assignment_accepted_assignments/index.md +++ b/website/docs/services/classroom/assignment_accepted_assignments/index.md @@ -116,7 +116,7 @@ The following methods are available for this resource: assignment_id page, per_page - 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. + > [!WARNING]
> **Closing down notice:** This operation is closing down and will be removed on August 28, 2026.
> For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset).

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. @@ -162,7 +162,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -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. +> [!WARNING]
> **Closing down notice:** This operation is closing down and will be removed on August 28, 2026.
> For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset).

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. ```sql SELECT diff --git a/website/docs/services/classroom/assignment_grades/index.md b/website/docs/services/classroom/assignment_grades/index.md index e3d8e17..0f75f6a 100644 --- a/website/docs/services/classroom/assignment_grades/index.md +++ b/website/docs/services/classroom/assignment_grades/index.md @@ -131,7 +131,7 @@ The following methods are available for this resource: assignment_id - 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. + > [!WARNING]
> **Closing down notice:** This operation is closing down and will be removed on August 28, 2026.
> For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset).

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. @@ -167,7 +167,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -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. +> [!WARNING]
> **Closing down notice:** This operation is closing down and will be removed on August 28, 2026.
> For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset).

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. ```sql SELECT diff --git a/website/docs/services/classroom/assignments/index.md b/website/docs/services/classroom/assignments/index.md index a77d779..24a5b28 100644 --- a/website/docs/services/classroom/assignments/index.md +++ b/website/docs/services/classroom/assignments/index.md @@ -171,7 +171,7 @@ The following methods are available for this resource: assignment_id - Gets a GitHub Classroom assignment. Assignment will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. + > [!WARNING]
> **Closing down notice:** This operation is closing down and will be removed on August 28, 2026.
> For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset).

Gets a GitHub Classroom assignment. Assignment will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. @@ -207,7 +207,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -Gets a GitHub Classroom assignment. Assignment will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. +> [!WARNING]
> **Closing down notice:** This operation is closing down and will be removed on August 28, 2026.
> For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset).

Gets a GitHub Classroom assignment. Assignment will only be returned if the current user is an administrator of the GitHub Classroom for the assignment. ```sql SELECT diff --git a/website/docs/services/classroom/classroom_assignments/index.md b/website/docs/services/classroom/classroom_assignments/index.md index 3b7af02..ebbe382 100644 --- a/website/docs/services/classroom/classroom_assignments/index.md +++ b/website/docs/services/classroom/classroom_assignments/index.md @@ -166,7 +166,7 @@ The following methods are available for this resource: classroom_id page, per_page - Lists GitHub Classroom assignments for a classroom. Assignments will only be returned if the current user is an administrator of the GitHub Classroom. + > [!WARNING]
> **Closing down notice:** This operation is closing down and will be removed on August 28, 2026.
> For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset).

Lists GitHub Classroom assignments for a classroom. Assignments will only be returned if the current user is an administrator of the GitHub Classroom. @@ -212,7 +212,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -Lists GitHub Classroom assignments for a classroom. Assignments will only be returned if the current user is an administrator of the GitHub Classroom. +> [!WARNING]
> **Closing down notice:** This operation is closing down and will be removed on August 28, 2026.
> For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset).

Lists GitHub Classroom assignments for a classroom. Assignments will only be returned if the current user is an administrator of the GitHub Classroom. ```sql SELECT diff --git a/website/docs/services/classroom/classrooms/index.md b/website/docs/services/classroom/classrooms/index.md index 3033463..e5a5ca1 100644 --- a/website/docs/services/classroom/classrooms/index.md +++ b/website/docs/services/classroom/classrooms/index.md @@ -138,14 +138,14 @@ The following methods are available for this resource: classroom_id - 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. + > [!WARNING]
> **Closing down notice:** This operation is closing down and will be removed on August 28, 2026.
> For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset).

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. page, per_page - 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. + > [!WARNING]
> **Closing down notice:** This operation is closing down and will be removed on August 28, 2026.
> For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset).

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. @@ -192,7 +192,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -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. +> [!WARNING]
> **Closing down notice:** This operation is closing down and will be removed on August 28, 2026.
> For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset).

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. ```sql SELECT @@ -208,7 +208,7 @@ WHERE classroom_id = '{{ classroom_id }}' -- required
-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. +> [!WARNING]
> **Closing down notice:** This operation is closing down and will be removed on August 28, 2026.
> For more information, see the [GitHub Classroom sunset notice](https://gh.io/classroom-sunset).

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. ```sql SELECT diff --git a/website/docs/services/code_quality/findings/index.md b/website/docs/services/code_quality/findings/index.md new file mode 100644 index 0000000..8a50ba8 --- /dev/null +++ b/website/docs/services/code_quality/findings/index.md @@ -0,0 +1,287 @@ +--- +title: findings +hide_title: false +hide_table_of_contents: false +keywords: + - findings + - code_quality + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a findings resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string (date-time)The time the code quality finding was created.
objectCode quality file location
objectCode quality finding message
integerThe finding number.
objectCode quality rule
stringState of the code quality finding. (open, dismissed)
string (uri)The REST API URL of the code quality finding resource.
+
+ + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string (date-time)The time the code quality finding was created.
objectCode quality file location
objectCode quality finding message
integerThe finding number.
objectCode quality rule
stringState of the code quality finding. (open, dismissed)
string (uri)The REST API URL of the code quality finding resource.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repo, finding_numberGets a single code quality finding.

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.
owner, repoper_page, direction, before, after, stateLists code quality findings for 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.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integerThe number that identifies a finding.
stringThe account owner of the repository. The name is not case sensitive.
stringThe name of the repository without the `.git` extension. The name is not case sensitive.
stringA 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)."
stringA 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)."
stringThe direction to sort the results by.
integerThe 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)."
stringIf specified, only code quality findings with this state will be returned.
+ +## `SELECT` examples + + + + +Gets a single code quality finding.

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. + +```sql +SELECT +created_at, +location, +message, +number, +rule, +state, +url +FROM github.code_quality.findings +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +AND finding_number = '{{ finding_number }}' -- required +; +``` +
+ + +Lists code quality findings for 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. + +```sql +SELECT +created_at, +location, +message, +number, +rule, +state, +url +FROM github.code_quality.findings +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +AND per_page = '{{ per_page }}' +AND direction = '{{ direction }}' +AND before = '{{ before }}' +AND after = '{{ after }}' +AND state = '{{ state }}' +; +``` +
+
diff --git a/website/docs/services/code_quality/index.md b/website/docs/services/code_quality/index.md new file mode 100644 index 0000000..60989c8 --- /dev/null +++ b/website/docs/services/code_quality/index.md @@ -0,0 +1,33 @@ +--- +title: code_quality +hide_title: false +hide_table_of_contents: false +keywords: + - code_quality + - github + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +code_quality service documentation. + +:::info[Service Summary] + +total resources: __2__ + +::: + +## Resources +
+ +
+setup +
+
\ No newline at end of file diff --git a/website/docs/services/code_quality/setup/index.md b/website/docs/services/code_quality/setup/index.md new file mode 100644 index 0000000..eeb849e --- /dev/null +++ b/website/docs/services/code_quality/setup/index.md @@ -0,0 +1,212 @@ +--- +title: setup +hide_title: false +hide_table_of_contents: false +keywords: + - setup + - code_quality + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a setup resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe AI findings configuration for the repository. (disabled, on_push)
arrayLanguages to be analyzed.
stringRunner label to be used if the runner type is labeled. (example: code-scanning)
stringRunner type to be used. (standard, labeled)
stringThe frequency of the periodic analysis. (weekly)
stringCode quality setup has been configured or not. (configured, not-configured)
string (date-time)Timestamp of latest configuration update. (example: 2023-12-06T14:20:20.000Z)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repoGets a code quality 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.
owner, repo, state, runner_type, runner_label, languages, ai_findings_optionUpdates a code quality 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.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe account owner of the repository. The name is not case sensitive.
stringThe name of the repository without the `.git` extension. The name is not case sensitive.
+ +## `SELECT` examples + + + + +Gets a code quality 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. + +```sql +SELECT +ai_findings_option, +languages, +runner_label, +runner_type, +schedule, +state, +updated_at +FROM github.code_quality.setup +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +; +``` +
+
+ + +## `UPDATE` examples + + + + +Updates a code quality 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. + +```sql +UPDATE github.code_quality.setup +SET +state = '{{ state }}', +runner_type = '{{ runner_type }}', +runner_label = '{{ runner_label }}', +languages = '{{ languages }}', +ai_findings_option = '{{ ai_findings_option }}' +WHERE +owner = '{{ owner }}' --required +AND repo = '{{ repo }}' --required +AND state = '{{ state }}' --required +AND runner_type = '{{ runner_type }}' --required +AND runner_label = '{{ runner_label }}' --required +AND languages = '{{ languages }}' --required +AND ai_findings_option = '{{ ai_findings_option }}' --required; +``` +
+
diff --git a/website/docs/services/code_scanning/alert_autofixes/index.md b/website/docs/services/code_scanning/alert_autofixes/index.md index b2cc127..4f3291f 100644 --- a/website/docs/services/code_scanning/alert_autofixes/index.md +++ b/website/docs/services/code_scanning/alert_autofixes/index.md @@ -91,21 +91,21 @@ The following methods are available for this resource: owner, repo, alert_number - 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. + Gets the status and description of an autofix for a code scanning alert on the repository's default branch.

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. owner, repo, alert_number - 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. + Creates an autofix for a code scanning alert from the repository's default branch.

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. owner, repo, alert_number - 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. + Commits an autofix for a code scanning alert from the repository's default branch.

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. @@ -151,7 +151,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -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. +Gets the status and description of an autofix for a code scanning alert on the repository's default branch.

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. ```sql SELECT @@ -179,7 +179,7 @@ AND alert_number = '{{ alert_number }}' -- required > -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. +Creates an autofix for a code scanning alert from the repository's default branch.

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. ```sql INSERT INTO github.code_scanning.alert_autofixes ( @@ -228,7 +228,7 @@ status > -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. +Commits an autofix for a code scanning alert from the repository's default branch.

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. ```sql EXEC github.code_scanning.alert_autofixes.commit_autofix diff --git a/website/docs/services/code_scanning/alert_items/index.md b/website/docs/services/code_scanning/alert_items/index.md index 3529ddf..79f83dc 100644 --- a/website/docs/services/code_scanning/alert_items/index.md +++ b/website/docs/services/code_scanning/alert_items/index.md @@ -85,7 +85,7 @@ Response string - **Required when the state is dismissed.** The reason for dismissing or closing the alert. (false positive, won't fix, used in tests) + **Required when the state is dismissed.** The reason for dismissing or closing the alert. (false positive, won't fix, used in tests, mitigated) @@ -186,7 +186,7 @@ Response string - **Required when the state is dismissed.** The reason for dismissing or closing the alert. (false positive, won't fix, used in tests) + **Required when the state is dismissed.** The reason for dismissing or closing the alert. (false positive, won't fix, used in tests, mitigated) diff --git a/website/docs/services/code_scanning/alerts/index.md b/website/docs/services/code_scanning/alerts/index.md index f1c4cb6..b0a1b70 100644 --- a/website/docs/services/code_scanning/alerts/index.md +++ b/website/docs/services/code_scanning/alerts/index.md @@ -84,7 +84,7 @@ Response string - **Required when the state is dismissed.** The reason for dismissing or closing the alert. (false positive, won't fix, used in tests) + **Required when the state is dismissed.** The reason for dismissing or closing the alert. (false positive, won't fix, used in tests, mitigated) @@ -101,6 +101,11 @@ Response string (uri) The REST API URL for fetching the list of instances for an alert. + + + array + Pull requests linked to this alert. + object @@ -228,6 +233,7 @@ dismissed_reason, fixed_at, html_url, instances_url, +linked_pull_requests, most_recent_instance, number, rule, @@ -282,6 +288,7 @@ dismissed_reason, fixed_at, html_url, instances_url, +linked_pull_requests, most_recent_instance, number, rule, diff --git a/website/docs/services/code_scanning/analysis/index.md b/website/docs/services/code_scanning/analysis/index.md index a840d32..bfcf6e0 100644 --- a/website/docs/services/code_scanning/analysis/index.md +++ b/website/docs/services/code_scanning/analysis/index.md @@ -75,7 +75,7 @@ Response string - The SHA of the commit to which the analysis you are uploading relates. (pattern: ^[0-9a-fA-F]+$) + The SHA of the commit to which the analysis you are uploading relates. (pattern: ^([0-9a-fA-F]{40}(?:[0-9a-fA-F]{24})?)$) @@ -166,7 +166,7 @@ Response string - The SHA of the commit to which the analysis you are uploading relates. (pattern: ^[0-9a-fA-F]+$) + The SHA of the commit to which the analysis you are uploading relates. (pattern: ^([0-9a-fA-F]{40}(?:[0-9a-fA-F]{24})?)$) diff --git a/website/docs/services/code_security/code_security_configurations/index.md b/website/docs/services/code_security/code_security_configurations/index.md index 4eb4d49..4f56746 100644 --- a/website/docs/services/code_security/code_security_configurations/index.md +++ b/website/docs/services/code_security/code_security_configurations/index.md @@ -767,14 +767,14 @@ The following methods are available for this resource: - enterprise, name, description + enterprise, name 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. - org, name, description + org, name 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. @@ -1149,7 +1149,7 @@ enterprise ) SELECT '{{ name }}' /* required */, -'{{ description }}' /* required */, +'{{ description }}', '{{ advanced_security }}', '{{ code_security }}', '{{ dependency_graph }}', @@ -1242,7 +1242,7 @@ org ) SELECT '{{ name }}' /* required */, -'{{ description }}' /* required */, +'{{ description }}', '{{ advanced_security }}', '{{ code_security }}', '{{ dependency_graph }}', diff --git a/website/docs/services/copilot/coding_agent_policy/index.md b/website/docs/services/copilot/coding_agent_policy/index.md new file mode 100644 index 0000000..25ce7a0 --- /dev/null +++ b/website/docs/services/copilot/coding_agent_policy/index.md @@ -0,0 +1,105 @@ +--- +title: coding_agent_policy +hide_title: false +hide_table_of_contents: false +keywords: + - coding_agent_policy + - copilot + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a coding_agent_policy resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
enterprise, policy_stateSets the policy for Copilot cloud agent usage across an enterprise.

Enterprise owners can configure whether Copilot cloud agent is enabled for all
organizations, disabled for all organizations, configured by individual organization
admins, or enabled for selected organizations only.

Only enterprise owners can set the coding agent policy for their enterprise.

OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:enterprise` scopes to use this endpoint.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe slug version of the enterprise name.
+ +## `REPLACE` examples + + + + +Sets the policy for Copilot cloud agent usage across an enterprise.

Enterprise owners can configure whether Copilot cloud agent is enabled for all
organizations, disabled for all organizations, configured by individual organization
admins, or enabled for selected organizations only.

Only enterprise owners can set the coding agent policy for their enterprise.

OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:enterprise` scopes to use this endpoint. + +```sql +REPLACE github.copilot.coding_agent_policy +SET +policy_state = '{{ policy_state }}' +WHERE +enterprise = '{{ enterprise }}' --required +AND policy_state = '{{ policy_state }}' --required; +``` +
+
diff --git a/website/docs/services/copilot/coding_agent_policy_orgs/index.md b/website/docs/services/copilot/coding_agent_policy_orgs/index.md new file mode 100644 index 0000000..f00e6e1 --- /dev/null +++ b/website/docs/services/copilot/coding_agent_policy_orgs/index.md @@ -0,0 +1,160 @@ +--- +title: coding_agent_policy_orgs +hide_title: false +hide_table_of_contents: false +keywords: + - coding_agent_policy_orgs + - copilot + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a coding_agent_policy_orgs resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
enterpriseEnables Copilot cloud agent for the specified organizations within the enterprise.

The enterprise's coding agent policy must be set to `enabled_for_selected_orgs` before
using this endpoint. Organizations can be specified by login or matched via custom properties.

Only organizations that have Copilot enabled and belong to the enterprise will be affected.

Only enterprise owners can add organizations to the coding agent policy.

OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:enterprise` scopes to use this endpoint.
enterpriseDisables Copilot cloud agent for the specified organizations within the enterprise.

The enterprise's coding agent policy must be set to `enabled_for_selected_orgs` before
using this endpoint. Organizations can be specified by login or matched via custom properties.

Only organizations that have Copilot enabled and belong to the enterprise will be affected.

Only enterprise owners can remove organizations from the coding agent policy.

OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:enterprise` scopes to use this endpoint.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe slug version of the enterprise name.
+ +## `INSERT` examples + + + + +Enables Copilot cloud agent for the specified organizations within the enterprise.

The enterprise's coding agent policy must be set to `enabled_for_selected_orgs` before
using this endpoint. Organizations can be specified by login or matched via custom properties.

Only organizations that have Copilot enabled and belong to the enterprise will be affected.

Only enterprise owners can add organizations to the coding agent policy.

OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:enterprise` scopes to use this endpoint. + +```sql +INSERT INTO github.copilot.coding_agent_policy_orgs ( +organizations, +custom_properties, +enterprise +) +SELECT +'{{ organizations }}', +'{{ custom_properties }}', +'{{ enterprise }}' +; +``` +
+ + +{`# Description fields are for documentation purposes +- name: coding_agent_policy_orgs + props: + - name: enterprise + value: "{{ enterprise }}" + description: Required parameter for the coding_agent_policy_orgs resource. + - name: organizations + value: + - "{{ organizations }}" + description: | + List of organization logins within the enterprise to enable Copilot cloud agent for. + - name: custom_properties + description: | + List of custom property filters to match organizations. Organizations matching any of the specified property name/value pairs will be included. This is a one-time operation, setting the property on an organization in the future will not automatically update its coding agent policy. + value: + - property_name: "{{ property_name }}" + values: "{{ values }}" +`} + + +
+ + +## `DELETE` examples + + + + +Disables Copilot cloud agent for the specified organizations within the enterprise.

The enterprise's coding agent policy must be set to `enabled_for_selected_orgs` before
using this endpoint. Organizations can be specified by login or matched via custom properties.

Only organizations that have Copilot enabled and belong to the enterprise will be affected.

Only enterprise owners can remove organizations from the coding agent policy.

OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `admin:enterprise` scopes to use this endpoint. + +```sql +DELETE FROM github.copilot.coding_agent_policy_orgs +WHERE enterprise = '{{ enterprise }}' --required +; +``` +
+
diff --git a/website/docs/services/copilot/copilot_metrics/index.md b/website/docs/services/copilot/copilot_metrics/index.md deleted file mode 100644 index 6c35850..0000000 --- a/website/docs/services/copilot/copilot_metrics/index.md +++ /dev/null @@ -1,196 +0,0 @@ ---- -title: copilot_metrics -hide_title: false -hide_table_of_contents: false -keywords: - - copilot_metrics - - copilot - - github - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage github resources using SQL -custom_edit_url: null -image: /img/stackql-github-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import CodeBlock from '@theme/CodeBlock'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists a copilot_metrics resource. - -## Overview - - - - -
Name
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - - - - -Response - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
objectUsage metrics for Copilot Chat in GitHub.com
objectUsage metrics for Copilot for pull requests.
objectUsage metrics for Copilot Chat in the IDE.
objectUsage metrics for Copilot editor code completions in the IDE.
string (date)The date for which the usage metrics are aggregated, in `YYYY-MM-DD` format.
integerThe 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.
integerThe 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.
-
-
- -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
org, team_slugsince, until, page, per_pageUse 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.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringThe organization name. The name is not case sensitive.
stringThe slug of the team name.
integerThe 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)."
integerThe 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)."
stringShow 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.
stringShow 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.
- -## `SELECT` examples - - - - -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. - -```sql -SELECT -copilot_dotcom_chat, -copilot_dotcom_pull_requests, -copilot_ide_chat, -copilot_ide_code_completions, -date, -total_active_users, -total_engaged_users -FROM github.copilot.copilot_metrics -WHERE org = '{{ org }}' -- required -AND team_slug = '{{ team_slug }}' -- required -AND since = '{{ since }}' -AND until = '{{ until }}' -AND page = '{{ page }}' -AND per_page = '{{ per_page }}' -; -``` -
-
diff --git a/website/docs/services/copilot/copilot_repos_one_day_report/index.md b/website/docs/services/copilot/copilot_repos_one_day_report/index.md new file mode 100644 index 0000000..20cc73d --- /dev/null +++ b/website/docs/services/copilot/copilot_repos_one_day_report/index.md @@ -0,0 +1,142 @@ +--- +title: copilot_repos_one_day_report +hide_title: false +hide_table_of_contents: false +keywords: + - copilot_repos_one_day_report + - copilot + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a copilot_repos_one_day_report resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
arrayThe URLs to download the Copilot usage metrics report for the enterprise/organization for the specified day.
string (date)The day of the report in `YYYY-MM-DD` format.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
enterprise, dayUse this endpoint to retrieve download links for the Copilot enterprise repository report for a specific day. The report provides per-repository pull request metrics for Copilot across the enterprise, with one entry per repository.

The report contains repository-level pull request activity for the specified day, including the Copilot Coding Agent (CCA) and Copilot Code Review (CCR) breakdowns. Only repositories that had activity on the specified day are included. Reports are generated daily and made available for download through signed URLs with a limited expiration time.

The response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed.

Enterprise owners, billing managers, and authorized users with fine-grained "View Enterprise Copilot Metrics" permission can retrieve Copilot metrics reports for the enterprise. OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `read:enterprise` scopes to use this endpoint.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string (date)The day to request data for, in `YYYY-MM-DD` format.
stringThe slug version of the enterprise name.
+ +## `SELECT` examples + + + + +Use this endpoint to retrieve download links for the Copilot enterprise repository report for a specific day. The report provides per-repository pull request metrics for Copilot across the enterprise, with one entry per repository.

The report contains repository-level pull request activity for the specified day, including the Copilot Coding Agent (CCA) and Copilot Code Review (CCR) breakdowns. Only repositories that had activity on the specified day are included. Reports are generated daily and made available for download through signed URLs with a limited expiration time.

The response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed.

Enterprise owners, billing managers, and authorized users with fine-grained "View Enterprise Copilot Metrics" permission can retrieve Copilot metrics reports for the enterprise. OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `read:enterprise` scopes to use this endpoint. + +```sql +SELECT +download_links, +report_day +FROM github.copilot.copilot_repos_one_day_report +WHERE enterprise = '{{ enterprise }}' -- required +AND day = '{{ day }}' -- required +; +``` +
+
diff --git a/website/docs/services/copilot/copilot_user_teams_one_day_report/index.md b/website/docs/services/copilot/copilot_user_teams_one_day_report/index.md new file mode 100644 index 0000000..8fd2f66 --- /dev/null +++ b/website/docs/services/copilot/copilot_user_teams_one_day_report/index.md @@ -0,0 +1,142 @@ +--- +title: copilot_user_teams_one_day_report +hide_title: false +hide_table_of_contents: false +keywords: + - copilot_user_teams_one_day_report + - copilot + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a copilot_user_teams_one_day_report resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
arrayThe URLs to download the Copilot usage metrics report for the enterprise/organization for the specified day.
string (date)The day of the report in `YYYY-MM-DD` format.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
enterprise, dayUse this endpoint to retrieve download links for the Copilot enterprise user-teams report for a specific day. The report provides user-team join data for Copilot across the enterprise, with one entry per user-team pair.

The report contains user-team membership data for the specified day, enabling consumers to join with the existing enterprise user reports to compute team-level usage metrics. Reports are generated daily and made available for download through signed URLs with a limited expiration time.

The response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed.

Enterprise owners, billing managers, and authorized users with fine-grained "View Enterprise Copilot Metrics" permission can retrieve Copilot metrics reports for the enterprise. OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `read:enterprise` scopes to use this endpoint.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string (date)The day to request data for, in `YYYY-MM-DD` format.
stringThe slug version of the enterprise name.
+ +## `SELECT` examples + + + + +Use this endpoint to retrieve download links for the Copilot enterprise user-teams report for a specific day. The report provides user-team join data for Copilot across the enterprise, with one entry per user-team pair.

The report contains user-team membership data for the specified day, enabling consumers to join with the existing enterprise user reports to compute team-level usage metrics. Reports are generated daily and made available for download through signed URLs with a limited expiration time.

The response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed.

Enterprise owners, billing managers, and authorized users with fine-grained "View Enterprise Copilot Metrics" permission can retrieve Copilot metrics reports for the enterprise. OAuth app tokens and personal access tokens (classic) need either the `manage_billing:copilot` or `read:enterprise` scopes to use this endpoint. + +```sql +SELECT +download_links, +report_day +FROM github.copilot.copilot_user_teams_one_day_report +WHERE enterprise = '{{ enterprise }}' -- required +AND day = '{{ day }}' -- required +; +``` +
+
diff --git a/website/docs/services/copilot/index.md b/website/docs/services/copilot/index.md index 5332917..9b7637e 100644 --- a/website/docs/services/copilot/index.md +++ b/website/docs/services/copilot/index.md @@ -18,33 +18,38 @@ copilot service documentation. :::info[Service Summary] -total resources: __19__ +total resources: __24__ ::: ## Resources \ No newline at end of file diff --git a/website/docs/services/copilot/org_coding_agent_permissions/index.md b/website/docs/services/copilot/org_coding_agent_permissions/index.md index 86339ad..acc49f8 100644 --- a/website/docs/services/copilot/org_coding_agent_permissions/index.md +++ b/website/docs/services/copilot/org_coding_agent_permissions/index.md @@ -54,7 +54,7 @@ Response string - The policy for which repositories can use Copilot coding agent. Can be one of `all`, `selected`, or `none`. (all, selected, none) + The policy for which repositories can use Copilot cloud agent. Can be one of `all`, `selected`, or `none`. (all, selected, none) @@ -86,14 +86,14 @@ The following methods are available for this resource: org - > [!NOTE]
> This endpoint is in public preview and is subject to change.

Gets information about which repositories in an organization have been enabled
or disabled for the Copilot coding agent.

Organization owners can configure whether Copilot coding agent is enabled for
all repositories, selected repositories, or no repositories owned by organization.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + > [!NOTE]
> This endpoint is in public preview and is subject to change.

Gets information about which repositories in an organization have been enabled
or disabled for the Copilot cloud agent.

Organization owners can configure whether Copilot cloud agent is enabled for
all repositories, selected repositories, or no repositories owned by organization.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. org, enabled_repositories - > [!NOTE]
> This endpoint is in public preview and is subject to change.

Sets the policy for which repositories in an organization can use Copilot coding agent.

Organization owners can configure whether Copilot coding agent is enabled for
all repositories, selected repositories, or no repositories owned by the organization.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + > [!NOTE]
> This endpoint is in public preview and is subject to change.

Sets the policy for which repositories in an organization can use Copilot cloud agent.

Organization owners can configure whether Copilot cloud agent is enabled for
all repositories, selected repositories, or no repositories owned by the organization.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. @@ -129,7 +129,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -> [!NOTE]
> This endpoint is in public preview and is subject to change.

Gets information about which repositories in an organization have been enabled
or disabled for the Copilot coding agent.

Organization owners can configure whether Copilot coding agent is enabled for
all repositories, selected repositories, or no repositories owned by organization.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. +> [!NOTE]
> This endpoint is in public preview and is subject to change.

Gets information about which repositories in an organization have been enabled
or disabled for the Copilot cloud agent.

Organization owners can configure whether Copilot cloud agent is enabled for
all repositories, selected repositories, or no repositories owned by organization.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. ```sql SELECT @@ -153,7 +153,7 @@ WHERE org = '{{ org }}' -- required > -> [!NOTE]
> This endpoint is in public preview and is subject to change.

Sets the policy for which repositories in an organization can use Copilot coding agent.

Organization owners can configure whether Copilot coding agent is enabled for
all repositories, selected repositories, or no repositories owned by the organization.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. +> [!NOTE]
> This endpoint is in public preview and is subject to change.

Sets the policy for which repositories in an organization can use Copilot cloud agent.

Organization owners can configure whether Copilot cloud agent is enabled for
all repositories, selected repositories, or no repositories owned by the organization.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. ```sql REPLACE github.copilot.org_coding_agent_permissions diff --git a/website/docs/services/copilot/org_coding_agent_repos/index.md b/website/docs/services/copilot/org_coding_agent_repos/index.md index 4781108..2aeb1db 100644 --- a/website/docs/services/copilot/org_coding_agent_repos/index.md +++ b/website/docs/services/copilot/org_coding_agent_repos/index.md @@ -526,28 +526,28 @@ The following methods are available for this resource: org per_page, page - > [!NOTE]
> This endpoint is in public preview and is subject to change.

Lists the selected repositories that are enabled for Copilot coding agent in an organization.

Organization owners can use this endpoint when the coding agent repository policy
is set to `selected` to see which repositories have been enabled.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + > [!NOTE]
> This endpoint is in public preview and is subject to change.

Lists the selected repositories that are enabled for Copilot cloud agent in an organization.

Organization owners can use this endpoint when the coding agent repository policy
is set to `selected` to see which repositories have been enabled.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. org, repository_id - > [!NOTE]
> This endpoint is in public preview and is subject to change.

Adds a repository to the list of selected repositories enabled for Copilot
coding agent in an organization. This method can only be called when the
coding agent repository policy is set to `selected`.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + > [!NOTE]
> This endpoint is in public preview and is subject to change.

Adds a repository to the list of selected repositories enabled for Copilot
cloud agent in an organization. This method can only be called when the
cloud agent repository policy is set to `selected`.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. org, selected_repository_ids - > [!NOTE]
> This endpoint is in public preview and is subject to change.

Replaces the list of selected repositories that are enabled for Copilot coding
agent in an organization. This method can only be called when the coding agent
repository policy is set to `selected`.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. + > [!NOTE]
> This endpoint is in public preview and is subject to change.

Replaces the list of selected repositories that are enabled for Copilot cloud
agent in an organization. This method can only be called when the cloud agent
repository policy is set to `selected`.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. org, repository_id - > [!NOTE]
> This endpoint is in public preview and is subject to change.

Removes a repository from the list of selected repositories enabled for Copilot
coding agent in an organization. This method can only be called when the
coding agent repository policy is set to `selected`.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scopes to use this endpoint. + > [!NOTE]
> This endpoint is in public preview and is subject to change.

Removes a repository from the list of selected repositories enabled for Copilot
cloud agent in an organization. This method can only be called when the
cloud agent repository policy is set to `selected`.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scopes to use this endpoint. @@ -598,7 +598,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -> [!NOTE]
> This endpoint is in public preview and is subject to change.

Lists the selected repositories that are enabled for Copilot coding agent in an organization.

Organization owners can use this endpoint when the coding agent repository policy
is set to `selected` to see which repositories have been enabled.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. +> [!NOTE]
> This endpoint is in public preview and is subject to change.

Lists the selected repositories that are enabled for Copilot cloud agent in an organization.

Organization owners can use this endpoint when the coding agent repository policy
is set to `selected` to see which repositories have been enabled.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. ```sql SELECT @@ -713,7 +713,7 @@ AND page = '{{ page }}' > -> [!NOTE]
> This endpoint is in public preview and is subject to change.

Adds a repository to the list of selected repositories enabled for Copilot
coding agent in an organization. This method can only be called when the
coding agent repository policy is set to `selected`.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. +> [!NOTE]
> This endpoint is in public preview and is subject to change.

Adds a repository to the list of selected repositories enabled for Copilot
cloud agent in an organization. This method can only be called when the
cloud agent repository policy is set to `selected`.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. ```sql REPLACE github.copilot.org_coding_agent_repos @@ -726,7 +726,7 @@ AND repository_id = '{{ repository_id }}' --required;
-> [!NOTE]
> This endpoint is in public preview and is subject to change.

Replaces the list of selected repositories that are enabled for Copilot coding
agent in an organization. This method can only be called when the coding agent
repository policy is set to `selected`.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. +> [!NOTE]
> This endpoint is in public preview and is subject to change.

Replaces the list of selected repositories that are enabled for Copilot cloud
agent in an organization. This method can only be called when the cloud agent
repository policy is set to `selected`.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. ```sql REPLACE github.copilot.org_coding_agent_repos @@ -750,7 +750,7 @@ AND selected_repository_ids = '{{ selected_repository_ids }}' --required; > -> [!NOTE]
> This endpoint is in public preview and is subject to change.

Removes a repository from the list of selected repositories enabled for Copilot
coding agent in an organization. This method can only be called when the
coding agent repository policy is set to `selected`.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scopes to use this endpoint. +> [!NOTE]
> This endpoint is in public preview and is subject to change.

Removes a repository from the list of selected repositories enabled for Copilot
cloud agent in an organization. This method can only be called when the
cloud agent repository policy is set to `selected`.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scopes to use this endpoint. ```sql DELETE FROM github.copilot.org_coding_agent_repos diff --git a/website/docs/services/copilot/org_copilot_metrics/index.md b/website/docs/services/copilot/org_copilot_metrics/index.md deleted file mode 100644 index e7e6675..0000000 --- a/website/docs/services/copilot/org_copilot_metrics/index.md +++ /dev/null @@ -1,190 +0,0 @@ ---- -title: org_copilot_metrics -hide_title: false -hide_table_of_contents: false -keywords: - - org_copilot_metrics - - copilot - - github - - infrastructure-as-code - - configuration-as-data - - cloud inventory -description: Query, deploy and manage github resources using SQL -custom_edit_url: null -image: /img/stackql-github-provider-featured-image.png ---- - -import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; -import CodeBlock from '@theme/CodeBlock'; -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Creates, updates, deletes, gets or lists an org_copilot_metrics resource. - -## Overview - - - - -
Name
TypeResource
Id
- -## Fields - -The following fields are returned by `SELECT` queries: - - - - -Response - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
objectUsage metrics for Copilot Chat in GitHub.com
objectUsage metrics for Copilot for pull requests.
objectUsage metrics for Copilot Chat in the IDE.
objectUsage metrics for Copilot editor code completions in the IDE.
string (date)The date for which the usage metrics are aggregated, in `YYYY-MM-DD` format.
integerThe 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.
integerThe 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.
-
-
- -## Methods - -The following methods are available for this resource: - - - - - - - - - - - - - - - - - - - - -
NameAccessible byRequired ParamsOptional ParamsDescription
orgsince, until, page, per_pageUse 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.
- -## Parameters - -Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDatatypeDescription
stringThe organization name. The name is not case sensitive.
integerThe 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)."
integerThe 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)."
stringShow 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.
stringShow 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.
- -## `SELECT` examples - - - - -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. - -```sql -SELECT -copilot_dotcom_chat, -copilot_dotcom_pull_requests, -copilot_ide_chat, -copilot_ide_code_completions, -date, -total_active_users, -total_engaged_users -FROM github.copilot.org_copilot_metrics -WHERE org = '{{ org }}' -- required -AND since = '{{ since }}' -AND until = '{{ until }}' -AND page = '{{ page }}' -AND per_page = '{{ per_page }}' -; -``` -
-
diff --git a/website/docs/services/copilot/org_copilot_repos_one_day_report/index.md b/website/docs/services/copilot/org_copilot_repos_one_day_report/index.md new file mode 100644 index 0000000..25f9439 --- /dev/null +++ b/website/docs/services/copilot/org_copilot_repos_one_day_report/index.md @@ -0,0 +1,142 @@ +--- +title: org_copilot_repos_one_day_report +hide_title: false +hide_table_of_contents: false +keywords: + - org_copilot_repos_one_day_report + - copilot + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an org_copilot_repos_one_day_report resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
arrayThe URLs to download the Copilot usage metrics report for the enterprise/organization for the specified day.
string (date)The day of the report in `YYYY-MM-DD` format.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
org, dayUse this endpoint to retrieve download links for the Copilot organization repository report for a specific day. The report provides per-repository pull request metrics for Copilot across the organization, with one entry per repository.

The report contains repository-level pull request activity for the specified day, including the Copilot Coding Agent (CCA) and Copilot Code Review (CCR) breakdowns. Only repositories that had activity on the specified day are included. Reports are generated daily and made available for download through signed URLs with a limited expiration time.

The response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed.

Organization owners and authorized users with fine-grained "View Organization Copilot Metrics" permission can retrieve Copilot metrics reports for the organization. OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.

For more information about organization metrics attribution, see [How are metrics attributed across organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations).
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string (date)The day to request data for, in `YYYY-MM-DD` format.
stringThe organization name. The name is not case sensitive.
+ +## `SELECT` examples + + + + +Use this endpoint to retrieve download links for the Copilot organization repository report for a specific day. The report provides per-repository pull request metrics for Copilot across the organization, with one entry per repository.

The report contains repository-level pull request activity for the specified day, including the Copilot Coding Agent (CCA) and Copilot Code Review (CCR) breakdowns. Only repositories that had activity on the specified day are included. Reports are generated daily and made available for download through signed URLs with a limited expiration time.

The response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed.

Organization owners and authorized users with fine-grained "View Organization Copilot Metrics" permission can retrieve Copilot metrics reports for the organization. OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.

For more information about organization metrics attribution, see [How are metrics attributed across organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations). + +```sql +SELECT +download_links, +report_day +FROM github.copilot.org_copilot_repos_one_day_report +WHERE org = '{{ org }}' -- required +AND day = '{{ day }}' -- required +; +``` +
+
diff --git a/website/docs/services/copilot/org_copilot_user_teams_one_day_report/index.md b/website/docs/services/copilot/org_copilot_user_teams_one_day_report/index.md new file mode 100644 index 0000000..f3c3c70 --- /dev/null +++ b/website/docs/services/copilot/org_copilot_user_teams_one_day_report/index.md @@ -0,0 +1,142 @@ +--- +title: org_copilot_user_teams_one_day_report +hide_title: false +hide_table_of_contents: false +keywords: + - org_copilot_user_teams_one_day_report + - copilot + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an org_copilot_user_teams_one_day_report resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
arrayThe URLs to download the Copilot usage metrics report for the enterprise/organization for the specified day.
string (date)The day of the report in `YYYY-MM-DD` format.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
org, dayUse this endpoint to retrieve download links for the Copilot organization user-teams report for a specific day. The report provides user-team join data for Copilot across the organization, with one entry per user-team pair.

The report contains user-team membership data for the specified day, enabling consumers to join with the existing organization user reports to compute team-level usage metrics. Reports are generated daily and made available for download through signed URLs with a limited expiration time.

The response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed.

Organization owners and authorized users with fine-grained "View Organization Copilot Metrics" permission can retrieve Copilot metrics reports for the organization. OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.

For more information about organization metrics attribution, see [How are metrics attributed across organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations).
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
string (date)The day to request data for, in `YYYY-MM-DD` format.
stringThe organization name. The name is not case sensitive.
+ +## `SELECT` examples + + + + +Use this endpoint to retrieve download links for the Copilot organization user-teams report for a specific day. The report provides user-team join data for Copilot across the organization, with one entry per user-team pair.

The report contains user-team membership data for the specified day, enabling consumers to join with the existing organization user reports to compute team-level usage metrics. Reports are generated daily and made available for download through signed URLs with a limited expiration time.

The response includes download links to the report files, along with the specific date of the report. The report covers a complete day for which data has been processed.

Organization owners and authorized users with fine-grained "View Organization Copilot Metrics" permission can retrieve Copilot metrics reports for the organization. OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.

For more information about organization metrics attribution, see [How are metrics attributed across organizations](https://docs.github.com/copilot/concepts/copilot-metrics#how-are-metrics-attributed-across-organizations). + +```sql +SELECT +download_links, +report_day +FROM github.copilot.org_copilot_user_teams_one_day_report +WHERE org = '{{ org }}' -- required +AND day = '{{ day }}' -- required +; +``` +
+
diff --git a/website/docs/services/copilot/repo_cloud_agent_configuration/index.md b/website/docs/services/copilot/repo_cloud_agent_configuration/index.md new file mode 100644 index 0000000..ac47b04 --- /dev/null +++ b/website/docs/services/copilot/repo_cloud_agent_configuration/index.md @@ -0,0 +1,178 @@ +--- +title: repo_cloud_agent_configuration +hide_title: false +hide_table_of_contents: false +keywords: + - repo_cloud_agent_configuration + - copilot + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a repo_cloud_agent_configuration resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
arrayA list of custom allowlist entries, as hosts or URLs, that the firewall will allow the Copilot cloud agent to access.
objectThe enabled review tools for Copilot cloud agent.
booleanWhether automations are enabled in this repository. When true, users can create automations that automatically run agents on a schedule or in response to events like new issues or updated pull requests.
booleanWhether the firewall is enabled.
booleanWhether the firewall recommended allowlist is enabled.
objectThe user-supplied MCP server configuration for the repository, as a free-form JSON object. This will be set to `null` if no configuration has been set. The shape of a valid MCP configuration may evolve over time, so this property is intentionally not strictly typed. Clients should not assume a fixed schema.
booleanWhether Actions workflow approval is required for Copilot cloud agent pull requests.
booleanWhether write access is required for automation triggers. When true, automations will only run if the user triggering the event has write access to the repository. When false, users can create automations that listen for events triggered by users without write access.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repo> [!NOTE]
> This endpoint is in public preview and is subject to change.

Gets the Copilot cloud agent configuration for a repository, including MCP server
configuration, enabled review tools, Actions workflow approval settings, and firewall
configuration.

OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe account owner of the repository. The name is not case sensitive.
stringThe name of the repository without the `.git` extension. The name is not case sensitive.
+ +## `SELECT` examples + + + + +> [!NOTE]
> This endpoint is in public preview and is subject to change.

Gets the Copilot cloud agent configuration for a repository, including MCP server
configuration, enabled review tools, Actions workflow approval settings, and firewall
configuration.

OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + +```sql +SELECT +custom_allowlist, +enabled_tools, +is_automations_enabled, +is_firewall_enabled, +is_firewall_recommended_allowlist_enabled, +mcp_configuration, +require_actions_workflow_approval, +require_write_access_for_automation_triggers +FROM github.copilot.repo_cloud_agent_configuration +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +; +``` +
+
diff --git a/website/docs/services/copilot_spaces/collaborators/index.md b/website/docs/services/copilot_spaces/collaborators/index.md new file mode 100644 index 0000000..af5377c --- /dev/null +++ b/website/docs/services/copilot_spaces/collaborators/index.md @@ -0,0 +1,908 @@ +--- +title: collaborators +hide_title: false +hide_table_of_contents: false +keywords: + - collaborators + - copilot_spaces + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a collaborators resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer (int64)
string
string (example: 41d064eb2195891e12d0413f63227ea7)
string (example: MDQ6VXNlcjE=)
integer
stringThe collaborator actor type. (User)
string (uri) (example: https://github.com/images/error/octocat_happy.gif)
string
string
string (example: https://api.github.com/users/octocat/events{/privacy})
string (uri) (example: https://api.github.com/users/octocat/followers)
string (example: https://api.github.com/users/octocat/following{/other_user})
string (example: https://api.github.com/users/octocat/gists{/gist_id})
string (uri) (example: https://github.com/octocat)
string (example: octocat)
string
string
string (uri) (example: https://api.github.com/users/octocat/orgs)
string
string (uri) (example: https://api.github.com/users/octocat/received_events)
string (uri) (example: https://api.github.com/users/octocat/repos)
string (uri)
stringThe role granted to the collaborator (reader, writer, admin)
boolean
string
string (example: "2020-07-09T00:17:55Z")
string (example: https://api.github.com/users/octocat/starred{/owner}{/repo})
string (uri) (example: https://api.github.com/users/octocat/subscriptions)
string (example: User)
string (uri) (example: https://api.github.com/users/octocat)
string (example: public)
+
+ + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer (int64)
string
string (example: 41d064eb2195891e12d0413f63227ea7)
string (example: MDQ6VXNlcjE=)
integer
stringThe collaborator actor type. (User)
string (uri) (example: https://github.com/images/error/octocat_happy.gif)
string
string
string (example: https://api.github.com/users/octocat/events{/privacy})
string (uri) (example: https://api.github.com/users/octocat/followers)
string (example: https://api.github.com/users/octocat/following{/other_user})
string (example: https://api.github.com/users/octocat/gists{/gist_id})
string (uri) (example: https://github.com/octocat)
string (example: octocat)
string
string
string (uri) (example: https://api.github.com/users/octocat/orgs)
string
string (uri) (example: https://api.github.com/users/octocat/received_events)
string (uri) (example: https://api.github.com/users/octocat/repos)
string (uri)
stringThe role granted to the collaborator (reader, writer, admin)
boolean
string
string (example: "2020-07-09T00:17:55Z")
string (example: https://api.github.com/users/octocat/starred{/owner}{/repo})
string (uri) (example: https://api.github.com/users/octocat/subscriptions)
string (example: User)
string (uri) (example: https://api.github.com/users/octocat)
string (example: public)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
org, space_numberLists all collaborators for a specific Copilot Space owned by an organization. The authenticated user must have appropriate permissions to view collaborators.

Each collaborator entry specifies which user or team has access to the space and at what level (reader, writer, or admin). The space owner (organization) is excluded from this list.

**Note:** Team collaborators listed here are teams that are defined in the organization.

OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.
username, space_numberLists all collaborators for a specific Copilot Space owned by a user. The authenticated user must be the owner of the space or have admin access to the space.

Each collaborator entry specifies which user has access to the space and at what level (reader, writer, or admin). The space owner is excluded from this list.

Team collaborators are not supported for user-owned Copilot Spaces.

OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint.
org, space_number, actor_type, actor_identifier, roleAdds a collaborator (user or team) to a specific Copilot Space owned by an organization. The authenticated user must have appropriate permissions to manage collaborators.

**Note:** When adding users as collaborators, they must already be members of the organization.
When adding teams as collaborators, they must be defined in the organization.

OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.
username, space_number, actor_type, actor_identifier, roleAdds a collaborator to a specific Copilot Space owned by a user. The authenticated user must be the owner of the space or have admin access to the space.

Team collaborators are not supported for user-owned Copilot Spaces.

OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint.
org, space_number, actor_type, actor_identifier, roleUpdates the role of a collaborator for a specific Copilot Space owned by an organization. The authenticated user must have appropriate permissions to manage collaborators.

OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.
username, space_number, actor_type, actor_identifier, roleUpdates the role of a collaborator for a specific Copilot Space owned by a user. The authenticated user must be the owner of the space or have admin access to the space.

OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint.
org, space_number, actor_type, actor_identifierRemoves a collaborator from a specific Copilot Space owned by an organization. The authenticated user must have appropriate permissions to manage collaborators.

OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.
username, space_number, actor_type, actor_identifierRemoves a collaborator from a specific Copilot Space owned by a user. The authenticated user must be the owner of the space or have admin access to the space.

OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe username of the collaborator. The numeric user ID is also accepted.
stringThe type of actor (must be `User` for user-owned spaces; `Team` will be rejected).
stringThe organization name. The name is not case sensitive.
integerThe unique identifier of the Copilot Space.
stringThe handle for the GitHub user account.
+ +## `SELECT` examples + + + + +Lists all collaborators for a specific Copilot Space owned by an organization. The authenticated user must have appropriate permissions to view collaborators.

Each collaborator entry specifies which user or team has access to the space and at what level (reader, writer, or admin). The space owner (organization) is excluded from this list.

**Note:** Team collaborators listed here are teams that are defined in the organization.

OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space. + +```sql +SELECT +id, +name, +gravatar_id, +node_id, +organization_id, +actor_type, +avatar_url, +description, +email, +events_url, +followers_url, +following_url, +gists_url, +html_url, +login, +members_url, +notification_setting, +organizations_url, +parent, +privacy, +received_events_url, +repos_url, +repositories_url, +role, +site_admin, +slug, +starred_at, +starred_url, +subscriptions_url, +type, +url, +user_view_type +FROM github.copilot_spaces.collaborators +WHERE org = '{{ org }}' -- required +AND space_number = '{{ space_number }}' -- required +; +``` +
+ + +Lists all collaborators for a specific Copilot Space owned by a user. The authenticated user must be the owner of the space or have admin access to the space.

Each collaborator entry specifies which user has access to the space and at what level (reader, writer, or admin). The space owner is excluded from this list.

Team collaborators are not supported for user-owned Copilot Spaces.

OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + +```sql +SELECT +id, +name, +gravatar_id, +node_id, +organization_id, +actor_type, +avatar_url, +description, +email, +events_url, +followers_url, +following_url, +gists_url, +html_url, +login, +members_url, +notification_setting, +organizations_url, +parent, +privacy, +received_events_url, +repos_url, +repositories_url, +role, +site_admin, +slug, +starred_at, +starred_url, +subscriptions_url, +type, +url, +user_view_type +FROM github.copilot_spaces.collaborators +WHERE username = '{{ username }}' -- required +AND space_number = '{{ space_number }}' -- required +; +``` +
+
+ + +## `INSERT` examples + + + + +Adds a collaborator (user or team) to a specific Copilot Space owned by an organization. The authenticated user must have appropriate permissions to manage collaborators.

**Note:** When adding users as collaborators, they must already be members of the organization.
When adding teams as collaborators, they must be defined in the organization.

OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space. + +```sql +INSERT INTO github.copilot_spaces.collaborators ( +actor_type, +actor_identifier, +role, +org, +space_number +) +SELECT +'{{ actor_type }}' /* required */, +'{{ actor_identifier }}' /* required */, +'{{ role }}' /* required */, +'{{ org }}', +'{{ space_number }}' +RETURNING +id, +name, +gravatar_id, +node_id, +organization_id, +actor_type, +avatar_url, +description, +email, +events_url, +followers_url, +following_url, +gists_url, +html_url, +login, +members_url, +notification_setting, +organizations_url, +parent, +privacy, +received_events_url, +repos_url, +repositories_url, +role, +site_admin, +slug, +starred_at, +starred_url, +subscriptions_url, +type, +url, +user_view_type +; +``` +
+ + +Adds a collaborator to a specific Copilot Space owned by a user. The authenticated user must be the owner of the space or have admin access to the space.

Team collaborators are not supported for user-owned Copilot Spaces.

OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + +```sql +INSERT INTO github.copilot_spaces.collaborators ( +actor_type, +actor_identifier, +role, +username, +space_number +) +SELECT +'{{ actor_type }}' /* required */, +'{{ actor_identifier }}' /* required */, +'{{ role }}' /* required */, +'{{ username }}', +'{{ space_number }}' +RETURNING +id, +name, +gravatar_id, +node_id, +organization_id, +actor_type, +avatar_url, +description, +email, +events_url, +followers_url, +following_url, +gists_url, +html_url, +login, +members_url, +notification_setting, +organizations_url, +parent, +privacy, +received_events_url, +repos_url, +repositories_url, +role, +site_admin, +slug, +starred_at, +starred_url, +subscriptions_url, +type, +url, +user_view_type +; +``` +
+ + +{`# Description fields are for documentation purposes +- name: collaborators + props: + - name: org + value: "{{ org }}" + description: Required parameter for the collaborators resource. + - name: space_number + value: {{ space_number }} + description: Required parameter for the collaborators resource. + - name: username + value: "{{ username }}" + description: Required parameter for the collaborators resource. + - name: actor_type + value: "{{ actor_type }}" + description: | + The type of actor (must be \`User\` for user-owned spaces; \`Team\` will be rejected). + valid_values: ['User', 'Team'] + - name: actor_identifier + value: "{{ actor_identifier }}" + description: | + The username of the collaborator. The numeric user ID is also accepted. + - name: role + value: "{{ role }}" + description: | + The role to grant to the collaborator. + valid_values: ['reader', 'writer', 'admin'] +`} + + +
+ + +## `REPLACE` examples + + + + +Updates the role of a collaborator for a specific Copilot Space owned by an organization. The authenticated user must have appropriate permissions to manage collaborators.

OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space. + +```sql +REPLACE github.copilot_spaces.collaborators +SET +role = '{{ role }}' +WHERE +org = '{{ org }}' --required +AND space_number = '{{ space_number }}' --required +AND actor_type = '{{ actor_type }}' --required +AND actor_identifier = '{{ actor_identifier }}' --required +AND role = '{{ role }}' --required +RETURNING +id, +name, +gravatar_id, +node_id, +organization_id, +actor_type, +avatar_url, +description, +email, +events_url, +followers_url, +following_url, +gists_url, +html_url, +login, +members_url, +notification_setting, +organizations_url, +parent, +privacy, +received_events_url, +repos_url, +repositories_url, +role, +site_admin, +slug, +starred_at, +starred_url, +subscriptions_url, +type, +url, +user_view_type; +``` +
+ + +Updates the role of a collaborator for a specific Copilot Space owned by a user. The authenticated user must be the owner of the space or have admin access to the space.

OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + +```sql +REPLACE github.copilot_spaces.collaborators +SET +role = '{{ role }}' +WHERE +username = '{{ username }}' --required +AND space_number = '{{ space_number }}' --required +AND actor_type = '{{ actor_type }}' --required +AND actor_identifier = '{{ actor_identifier }}' --required +AND role = '{{ role }}' --required +RETURNING +id, +name, +gravatar_id, +node_id, +organization_id, +actor_type, +avatar_url, +description, +email, +events_url, +followers_url, +following_url, +gists_url, +html_url, +login, +members_url, +notification_setting, +organizations_url, +parent, +privacy, +received_events_url, +repos_url, +repositories_url, +role, +site_admin, +slug, +starred_at, +starred_url, +subscriptions_url, +type, +url, +user_view_type; +``` +
+
+ + +## `DELETE` examples + + + + +Removes a collaborator from a specific Copilot Space owned by an organization. The authenticated user must have appropriate permissions to manage collaborators.

OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space. + +```sql +DELETE FROM github.copilot_spaces.collaborators +WHERE org = '{{ org }}' --required +AND space_number = '{{ space_number }}' --required +AND actor_type = '{{ actor_type }}' --required +AND actor_identifier = '{{ actor_identifier }}' --required +; +``` +
+ + +Removes a collaborator from a specific Copilot Space owned by a user. The authenticated user must be the owner of the space or have admin access to the space.

OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + +```sql +DELETE FROM github.copilot_spaces.collaborators +WHERE username = '{{ username }}' --required +AND space_number = '{{ space_number }}' --required +AND actor_type = '{{ actor_type }}' --required +AND actor_identifier = '{{ actor_identifier }}' --required +; +``` +
+
diff --git a/website/docs/services/copilot_spaces/index.md b/website/docs/services/copilot_spaces/index.md new file mode 100644 index 0000000..45168c3 --- /dev/null +++ b/website/docs/services/copilot_spaces/index.md @@ -0,0 +1,34 @@ +--- +title: copilot_spaces +hide_title: false +hide_table_of_contents: false +keywords: + - copilot_spaces + - github + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +copilot_spaces service documentation. + +:::info[Service Summary] + +total resources: __3__ + +::: + +## Resources + \ No newline at end of file diff --git a/website/docs/services/copilot_spaces/resources/index.md b/website/docs/services/copilot_spaces/resources/index.md new file mode 100644 index 0000000..ca96313 --- /dev/null +++ b/website/docs/services/copilot_spaces/resources/index.md @@ -0,0 +1,620 @@ +--- +title: resources +hide_title: false +hide_table_of_contents: false +keywords: + - resources + - copilot_spaces + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a resources resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integerThe unique identifier of the resource.
integerThe ID of the associated chat attachment, if any.
string (date-time)The date and time the resource was created.
objectResource-specific metadata. The keys and values depend on the resource type.
stringThe type of the resource. (repository, github_file, free_text, github_issue, github_pull_request, media_content, uploaded_text_file)
string (date-time)The date and time the resource was last updated.
+
+ + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integerThe unique identifier of the resource.
integerThe ID of the associated chat attachment, if any.
string (date-time)The date and time the resource was created.
objectResource-specific metadata. The keys and values depend on the resource type.
stringThe type of the resource. (repository, github_file, free_text, github_issue, github_pull_request, media_content, uploaded_text_file)
string (date-time)The date and time the resource was last updated.
+
+ + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integerThe unique identifier of the resource.
integerThe ID of the associated chat attachment, if any.
string (date-time)The date and time the resource was created.
objectResource-specific metadata. The keys and values depend on the resource type.
stringThe type of the resource. (repository, github_file, free_text, github_issue, github_pull_request, media_content, uploaded_text_file)
string (date-time)The date and time the resource was last updated.
+
+ + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integerThe unique identifier of the resource.
integerThe ID of the associated chat attachment, if any.
string (date-time)The date and time the resource was created.
objectResource-specific metadata. The keys and values depend on the resource type.
stringThe type of the resource. (repository, github_file, free_text, github_issue, github_pull_request, media_content, uploaded_text_file)
string (date-time)The date and time the resource was last updated.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
org, space_number, space_resource_idGets a specific resource attached to a Copilot Space owned by an organization.
The authenticated user must have appropriate permissions to view the space.

OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.
username, space_number, space_resource_idGets a specific resource attached to a Copilot Space owned by a user.
The authenticated user must have appropriate permissions to view the space.

OAuth app tokens and personal access tokens (classic) need the `read:user` scope to use this endpoint.
org, space_numberLists all resources attached to a specific Copilot Space owned by an organization.
The authenticated user must have appropriate permissions to view the space.

OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.
username, space_numberLists all resources attached to a specific Copilot Space owned by a user.
The authenticated user must have appropriate permissions to view the space.

OAuth app tokens and personal access tokens (classic) need the `read:user` scope to use this endpoint.
org, space_number, resource_type, metadataCreates a new resource in a specific Copilot Space owned by an organization.
The authenticated user must have write permissions on the space.

The following resource types are supported: `repository`, `github_file`, `free_text`, `github_issue`, `github_pull_request`.
The `uploaded_text_file` and `media_content` types are not supported via this endpoint.

For `github_file` resources, if a resource with the same repository, file path, and SHA already exists, the existing resource is returned with a `200` status.

OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space, including the resource being created.
username, space_number, resource_type, metadataCreates a new resource in a specific Copilot Space owned by a user.
The authenticated user must have write permissions on the space.

The following resource types are supported: `repository`, `github_file`, `free_text`, `github_issue`, `github_pull_request`.
The `uploaded_text_file` and `media_content` types are not supported via this endpoint.

For `github_file` resources, if a resource with the same repository, file path, and SHA already exists, the existing resource is returned with a `200` status.

OAuth app tokens and personal access tokens (classic) need the `write:user` scope to use this endpoint.
org, space_number, space_resource_idUpdates the metadata of a resource in a specific Copilot Space owned by an organization.
The authenticated user must have write permissions on the space.

OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space, including the resource being updated.
username, space_number, space_resource_idUpdates the metadata of a resource in a specific Copilot Space owned by a user.
The authenticated user must have write permissions on the space.

OAuth app tokens and personal access tokens (classic) need the `write:user` scope to use this endpoint.
org, space_number, space_resource_idDeletes a resource from a specific Copilot Space owned by an organization.
The authenticated user must have write permissions on the space.

OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.
username, space_number, space_resource_idDeletes a resource from a specific Copilot Space owned by a user.
The authenticated user must have write permissions on the space.

OAuth app tokens and personal access tokens (classic) need the `write:user` scope to use this endpoint.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe organization name. The name is not case sensitive.
integerThe unique identifier of the Copilot Space.
integerThe unique identifier of the resource.
stringThe handle for the GitHub user account.
+ +## `SELECT` examples + + + + +Gets a specific resource attached to a Copilot Space owned by an organization.
The authenticated user must have appropriate permissions to view the space.

OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space. + +```sql +SELECT +id, +copilot_chat_attachment_id, +created_at, +metadata, +resource_type, +updated_at +FROM github.copilot_spaces.resources +WHERE org = '{{ org }}' -- required +AND space_number = '{{ space_number }}' -- required +AND space_resource_id = '{{ space_resource_id }}' -- required +; +``` +
+ + +Gets a specific resource attached to a Copilot Space owned by a user.
The authenticated user must have appropriate permissions to view the space.

OAuth app tokens and personal access tokens (classic) need the `read:user` scope to use this endpoint. + +```sql +SELECT +id, +copilot_chat_attachment_id, +created_at, +metadata, +resource_type, +updated_at +FROM github.copilot_spaces.resources +WHERE username = '{{ username }}' -- required +AND space_number = '{{ space_number }}' -- required +AND space_resource_id = '{{ space_resource_id }}' -- required +; +``` +
+ + +Lists all resources attached to a specific Copilot Space owned by an organization.
The authenticated user must have appropriate permissions to view the space.

OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space. + +```sql +SELECT +id, +copilot_chat_attachment_id, +created_at, +metadata, +resource_type, +updated_at +FROM github.copilot_spaces.resources +WHERE org = '{{ org }}' -- required +AND space_number = '{{ space_number }}' -- required +; +``` +
+ + +Lists all resources attached to a specific Copilot Space owned by a user.
The authenticated user must have appropriate permissions to view the space.

OAuth app tokens and personal access tokens (classic) need the `read:user` scope to use this endpoint. + +```sql +SELECT +id, +copilot_chat_attachment_id, +created_at, +metadata, +resource_type, +updated_at +FROM github.copilot_spaces.resources +WHERE username = '{{ username }}' -- required +AND space_number = '{{ space_number }}' -- required +; +``` +
+
+ + +## `INSERT` examples + + + + +Creates a new resource in a specific Copilot Space owned by an organization.
The authenticated user must have write permissions on the space.

The following resource types are supported: `repository`, `github_file`, `free_text`, `github_issue`, `github_pull_request`.
The `uploaded_text_file` and `media_content` types are not supported via this endpoint.

For `github_file` resources, if a resource with the same repository, file path, and SHA already exists, the existing resource is returned with a `200` status.

OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space, including the resource being created. + +```sql +INSERT INTO github.copilot_spaces.resources ( +resource_type, +metadata, +org, +space_number +) +SELECT +'{{ resource_type }}' /* required */, +'{{ metadata }}' /* required */, +'{{ org }}', +'{{ space_number }}' +RETURNING +id, +copilot_chat_attachment_id, +created_at, +metadata, +resource_type, +updated_at +; +``` +
+ + +Creates a new resource in a specific Copilot Space owned by a user.
The authenticated user must have write permissions on the space.

The following resource types are supported: `repository`, `github_file`, `free_text`, `github_issue`, `github_pull_request`.
The `uploaded_text_file` and `media_content` types are not supported via this endpoint.

For `github_file` resources, if a resource with the same repository, file path, and SHA already exists, the existing resource is returned with a `200` status.

OAuth app tokens and personal access tokens (classic) need the `write:user` scope to use this endpoint. + +```sql +INSERT INTO github.copilot_spaces.resources ( +resource_type, +metadata, +username, +space_number +) +SELECT +'{{ resource_type }}' /* required */, +'{{ metadata }}' /* required */, +'{{ username }}', +'{{ space_number }}' +RETURNING +id, +copilot_chat_attachment_id, +created_at, +metadata, +resource_type, +updated_at +; +``` +
+ + +{`# Description fields are for documentation purposes +- name: resources + props: + - name: org + value: "{{ org }}" + description: Required parameter for the resources resource. + - name: space_number + value: {{ space_number }} + description: Required parameter for the resources resource. + - name: username + value: "{{ username }}" + description: Required parameter for the resources resource. + - name: resource_type + value: "{{ resource_type }}" + description: | + The type of resource to create. + valid_values: ['repository', 'github_file', 'free_text', 'github_issue', 'github_pull_request'] + - name: metadata + value: "{{ metadata }}" + description: | + Resource-specific metadata. +`} + + +
+ + +## `REPLACE` examples + + + + +Updates the metadata of a resource in a specific Copilot Space owned by an organization.
The authenticated user must have write permissions on the space.

OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space, including the resource being updated. + +```sql +REPLACE github.copilot_spaces.resources +SET +metadata = '{{ metadata }}' +WHERE +org = '{{ org }}' --required +AND space_number = '{{ space_number }}' --required +AND space_resource_id = '{{ space_resource_id }}' --required +RETURNING +id, +copilot_chat_attachment_id, +created_at, +metadata, +resource_type, +updated_at; +``` +
+ + +Updates the metadata of a resource in a specific Copilot Space owned by a user.
The authenticated user must have write permissions on the space.

OAuth app tokens and personal access tokens (classic) need the `write:user` scope to use this endpoint. + +```sql +REPLACE github.copilot_spaces.resources +SET +metadata = '{{ metadata }}' +WHERE +username = '{{ username }}' --required +AND space_number = '{{ space_number }}' --required +AND space_resource_id = '{{ space_resource_id }}' --required +RETURNING +id, +copilot_chat_attachment_id, +created_at, +metadata, +resource_type, +updated_at; +``` +
+
+ + +## `DELETE` examples + + + + +Deletes a resource from a specific Copilot Space owned by an organization.
The authenticated user must have write permissions on the space.

OAuth app tokens and personal access tokens (classic) need the `write:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space. + +```sql +DELETE FROM github.copilot_spaces.resources +WHERE org = '{{ org }}' --required +AND space_number = '{{ space_number }}' --required +AND space_resource_id = '{{ space_resource_id }}' --required +; +``` +
+ + +Deletes a resource from a specific Copilot Space owned by a user.
The authenticated user must have write permissions on the space.

OAuth app tokens and personal access tokens (classic) need the `write:user` scope to use this endpoint. + +```sql +DELETE FROM github.copilot_spaces.resources +WHERE username = '{{ username }}' --required +AND space_number = '{{ space_number }}' --required +AND space_resource_id = '{{ space_resource_id }}' --required +; +``` +
+
diff --git a/website/docs/services/copilot_spaces/spaces/index.md b/website/docs/services/copilot_spaces/spaces/index.md new file mode 100644 index 0000000..845a178 --- /dev/null +++ b/website/docs/services/copilot_spaces/spaces/index.md @@ -0,0 +1,860 @@ +--- +title: spaces +hide_title: false +hide_table_of_contents: false +keywords: + - spaces + - copilot_spaces + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a spaces resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer (int64)The unique identifier of the space.
stringThe display name of the space. (example: My Development Space)
string (uri)The API URL of the space. (example: https://api.github.com/organizations/1/copilot-spaces/5)
stringThe base role that determines default permissions. - `no_access`: No default access - `reader`: Default read permissions - `writer`: Default write permissions (organization spaces only) - `admin`: Default admin permissions (organization spaces only) (reader, writer, admin, no_access) (example: no_access)
string (date-time)The date and time the space was created. (example: 2023-01-01T00:00:00Z)
objectA GitHub user. (title: Simple User)
stringA description of the space. (example: A space for discussing React development patterns)
stringGeneral instructions for the Copilot Space. (example: Help with React development patterns and best practices)
string (uri)The HTML URL of the space. (example: https://github.com/copilot/spaces/octo-org/5)
integerThe number that identifies the space within its owner.
objectThe user or organization that owns this space. (title: Simple User)
arrayResources attached to the space.
string (date-time)The date and time the space was last updated. (example: 2023-01-01T12:00:00Z)
+
+ + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer (int64)The unique identifier of the space.
stringThe display name of the space. (example: My Development Space)
string (uri)The API URL of the space. (example: https://api.github.com/organizations/1/copilot-spaces/5)
stringThe base role that determines default permissions. - `no_access`: No default access - `reader`: Default read permissions - `writer`: Default write permissions (organization spaces only) - `admin`: Default admin permissions (organization spaces only) (reader, writer, admin, no_access) (example: no_access)
string (date-time)The date and time the space was created. (example: 2023-01-01T00:00:00Z)
objectA GitHub user. (title: Simple User)
stringA description of the space. (example: A space for discussing React development patterns)
stringGeneral instructions for the Copilot Space. (example: Help with React development patterns and best practices)
string (uri)The HTML URL of the space. (example: https://github.com/copilot/spaces/octo-org/5)
integerThe number that identifies the space within its owner.
objectThe user or organization that owns this space. (title: Simple User)
arrayResources attached to the space.
string (date-time)The date and time the space was last updated. (example: 2023-01-01T12:00:00Z)
+
+ + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer (int64)The unique identifier of the space.
stringThe display name of the space. (example: My Development Space)
string (uri)The API URL of the space. (example: https://api.github.com/organizations/1/copilot-spaces/5)
stringThe base role that determines default permissions. - `no_access`: No default access - `reader`: Default read permissions - `writer`: Default write permissions (organization spaces only) - `admin`: Default admin permissions (organization spaces only) (reader, writer, admin, no_access) (example: no_access)
string (date-time)The date and time the space was created. (example: 2023-01-01T00:00:00Z)
objectA GitHub user. (title: Simple User)
stringA description of the space. (example: A space for discussing React development patterns)
stringGeneral instructions for the Copilot Space. (example: Help with React development patterns and best practices)
string (uri)The HTML URL of the space. (example: https://github.com/copilot/spaces/octo-org/5)
integerThe number that identifies the space within its owner.
objectThe user or organization that owns this space. (title: Simple User)
arrayResources attached to the space.
string (date-time)The date and time the space was last updated. (example: 2023-01-01T12:00:00Z)
+
+ + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer (int64)The unique identifier of the space.
stringThe display name of the space. (example: My Development Space)
string (uri)The API URL of the space. (example: https://api.github.com/organizations/1/copilot-spaces/5)
stringThe base role that determines default permissions. - `no_access`: No default access - `reader`: Default read permissions - `writer`: Default write permissions (organization spaces only) - `admin`: Default admin permissions (organization spaces only) (reader, writer, admin, no_access) (example: no_access)
string (date-time)The date and time the space was created. (example: 2023-01-01T00:00:00Z)
objectA GitHub user. (title: Simple User)
stringA description of the space. (example: A space for discussing React development patterns)
stringGeneral instructions for the Copilot Space. (example: Help with React development patterns and best practices)
string (uri)The HTML URL of the space. (example: https://github.com/copilot/spaces/octo-org/5)
integerThe number that identifies the space within its owner.
objectThe user or organization that owns this space. (title: Simple User)
arrayResources attached to the space.
string (date-time)The date and time the space was last updated. (example: 2023-01-01T12:00:00Z)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
org, space_numberGets details about a specific Copilot Space owned by an organization. The authenticated user must have read access to the Space.

Internal Spaces require the authenticated user to be a member of the organization or have been granted read permissions.

OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.
username, space_numberGets details about a specific Copilot Space owned by a user. The authenticated user must have read access to the Space.

Private user spaces require the authenticated user to be the owner of the space.
Public user spaces are accessible to any authenticated user.

OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.
orgper_page, before, afterLists Copilot Spaces owned by an organization. The authenticated user must have read access to the organization's Copilot Spaces.

Only Spaces that are readable by the authenticated user are returned. This includes public Spaces and internal Spaces if the user is a member of the organization.

OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in a space; spaces with inaccessible resources are omitted from the response.
usernameper_page, before, afterLists Copilot Spaces owned by a user. The authenticated user must have read access to the user's Copilot Spaces.

Only Spaces that are readable by the authenticated user are returned. This includes the user's own spaces, and public user spaces when accessing another user's spaces.

OAuth app tokens and personal access tokens (classic) need the `read:user` scope to use this endpoint.
org, nameCreates a new Copilot Space owned by an organization. The authenticated user must have permissions to create spaces in the organization.

Organization members with appropriate permissions can create Copilot Spaces to be shared within their organization.

OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by the submitted resources.
username, nameCreates a new Copilot Space owned by a user. Only the authenticated user can create spaces for their own account.

Users can create personal Copilot Spaces for their individual use.

OAuth app tokens and personal access tokens (classic) need the `read:user` scope to use this endpoint.
org, space_numberUpdates a Copilot Space owned by an organization. The authenticated user must have permissions to update spaces in the organization.

Organization members with appropriate permissions can update Copilot Spaces owned by their organization.

OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space, including any being added or updated.
username, space_numberUpdates a Copilot Space owned by a user. Only the authenticated user can update spaces for their own account.

Users can update their personal Copilot Spaces.

OAuth app tokens and personal access tokens (classic) need the `read:user` scope to use this endpoint.
org, space_numberDeletes a Copilot Space owned by an organization. The authenticated user must have permissions to delete spaces in the organization.

**Warning:** This action is permanent and cannot be undone. Deleting a Copilot Space will remove all associated resources and configurations.

Organization members with appropriate permissions can delete Copilot Spaces owned by their organization.

OAuth app tokens and personal access tokens (classic) need both the `read:org` and `repo` scopes to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space.
username, space_numberDeletes a Copilot Space owned by a user. The authenticated user must be the owner of the space.

**Warning:** This action is permanent and cannot be undone. Deleting a space will remove all associated resources and configurations.

OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe organization name. The name is not case sensitive.
integerThe unique identifier of the Copilot Space.
stringThe handle for the GitHub user account.
stringA 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.
stringA 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.
integerThe number of results per page (max 100).
+ +## `SELECT` examples + + + + +Gets details about a specific Copilot Space owned by an organization. The authenticated user must have read access to the Space.

Internal Spaces require the authenticated user to be a member of the organization or have been granted read permissions.

OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space. + +```sql +SELECT +id, +name, +api_url, +base_role, +created_at, +creator, +description, +general_instructions, +html_url, +number, +owner, +resources_attributes, +updated_at +FROM github.copilot_spaces.spaces +WHERE org = '{{ org }}' -- required +AND space_number = '{{ space_number }}' -- required +; +``` +
+ + +Gets details about a specific Copilot Space owned by a user. The authenticated user must have read access to the Space.

Private user spaces require the authenticated user to be the owner of the space.
Public user spaces are accessible to any authenticated user.

OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint. + +```sql +SELECT +id, +name, +api_url, +base_role, +created_at, +creator, +description, +general_instructions, +html_url, +number, +owner, +resources_attributes, +updated_at +FROM github.copilot_spaces.spaces +WHERE username = '{{ username }}' -- required +AND space_number = '{{ space_number }}' -- required +; +``` +
+ + +Lists Copilot Spaces owned by an organization. The authenticated user must have read access to the organization's Copilot Spaces.

Only Spaces that are readable by the authenticated user are returned. This includes public Spaces and internal Spaces if the user is a member of the organization.

OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in a space; spaces with inaccessible resources are omitted from the response. + +```sql +SELECT +id, +name, +api_url, +base_role, +created_at, +creator, +description, +general_instructions, +html_url, +number, +owner, +resources_attributes, +updated_at +FROM github.copilot_spaces.spaces +WHERE org = '{{ org }}' -- required +AND per_page = '{{ per_page }}' +AND before = '{{ before }}' +AND after = '{{ after }}' +; +``` +
+ + +Lists Copilot Spaces owned by a user. The authenticated user must have read access to the user's Copilot Spaces.

Only Spaces that are readable by the authenticated user are returned. This includes the user's own spaces, and public user spaces when accessing another user's spaces.

OAuth app tokens and personal access tokens (classic) need the `read:user` scope to use this endpoint. + +```sql +SELECT +id, +name, +api_url, +base_role, +created_at, +creator, +description, +general_instructions, +html_url, +number, +owner, +resources_attributes, +updated_at +FROM github.copilot_spaces.spaces +WHERE username = '{{ username }}' -- required +AND per_page = '{{ per_page }}' +AND before = '{{ before }}' +AND after = '{{ after }}' +; +``` +
+
+ + +## `INSERT` examples + + + + +Creates a new Copilot Space owned by an organization. The authenticated user must have permissions to create spaces in the organization.

Organization members with appropriate permissions can create Copilot Spaces to be shared within their organization.

OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by the submitted resources. + +```sql +INSERT INTO github.copilot_spaces.spaces ( +name, +description, +general_instructions, +base_role, +resources_attributes, +org +) +SELECT +'{{ name }}' /* required */, +'{{ description }}', +'{{ general_instructions }}', +'{{ base_role }}', +'{{ resources_attributes }}', +'{{ org }}' +RETURNING +id, +name, +api_url, +base_role, +created_at, +creator, +description, +general_instructions, +html_url, +number, +owner, +resources_attributes, +updated_at +; +``` +
+ + +Creates a new Copilot Space owned by a user. Only the authenticated user can create spaces for their own account.

Users can create personal Copilot Spaces for their individual use.

OAuth app tokens and personal access tokens (classic) need the `read:user` scope to use this endpoint. + +```sql +INSERT INTO github.copilot_spaces.spaces ( +name, +description, +general_instructions, +base_role, +resources_attributes, +username +) +SELECT +'{{ name }}' /* required */, +'{{ description }}', +'{{ general_instructions }}', +'{{ base_role }}', +'{{ resources_attributes }}', +'{{ username }}' +RETURNING +id, +name, +api_url, +base_role, +created_at, +creator, +description, +general_instructions, +html_url, +number, +owner, +resources_attributes, +updated_at +; +``` +
+ + +{`# Description fields are for documentation purposes +- name: spaces + props: + - name: org + value: "{{ org }}" + description: Required parameter for the spaces resource. + - name: username + value: "{{ username }}" + description: Required parameter for the spaces resource. + - name: name + value: "{{ name }}" + description: | + The name of the Copilot Space. + - name: description + value: "{{ description }}" + description: | + A description of the Copilot Space. + - name: general_instructions + value: "{{ general_instructions }}" + description: | + General instructions for the Copilot Space. + - name: base_role + value: "{{ base_role }}" + description: | + The base role that determines default permissions for the space. + - \`no_access\`: No default access (default) + - \`reader\`: Makes the space publicly readable + Note: User spaces do not support writer or admin base roles. + valid_values: ['reader', 'no_access'] + default: no_access + - name: resources_attributes + description: | + Resources to attach to the space. + value: + - resource_type: "{{ resource_type }}" + metadata: + repository_id: {{ repository_id }} + file_path: "{{ file_path }}" + text: "{{ text }}" + name: "{{ name }}" + number: {{ number }} +`} + + +
+ + +## `REPLACE` examples + + + + +Updates a Copilot Space owned by an organization. The authenticated user must have permissions to update spaces in the organization.

Organization members with appropriate permissions can update Copilot Spaces owned by their organization.

OAuth app tokens and personal access tokens (classic) need the `read:org` scope to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space, including any being added or updated. + +```sql +REPLACE github.copilot_spaces.spaces +SET +name = '{{ name }}', +description = '{{ description }}', +general_instructions = '{{ general_instructions }}', +base_role = '{{ base_role }}', +resources_attributes = '{{ resources_attributes }}' +WHERE +org = '{{ org }}' --required +AND space_number = '{{ space_number }}' --required +RETURNING +id, +name, +api_url, +base_role, +created_at, +creator, +description, +general_instructions, +html_url, +number, +owner, +resources_attributes, +updated_at; +``` +
+ + +Updates a Copilot Space owned by a user. Only the authenticated user can update spaces for their own account.

Users can update their personal Copilot Spaces.

OAuth app tokens and personal access tokens (classic) need the `read:user` scope to use this endpoint. + +```sql +REPLACE github.copilot_spaces.spaces +SET +name = '{{ name }}', +description = '{{ description }}', +general_instructions = '{{ general_instructions }}', +base_role = '{{ base_role }}', +resources_attributes = '{{ resources_attributes }}' +WHERE +username = '{{ username }}' --required +AND space_number = '{{ space_number }}' --required +RETURNING +id, +name, +api_url, +base_role, +created_at, +creator, +description, +general_instructions, +html_url, +number, +owner, +resources_attributes, +updated_at; +``` +
+
+ + +## `DELETE` examples + + + + +Deletes a Copilot Space owned by an organization. The authenticated user must have permissions to delete spaces in the organization.

**Warning:** This action is permanent and cannot be undone. Deleting a Copilot Space will remove all associated resources and configurations.

Organization members with appropriate permissions can delete Copilot Spaces owned by their organization.

OAuth app tokens and personal access tokens (classic) need both the `read:org` and `repo` scopes to use this endpoint.

Fine-grained tokens and GitHub App user access tokens must have been granted access to the organization that owns the space. They must also have been granted access to every repository referenced by resources in the space. + +```sql +DELETE FROM github.copilot_spaces.spaces +WHERE org = '{{ org }}' --required +AND space_number = '{{ space_number }}' --required +; +``` +
+ + +Deletes a Copilot Space owned by a user. The authenticated user must be the owner of the space.

**Warning:** This action is permanent and cannot be undone. Deleting a space will remove all associated resources and configurations.

OAuth app tokens and personal access tokens (classic) need the `user` scope to use this endpoint. + +```sql +DELETE FROM github.copilot_spaces.spaces +WHERE username = '{{ username }}' --required +AND space_number = '{{ space_number }}' --required +; +``` +
+
diff --git a/website/docs/services/dependabot/alerts/index.md b/website/docs/services/dependabot/alerts/index.md index 73407e9..e276ae4 100644 --- a/website/docs/services/dependabot/alerts/index.md +++ b/website/docs/services/dependabot/alerts/index.md @@ -483,21 +483,21 @@ The following methods are available for this resource: owner, repo - classification, state, severity, ecosystem, package, manifest, epss_percentage, has, assignee, scope, sort, direction, before, after, per_page + classification, state, severity, ecosystem, package, manifest, epss_percentage, has, assignee, scope, relationship, sort, direction, before, after, per_page 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. enterprise - classification, state, severity, ecosystem, package, epss_percentage, has, assignee, scope, sort, direction, before, after, per_page + classification, state, severity, ecosystem, package, epss_percentage, has, assignee, scope, relationship, sort, direction, before, after, per_page 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. org - classification, state, severity, ecosystem, package, epss_percentage, artifact_registry_url, artifact_registry, has, assignee, runtime_risk, scope, sort, direction, before, after, per_page + classification, state, severity, ecosystem, package, epss_percentage, artifact_registry_url, artifact_registry, has, assignee, runtime_risk, scope, relationship, sort, direction, before, after, per_page 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. @@ -613,6 +613,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# integer 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)." + + + string + A comma-separated list of relationships of the vulnerable dependency to your project. If specified, only alerts with these relationships will be returned. > [!NOTE] > We are rolling out support for dependency relationship across ecosystems. This value will be "unknown" for all dependencies in unsupported ecosystems. + string @@ -718,6 +723,7 @@ AND epss_percentage = '{{ epss_percentage }}' AND has = '{{ has }}' AND assignee = '{{ assignee }}' AND scope = '{{ scope }}' +AND relationship = '{{ relationship }}' AND sort = '{{ sort }}' AND direction = '{{ direction }}' AND before = '{{ before }}' @@ -761,6 +767,7 @@ AND epss_percentage = '{{ epss_percentage }}' AND has = '{{ has }}' AND assignee = '{{ assignee }}' AND scope = '{{ scope }}' +AND relationship = '{{ relationship }}' AND sort = '{{ sort }}' AND direction = '{{ direction }}' AND before = '{{ before }}' @@ -807,6 +814,7 @@ AND has = '{{ has }}' AND assignee = '{{ assignee }}' AND runtime_risk = '{{ runtime_risk }}' AND scope = '{{ scope }}' +AND relationship = '{{ relationship }}' AND sort = '{{ sort }}' AND direction = '{{ direction }}' AND before = '{{ before }}' @@ -836,7 +844,8 @@ SET state = '{{ state }}', dismissed_reason = '{{ dismissed_reason }}', dismissed_comment = '{{ dismissed_comment }}', -assignees = '{{ assignees }}' +assignees = '{{ assignees }}', +agent_assignment = '{{ agent_assignment }}' WHERE owner = '{{ owner }}' --required AND repo = '{{ repo }}' --required diff --git a/website/docs/services/dependabot/enterprise_dependabot_repository_access/index.md b/website/docs/services/dependabot/enterprise_dependabot_repository_access/index.md new file mode 100644 index 0000000..603944b --- /dev/null +++ b/website/docs/services/dependabot/enterprise_dependabot_repository_access/index.md @@ -0,0 +1,210 @@ +--- +title: enterprise_dependabot_repository_access +hide_title: false +hide_table_of_contents: false +keywords: + - enterprise_dependabot_repository_access + - dependabot + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an enterprise_dependabot_repository_access resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
array
stringThe default repository access level for Dependabot updates. (public, internal) (example: internal)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
enterprisepage, per_pageLists repositories that enterprise admins have allowed Dependabot to access when updating dependencies across organizations in the enterprise.

The authenticated user must be an enterprise owner to use this endpoint.
enterpriseUpdates repositories according to the list of repositories that enterprise admins have given Dependabot access to when they've updated dependencies across organizations in the enterprise.

The authenticated user must be an enterprise owner to use this endpoint.

**Example request body:**
```json
{
"repository_ids_to_add": [123, 456],
"repository_ids_to_remove": [789]
}
```
enterprise, default_levelSets the default level of repository access Dependabot will have while performing an update across organizations in the enterprise. 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.

The authenticated user must be an enterprise owner to use this endpoint.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe slug version of the enterprise name.
integerThe page number of results to fetch.
integerNumber of results per page.
+ +## `SELECT` examples + + + + +Lists repositories that enterprise admins have allowed Dependabot to access when updating dependencies across organizations in the enterprise.

The authenticated user must be an enterprise owner to use this endpoint. + +```sql +SELECT +accessible_repositories, +default_level +FROM github.dependabot.enterprise_dependabot_repository_access +WHERE enterprise = '{{ enterprise }}' -- required +AND page = '{{ page }}' +AND per_page = '{{ per_page }}' +; +``` +
+
+ + +## `UPDATE` examples + + + + +Updates repositories according to the list of repositories that enterprise admins have given Dependabot access to when they've updated dependencies across organizations in the enterprise.

The authenticated user must be an enterprise owner to use this endpoint.

**Example request body:**
```json
{
"repository_ids_to_add": [123, 456],
"repository_ids_to_remove": [789]
}
``` + +```sql +UPDATE github.dependabot.enterprise_dependabot_repository_access +SET +repository_ids_to_add = '{{ repository_ids_to_add }}', +repository_ids_to_remove = '{{ repository_ids_to_remove }}' +WHERE +enterprise = '{{ enterprise }}' --required; +``` +
+
+ + +## `REPLACE` examples + + + + +Sets the default level of repository access Dependabot will have while performing an update across organizations in the enterprise. 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.

The authenticated user must be an enterprise owner to use this endpoint. + +```sql +REPLACE github.dependabot.enterprise_dependabot_repository_access +SET +default_level = '{{ default_level }}' +WHERE +enterprise = '{{ enterprise }}' --required +AND default_level = '{{ default_level }}' --required; +``` +
+
diff --git a/website/docs/services/dependabot/index.md b/website/docs/services/dependabot/index.md index 541b26e..1dd581b 100644 --- a/website/docs/services/dependabot/index.md +++ b/website/docs/services/dependabot/index.md @@ -18,7 +18,7 @@ dependabot service documentation. :::info[Service Summary] -total resources: __5__ +total resources: __6__ ::: @@ -26,10 +26,11 @@ total resources: __5__
diff --git a/website/docs/services/dependency_graph/index.md b/website/docs/services/dependency_graph/index.md index f2bd420..143f525 100644 --- a/website/docs/services/dependency_graph/index.md +++ b/website/docs/services/dependency_graph/index.md @@ -18,7 +18,7 @@ dependency_graph service documentation. :::info[Service Summary] -total resources: __3__ +total resources: __4__ ::: @@ -29,6 +29,7 @@ total resources: __3__ dependency_submission
\ No newline at end of file diff --git a/website/docs/services/dependency_graph/sbom_reports/index.md b/website/docs/services/dependency_graph/sbom_reports/index.md new file mode 100644 index 0000000..ad2c39b --- /dev/null +++ b/website/docs/services/dependency_graph/sbom_reports/index.md @@ -0,0 +1,133 @@ +--- +title: sbom_reports +hide_title: false +hide_table_of_contents: false +keywords: + - sbom_reports + - dependency_graph + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a sbom_reports resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + +`SELECT` not supported for this resource, use `SHOW METHODS` to view available operations for the resource. + + +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repo, sbom_uuidFetches a previously generated software bill of materials (SBOM) for a repository.
When the SBOM is ready, the response is a 302 redirect to a temporary download URL for the SBOM in SPDX JSON format.
The generated SBOM report may be retained for up to one week from the original request.
The temporary download URL returned by this endpoint expires separately, and its expiry is set when the fetch request is made.
owner, repoTriggers a job to generate a software bill of materials (SBOM) for a repository in SPDX JSON format.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe account owner of the repository. The name is not case sensitive.
stringThe name of the repository without the `.git` extension. The name is not case sensitive.
stringThe unique identifier of the SBOM export.
+ +## Lifecycle Methods + + + + +Fetches a previously generated software bill of materials (SBOM) for a repository.
When the SBOM is ready, the response is a 302 redirect to a temporary download URL for the SBOM in SPDX JSON format.
The generated SBOM report may be retained for up to one week from the original request.
The temporary download URL returned by this endpoint expires separately, and its expiry is set when the fetch request is made. + +```sql +EXEC github.dependency_graph.sbom_reports.fetch_sbom_report +@owner='{{ owner }}' --required, +@repo='{{ repo }}' --required, +@sbom_uuid='{{ sbom_uuid }}' --required +; +``` +
+ + +Triggers a job to generate a software bill of materials (SBOM) for a repository in SPDX JSON format. + +```sql +EXEC github.dependency_graph.sbom_reports.generate_sbom_report +@owner='{{ owner }}' --required, +@repo='{{ repo }}' --required +; +``` + +
diff --git a/website/docs/services/discussions/discussion_categories/index.md b/website/docs/services/discussions/discussion_categories/index.md new file mode 100644 index 0000000..ec325c4 --- /dev/null +++ b/website/docs/services/discussions/discussion_categories/index.md @@ -0,0 +1,178 @@ +--- +title: discussion_categories +hide_title: false +hide_table_of_contents: false +keywords: + - discussion_categories + - discussions + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a discussion_categories resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe GraphQL node ID of the category.
string
string (date-time)
string
stringThe emoji shortcode for the category.
booleanWhether discussions in this category can be marked as answered.
string
string (date-time)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repoDiscussion categories configured for a repository (for example Announcements, Q&A, Ideas). Backed by the GitHub GraphQL API (`repository.discussionCategories`).
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe account owner of the repository.
stringThe name of the repository.
+ +## `SELECT` examples + + + + +Discussion categories configured for a repository (for example Announcements, Q&A, Ideas). Backed by the GitHub GraphQL API (`repository.discussionCategories`). + +```sql +SELECT +id, +name, +created_at, +description, +emoji, +is_answerable, +slug, +updated_at +FROM github.discussions.discussion_categories +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +; +``` + + diff --git a/website/docs/services/discussions/discussion_comments/index.md b/website/docs/services/discussions/discussion_comments/index.md new file mode 100644 index 0000000..49454ed --- /dev/null +++ b/website/docs/services/discussions/discussion_comments/index.md @@ -0,0 +1,214 @@ +--- +title: discussion_comments +hide_title: false +hide_table_of_contents: false +keywords: + - discussion_comments + - discussions + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a discussion_comments resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe GraphQL node ID of the comment.
objectThe comment author (`login`).
stringThe comment body as Markdown.
string (date-time)
booleanWhether this comment is the chosen answer.
boolean
string
string (date-time)
objectReaction counts (`total_count`).
objectReply counts (`total_count`).
string (date-time)
integer
stringThe HTML URL of the comment.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repo, discussion_numberTop-level comments on a discussion, with reply counts. Backed by the GitHub GraphQL API (`repository.discussion.comments`).
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integerThe number that identifies the discussion.
stringThe account owner of the repository.
stringThe name of the repository.
+ +## `SELECT` examples + + + + +Top-level comments on a discussion, with reply counts. Backed by the GitHub GraphQL API (`repository.discussion.comments`). + +```sql +SELECT +id, +author, +body, +created_at, +is_answer, +is_minimized, +minimized_reason, +published_at, +reactions, +replies, +updated_at, +upvote_count, +url +FROM github.discussions.discussion_comments +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +AND discussion_number = '{{ discussion_number }}' -- required +; +``` + + diff --git a/website/docs/services/discussions/discussions/index.md b/website/docs/services/discussions/discussions/index.md new file mode 100644 index 0000000..9c97414 --- /dev/null +++ b/website/docs/services/discussions/discussions/index.md @@ -0,0 +1,256 @@ +--- +title: discussions +hide_title: false +hide_table_of_contents: false +keywords: + - discussions + - discussions + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a discussions resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe GraphQL node ID of the discussion.
objectThe chosen answer comment, if any (`id`, `url`, `author.login`).
string (date-time)
objectThe author of the discussion (`login`).
stringThe discussion body as Markdown.
objectThe discussion category (`id`, `name`, `slug`).
boolean
string (date-time)
objectComment counts (`total_count`).
string (date-time)
booleanWhether an answer has been chosen (answerable categories only).
objectUp to 20 labels applied to the discussion (`nodes[].name`).
string (date-time)
boolean
integerThe discussion number, unique within the repository.
string (date-time)
objectReaction counts (`total_count`).
string
string (date-time)
integer
stringThe HTML URL of the discussion.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repoDiscussions in a repository, newest first. Backed by the GitHub GraphQL API (`repository.discussions`); GitHub Discussions are not available through the REST API. Use `discussion_comments` for the comment thread of a single discussion.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe account owner of the repository.
stringThe name of the repository.
+ +## `SELECT` examples + + + + +Discussions in a repository, newest first. Backed by the GitHub GraphQL API (`repository.discussions`); GitHub Discussions are not available through the REST API. Use `discussion_comments` for the comment thread of a single discussion. + +```sql +SELECT +id, +answer, +answer_chosen_at, +author, +body, +category, +closed, +closed_at, +comments, +created_at, +is_answered, +labels, +last_edited_at, +locked, +number, +published_at, +reactions, +title, +updated_at, +upvote_count, +url +FROM github.discussions.discussions +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +; +``` + + diff --git a/website/docs/services/discussions/index.md b/website/docs/services/discussions/index.md new file mode 100644 index 0000000..559c456 --- /dev/null +++ b/website/docs/services/discussions/index.md @@ -0,0 +1,34 @@ +--- +title: discussions +hide_title: false +hide_table_of_contents: false +keywords: + - discussions + - github + - stackql + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +discussions service documentation. + +:::info[Service Summary] + +total resources: __3__ + +::: + +## Resources + \ No newline at end of file diff --git a/website/docs/services/enterprise_teams/enterprise_teams/index.md b/website/docs/services/enterprise_teams/enterprise_teams/index.md index 1aaf35c..968028d 100644 --- a/website/docs/services/enterprise_teams/enterprise_teams/index.md +++ b/website/docs/services/enterprise_teams/enterprise_teams/index.md @@ -92,6 +92,11 @@ Response string + + + string + Whether team members will receive notifications when the team is mentioned. (notifications_enabled, notifications_disabled) (example: notifications_enabled) + string @@ -173,6 +178,11 @@ Response string + + + string + Whether team members will receive notifications when the team is mentioned. (notifications_enabled, notifications_disabled) (example: notifications_enabled) + string @@ -315,6 +325,7 @@ created_at, description, html_url, members_url, +notification_setting, organization_selection_type, slug, sync_to_organizations, @@ -340,6 +351,7 @@ created_at, description, html_url, members_url, +notification_setting, organization_selection_type, slug, sync_to_organizations, @@ -375,6 +387,7 @@ description, sync_to_organizations, organization_selection_type, group_id, +notification_setting, enterprise ) SELECT @@ -383,6 +396,7 @@ SELECT '{{ sync_to_organizations }}', '{{ organization_selection_type }}', '{{ group_id }}', +'{{ notification_setting }}', '{{ enterprise }}' RETURNING id, @@ -393,6 +407,7 @@ created_at, description, html_url, members_url, +notification_setting, organization_selection_type, slug, sync_to_organizations, @@ -438,6 +453,14 @@ url value: "{{ group_id }}" 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). + - name: notification_setting + value: "{{ notification_setting }}" + description: | + The notification setting the team is set to. The options are: + * \`notifications_enabled\` - team members receive notifications when the team is @mentioned. + * \`notifications_disabled\` - no one receives notifications. + Default: \`notifications_enabled\` + valid_values: ['notifications_enabled', 'notifications_disabled'] `} @@ -463,7 +486,8 @@ name = '{{ name }}', description = '{{ description }}', sync_to_organizations = '{{ sync_to_organizations }}', organization_selection_type = '{{ organization_selection_type }}', -group_id = '{{ group_id }}' +group_id = '{{ group_id }}', +notification_setting = '{{ notification_setting }}' WHERE enterprise = '{{ enterprise }}' --required AND team_slug = '{{ team_slug }}' --required @@ -476,6 +500,7 @@ created_at, description, html_url, members_url, +notification_setting, organization_selection_type, slug, sync_to_organizations, diff --git a/website/docs/services/gitignore/gitignore/index.md b/website/docs/services/gitignore/gitignore/index.md index 980838e..59777b2 100644 --- a/website/docs/services/gitignore/gitignore/index.md +++ b/website/docs/services/gitignore/gitignore/index.md @@ -78,6 +78,11 @@ Response + + + string + + @@ -164,7 +169,7 @@ List all templates available to pass as an option when [creating a repository](h ```sql SELECT -* +gitignore/get_all_template FROM github.gitignore.gitignore ; ``` diff --git a/website/docs/services/interactions/index.md b/website/docs/services/interactions/index.md index 6e40002..be2fbde 100644 --- a/website/docs/services/interactions/index.md +++ b/website/docs/services/interactions/index.md @@ -18,17 +18,20 @@ interactions service documentation. :::info[Service Summary] -total resources: __3__ +total resources: __6__ ::: ## Resources \ No newline at end of file diff --git a/website/docs/services/interactions/org_pull_request_creation_caps/index.md b/website/docs/services/interactions/org_pull_request_creation_caps/index.md new file mode 100644 index 0000000..8280941 --- /dev/null +++ b/website/docs/services/interactions/org_pull_request_creation_caps/index.md @@ -0,0 +1,171 @@ +--- +title: org_pull_request_creation_caps +hide_title: false +hide_table_of_contents: false +keywords: + - org_pull_request_creation_caps + - interactions + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an org_pull_request_creation_caps resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
booleanWhether the pull request creation cap is enabled
integerThe maximum number of open pull requests a user can have at one time
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
orgGets the pull request creation cap configuration for an organization.
The cap limits the total number of open pull requests a user can have across all public
repositories in the organization at one time.

Only users with admin access to the organization can view the cap configuration.
org, enabledUpdates the pull request creation cap for an organization. The cap limits the total number
of open pull requests a user can have across all public repositories in the organization
at one time.

Only users with admin access to the organization can configure the cap.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe organization name. The name is not case sensitive.
+ +## `SELECT` examples + + + + +Gets the pull request creation cap configuration for an organization.
The cap limits the total number of open pull requests a user can have across all public
repositories in the organization at one time.

Only users with admin access to the organization can view the cap configuration. + +```sql +SELECT +enabled, +max_open_pull_requests +FROM github.interactions.org_pull_request_creation_caps +WHERE org = '{{ org }}' -- required +; +``` +
+
+ + +## `UPDATE` examples + + + + +Updates the pull request creation cap for an organization. The cap limits the total number
of open pull requests a user can have across all public repositories in the organization
at one time.

Only users with admin access to the organization can configure the cap. + +```sql +UPDATE github.interactions.org_pull_request_creation_caps +SET +enabled = {{ enabled }}, +max_open_pull_requests = {{ max_open_pull_requests }} +WHERE +org = '{{ org }}' --required +AND enabled = {{ enabled }} --required +RETURNING +enabled, +max_open_pull_requests; +``` +
+
diff --git a/website/docs/services/interactions/repo_pull_request_bypass_lists/index.md b/website/docs/services/interactions/repo_pull_request_bypass_lists/index.md new file mode 100644 index 0000000..42b292a --- /dev/null +++ b/website/docs/services/interactions/repo_pull_request_bypass_lists/index.md @@ -0,0 +1,323 @@ +--- +title: repo_pull_request_bypass_lists +hide_title: false +hide_table_of_contents: false +keywords: + - repo_pull_request_bypass_lists + - interactions + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a repo_pull_request_bypass_lists resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer (int64)
string
string (example: 41d064eb2195891e12d0413f63227ea7)
string (example: MDQ6VXNlcjE=)
string (uri) (example: https://github.com/images/error/octocat_happy.gif)
string
string (example: https://api.github.com/users/octocat/events{/privacy})
string (uri) (example: https://api.github.com/users/octocat/followers)
string (example: https://api.github.com/users/octocat/following{/other_user})
string (example: https://api.github.com/users/octocat/gists{/gist_id})
string (uri) (example: https://github.com/octocat)
string (example: octocat)
string (uri) (example: https://api.github.com/users/octocat/orgs)
string (uri) (example: https://api.github.com/users/octocat/received_events)
string (uri) (example: https://api.github.com/users/octocat/repos)
boolean
string (example: "2020-07-09T00:17:55Z")
string (example: https://api.github.com/users/octocat/starred{/owner}{/repo})
string (uri) (example: https://api.github.com/users/octocat/subscriptions)
string (example: User)
string (uri) (example: https://api.github.com/users/octocat)
string (example: public)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repoLists the users that are on the pull request creation cap bypass list for a
repository. Users on this list can create pull requests regardless of any
configured pull request creation cap.

Only users with maintainer permissions can view the bypass list.
owner, repo, usersAdds users to the pull request creation cap bypass list for a repository.
Users on this list can create pull requests regardless of any configured
pull request creation cap.

Only users with maintainer permissions can modify the bypass list.
You can add a maximum of 100 users per request.
The bypass list can only hold a maximum of 100 users.
owner, repoRemoves users from the pull request creation cap bypass list for a repository.
Removed users will be subject to any configured pull request creation cap.

Only users with maintainer permissions can modify the bypass list.
You can remove a maximum of 100 users per request.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe account owner of the repository. The name is not case sensitive.
stringThe name of the repository without the `.git` extension. The name is not case sensitive.
+ +## `SELECT` examples + + + + +Lists the users that are on the pull request creation cap bypass list for a
repository. Users on this list can create pull requests regardless of any
configured pull request creation cap.

Only users with maintainer permissions can view the bypass list. + +```sql +SELECT +id, +name, +gravatar_id, +node_id, +avatar_url, +email, +events_url, +followers_url, +following_url, +gists_url, +html_url, +login, +organizations_url, +received_events_url, +repos_url, +site_admin, +starred_at, +starred_url, +subscriptions_url, +type, +url, +user_view_type +FROM github.interactions.repo_pull_request_bypass_lists +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +; +``` +
+
+ + +## `REPLACE` examples + + + + +Adds users to the pull request creation cap bypass list for a repository.
Users on this list can create pull requests regardless of any configured
pull request creation cap.

Only users with maintainer permissions can modify the bypass list.
You can add a maximum of 100 users per request.
The bypass list can only hold a maximum of 100 users. + +```sql +REPLACE github.interactions.repo_pull_request_bypass_lists +SET +users = '{{ users }}' +WHERE +owner = '{{ owner }}' --required +AND repo = '{{ repo }}' --required +AND users = '{{ users }}' --required; +``` +
+
+ + +## `DELETE` examples + + + + +Removes users from the pull request creation cap bypass list for a repository.
Removed users will be subject to any configured pull request creation cap.

Only users with maintainer permissions can modify the bypass list.
You can remove a maximum of 100 users per request. + +```sql +DELETE FROM github.interactions.repo_pull_request_bypass_lists +WHERE owner = '{{ owner }}' --required +AND repo = '{{ repo }}' --required +; +``` +
+
diff --git a/website/docs/services/interactions/repo_pull_request_creation_caps/index.md b/website/docs/services/interactions/repo_pull_request_creation_caps/index.md new file mode 100644 index 0000000..294b9b6 --- /dev/null +++ b/website/docs/services/interactions/repo_pull_request_creation_caps/index.md @@ -0,0 +1,178 @@ +--- +title: repo_pull_request_creation_caps +hide_title: false +hide_table_of_contents: false +keywords: + - repo_pull_request_creation_caps + - interactions + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a repo_pull_request_creation_caps resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
booleanWhether the pull request creation cap is enabled
integerThe maximum number of open pull requests a user can have at one time
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repoGets the pull request creation cap configuration for a repository.
The cap limits the number of open pull requests a user can have at one time.

Only users with admin access to the repository can view the cap configuration.
owner, repo, enabledUpdates the pull request creation cap for a repository. The cap limits the number
of open pull requests a user can have at one time.

Only users with admin access to the repository can configure the cap.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe account owner of the repository. The name is not case sensitive.
stringThe name of the repository without the `.git` extension. The name is not case sensitive.
+ +## `SELECT` examples + + + + +Gets the pull request creation cap configuration for a repository.
The cap limits the number of open pull requests a user can have at one time.

Only users with admin access to the repository can view the cap configuration. + +```sql +SELECT +enabled, +max_open_pull_requests +FROM github.interactions.repo_pull_request_creation_caps +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +; +``` +
+
+ + +## `UPDATE` examples + + + + +Updates the pull request creation cap for a repository. The cap limits the number
of open pull requests a user can have at one time.

Only users with admin access to the repository can configure the cap. + +```sql +UPDATE github.interactions.repo_pull_request_creation_caps +SET +enabled = {{ enabled }}, +max_open_pull_requests = {{ max_open_pull_requests }} +WHERE +owner = '{{ owner }}' --required +AND repo = '{{ repo }}' --required +AND enabled = {{ enabled }} --required +RETURNING +enabled, +max_open_pull_requests; +``` +
+
diff --git a/website/docs/services/issues/assignees/index.md b/website/docs/services/issues/assignees/index.md index 89929b3..8869960 100644 --- a/website/docs/services/issues/assignees/index.md +++ b/website/docs/services/issues/assignees/index.md @@ -396,8 +396,7 @@ user value: {{ issue_number }} description: Required parameter for the assignees resource. - name: assignees - value: - - "{{ assignees }}" + value: "{{ assignees }}" 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._ `} diff --git a/website/docs/services/issues/comments/index.md b/website/docs/services/issues/comments/index.md index 5c56b44..594474d 100644 --- a/website/docs/services/issues/comments/index.md +++ b/website/docs/services/issues/comments/index.md @@ -98,6 +98,11 @@ Response string (uri) + + + object + Details about why an issue comment was minimized. (title: Minimized Issue Comment) + object @@ -189,6 +194,11 @@ Response string (uri) + + + object + Details about why an issue comment was minimized. (title: Minimized Issue Comment) + object @@ -280,6 +290,11 @@ Response string (uri) + + + object + Details about why an issue comment was minimized. (title: Minimized Issue Comment) + object @@ -461,6 +476,7 @@ body_text, created_at, html_url, issue_url, +minimized, performed_via_github_app, pin, reactions, @@ -489,6 +505,7 @@ body_text, created_at, html_url, issue_url, +minimized, performed_via_github_app, pin, reactions, @@ -520,6 +537,7 @@ body_text, created_at, html_url, issue_url, +minimized, performed_via_github_app, pin, reactions, @@ -575,6 +593,7 @@ body_text, created_at, html_url, issue_url, +minimized, performed_via_github_app, pin, reactions, @@ -639,6 +658,7 @@ body_text, created_at, html_url, issue_url, +minimized, performed_via_github_app, pin, reactions, diff --git a/website/docs/services/issues/events/index.md b/website/docs/services/issues/events/index.md index dd5ad8e..f958e51 100644 --- a/website/docs/services/issues/events/index.md +++ b/website/docs/services/issues/events/index.md @@ -88,6 +88,16 @@ Response string How the author is associated with the repository. (COLLABORATOR, CONTRIBUTOR, FIRST_TIMER, FIRST_TIME_CONTRIBUTOR, MANNEQUIN, MEMBER, NONE, OWNER) (title: author_association, example: OWNER) + + + object + A minimal reference to an issue linked from a timeline event (e.g. sub-issue, parent-issue, or dependency events). (title: Issue Reference) + + + + object + A minimal reference to an issue linked from a timeline event (e.g. sub-issue, parent-issue, or dependency events). (title: Issue Reference) + string @@ -108,11 +118,21 @@ Response string (example: closed) + + + object + The intent behind an agent's action on an issue, including the rationale and confidence. Present (and `null` when the event carried no agent intent) on supported event types while the issue suggestions feature is enabled for the repository; the property is omitted entirely when the feature is disabled or the event type does not support intent. (title: Issue Event Intent) + object Issues are a great way to keep track of tasks, enhancements, and bugs for your projects. (title: Issue) + + + object + The type of issue. (title: Issue Type) + object @@ -128,11 +148,21 @@ Response object Issue Event Milestone (title: Issue Event Milestone) + + + object + A minimal reference to an issue linked from a timeline event (e.g. sub-issue, parent-issue, or dependency events). (title: Issue Reference) + object 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. (title: GitHub app) + + + object + The type of issue. (title: Issue Type) + object @@ -158,6 +188,11 @@ Response object A GitHub user. (title: Simple User) + + + object + A minimal reference to an issue linked from a timeline event (e.g. sub-issue, parent-issue, or dependency events). (title: Issue Reference) + string (uri) @@ -209,6 +244,16 @@ Response object A GitHub user. (title: Simple User) + + + object + A minimal reference to an issue linked from a timeline event (e.g. sub-issue, parent-issue, or dependency events). (title: Issue Reference) + + + + object + A minimal reference to an issue linked from a timeline event (e.g. sub-issue, parent-issue, or dependency events). (title: Issue Reference) + string @@ -229,6 +274,16 @@ Response string + + + object + The intent behind an agent's action on an issue, including the rationale and confidence. Present (and `null` when the event carried no agent intent) on supported event types while the issue suggestions feature is enabled for the repository; the property is omitted entirely when the feature is disabled or the event type does not support intent. (title: Issue Event Intent) + + + + object + The type of issue. (title: Issue Type) + object @@ -244,11 +299,21 @@ Response object + + + object + A minimal reference to an issue linked from a timeline event (e.g. sub-issue, parent-issue, or dependency events). (title: Issue Reference) + object 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. (title: GitHub app) + + + object + The type of issue. (title: Issue Type) + object @@ -274,6 +339,11 @@ Response object A GitHub user. (title: Simple User) + + + object + A minimal reference to an issue linked from a timeline event (e.g. sub-issue, parent-issue, or dependency events). (title: Issue Reference) + string @@ -330,6 +400,16 @@ Response string How the author is associated with the repository. (COLLABORATOR, CONTRIBUTOR, FIRST_TIMER, FIRST_TIME_CONTRIBUTOR, MANNEQUIN, MEMBER, NONE, OWNER) (title: author_association, example: OWNER) + + + object + A minimal reference to an issue linked from a timeline event (e.g. sub-issue, parent-issue, or dependency events). (title: Issue Reference) + + + + object + A minimal reference to an issue linked from a timeline event (e.g. sub-issue, parent-issue, or dependency events). (title: Issue Reference) + string @@ -350,11 +430,21 @@ Response string (example: closed) + + + object + The intent behind an agent's action on an issue, including the rationale and confidence. Present (and `null` when the event carried no agent intent) on supported event types while the issue suggestions feature is enabled for the repository; the property is omitted entirely when the feature is disabled or the event type does not support intent. (title: Issue Event Intent) + object Issues are a great way to keep track of tasks, enhancements, and bugs for your projects. (title: Issue) + + + object + The type of issue. (title: Issue Type) + object @@ -370,11 +460,21 @@ Response object Issue Event Milestone (title: Issue Event Milestone) + + + object + A minimal reference to an issue linked from a timeline event (e.g. sub-issue, parent-issue, or dependency events). (title: Issue Reference) + object 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. (title: GitHub app) + + + object + The type of issue. (title: Issue Type) + object @@ -400,6 +500,11 @@ Response object A GitHub user. (title: Simple User) + + + object + A minimal reference to an issue linked from a timeline event (e.g. sub-issue, parent-issue, or dependency events). (title: Issue Reference) + string (uri) @@ -518,20 +623,27 @@ actor, assignee, assigner, author_association, +blocked_by, +blocking, commit_url, created_at, dismissed_review, event, +intent, issue, +issue_type, label, lock_reason, milestone, +parent_issue, performed_via_github_app, +prev_issue_type, project_card, rename, requested_reviewer, requested_team, review_requester, +sub_issue, url FROM github.issues.events WHERE owner = '{{ owner }}' -- required @@ -552,19 +664,26 @@ node_id, actor, assignee, assigner, +blocked_by, +blocking, commit_url, created_at, dismissed_review, event, +intent, +issue_type, label, lock_reason, milestone, +parent_issue, performed_via_github_app, +prev_issue_type, project_card, rename, requested_reviewer, requested_team, review_requester, +sub_issue, url FROM github.issues.events WHERE owner = '{{ owner }}' -- required @@ -588,20 +707,27 @@ actor, assignee, assigner, author_association, +blocked_by, +blocking, commit_url, created_at, dismissed_review, event, +intent, issue, +issue_type, label, lock_reason, milestone, +parent_issue, performed_via_github_app, +prev_issue_type, project_card, rename, requested_reviewer, requested_team, review_requester, +sub_issue, url FROM github.issues.events WHERE owner = '{{ owner }}' -- required diff --git a/website/docs/services/issues/index.md b/website/docs/services/issues/index.md index daf2ef5..be23ec9 100644 --- a/website/docs/services/issues/index.md +++ b/website/docs/services/issues/index.md @@ -18,7 +18,7 @@ issues service documentation. :::info[Service Summary] -total resources: __14__ +total resources: __15__ ::: @@ -31,11 +31,12 @@ total resources: __14__ issue_blocked_by_dependencies
issue_blocking_dependencies
issue_comment_pins
-issue_field_values +issue_field_values
+issue_parent
-issue_parent
issue_sub_issues
+issue_suggestions
issues
labels
milestones
diff --git a/website/docs/services/issues/issue_blocked_by_dependencies/index.md b/website/docs/services/issues/issue_blocked_by_dependencies/index.md index d5e1de1..21bae92 100644 --- a/website/docs/services/issues/issue_blocked_by_dependencies/index.md +++ b/website/docs/services/issues/issue_blocked_by_dependencies/index.md @@ -234,7 +234,7 @@ Response object - The type of issue. (title: Issue Type) + The type assigned to the issue. This is only present for issues in repositories where issue types are supported. (title: Issue Type) diff --git a/website/docs/services/issues/issue_blocking_dependencies/index.md b/website/docs/services/issues/issue_blocking_dependencies/index.md index 8de0ccb..f575dc7 100644 --- a/website/docs/services/issues/issue_blocking_dependencies/index.md +++ b/website/docs/services/issues/issue_blocking_dependencies/index.md @@ -234,7 +234,7 @@ Response object - The type of issue. (title: Issue Type) + The type assigned to the issue. This is only present for issues in repositories where issue types are supported. (title: Issue Type) diff --git a/website/docs/services/issues/issue_comment_pins/index.md b/website/docs/services/issues/issue_comment_pins/index.md index 6f3799c..0e9470e 100644 --- a/website/docs/services/issues/issue_comment_pins/index.md +++ b/website/docs/services/issues/issue_comment_pins/index.md @@ -128,6 +128,7 @@ body_text, created_at, html_url, issue_url, +minimized, performed_via_github_app, pin, reactions, diff --git a/website/docs/services/issues/issue_field_values/index.md b/website/docs/services/issues/issue_field_values/index.md index 0eff8c5..c4c6be6 100644 --- a/website/docs/services/issues/issue_field_values/index.md +++ b/website/docs/services/issues/issue_field_values/index.md @@ -61,10 +61,20 @@ Response string (example: IFT_GDKND) + + + string + The human-readable name of the issue field. (example: Priority) + string - The data type of the issue field (text, single_select, number, date) (example: text) + The data type of the issue field (text, single_select, multi_select, number, date) (example: text) + + + + array + Details about the selected options @@ -106,21 +116,21 @@ The following methods are available for this resource: - repository_id, issue_number + owner, repo, issue_number Add custom field values to an issue. You can set values for organization-level issue fields that have been defined for the repository's organization.
Adding an empty array will clear all existing field values for the issue.

This endpoint supports the following field data types:
- **`text`**: String values for text fields
- **`single_select`**: Option names for single-select fields (must match an existing option name)
- **`number`**: Numeric values for number fields
- **`date`**: ISO 8601 date strings for date fields

Only users with push access to the repository can add issue field values. If you don't have the proper permissions, you'll receive a `403 Forbidden` response.

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)." - repository_id, issue_number + owner, repo, issue_number Set custom field values for an issue, replacing any existing values. You can set values for organization-level issue fields that have been defined for the repository's organization.

This endpoint supports the following field data types:
- **`text`**: String values for text fields
- **`single_select`**: Option names for single-select fields (must match an existing option name)
- **`number`**: Numeric values for number fields
- **`date`**: ISO 8601 date strings for date fields

This operation will replace all existing field values with the provided ones. If you want to add field values without replacing existing ones, use the `POST` endpoint instead.

Only users with push access to the repository can set issue field values. If you don't have the proper permissions, you'll receive a `403 Forbidden` response.

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)." - repository_id, issue_number, issue_field_id + owner, repo, issue_number, issue_field_id Remove a specific custom field value from an issue.

Only users with push access to the repository can delete issue field values. If you don't have the proper permissions, you'll receive a `403 Forbidden` response.

If the specified field does not have a value set on the issue, this operation will return a `404` error.

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)." @@ -160,11 +170,6 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string The name of the repository without the `.git` extension. The name is not case sensitive. - - - integer - The unique identifier of the repository. - integer @@ -194,7 +199,9 @@ Lists all issue field values for an issue. SELECT issue_field_id, node_id, +issue_field_name, data_type, +multi_select_options, single_select_option, value FROM github.issues.issue_field_values @@ -225,17 +232,21 @@ Add custom field values to an issue. You can set values for organization-level i ```sql INSERT INTO github.issues.issue_field_values ( issue_field_values, -repository_id, +owner, +repo, issue_number ) SELECT '{{ issue_field_values }}', -'{{ repository_id }}', +'{{ owner }}', +'{{ repo }}', '{{ issue_number }}' RETURNING issue_field_id, node_id, +issue_field_name, data_type, +multi_select_options, single_select_option, value ; @@ -246,8 +257,11 @@ value {`# Description fields are for documentation purposes - name: issue_field_values props: - - name: repository_id - value: {{ repository_id }} + - name: owner + value: "{{ owner }}" + description: Required parameter for the issue_field_values resource. + - name: repo + value: "{{ repo }}" description: Required parameter for the issue_field_values resource. - name: issue_number value: {{ issue_number }} @@ -281,12 +295,15 @@ REPLACE github.issues.issue_field_values SET issue_field_values = '{{ issue_field_values }}' WHERE -repository_id = '{{ repository_id }}' --required +owner = '{{ owner }}' --required +AND repo = '{{ repo }}' --required AND issue_number = '{{ issue_number }}' --required RETURNING issue_field_id, node_id, +issue_field_name, data_type, +multi_select_options, single_select_option, value; ``` @@ -308,7 +325,8 @@ Remove a specific custom field value from an issue.

Only users with p ```sql DELETE FROM github.issues.issue_field_values -WHERE repository_id = '{{ repository_id }}' --required +WHERE owner = '{{ owner }}' --required +AND repo = '{{ repo }}' --required AND issue_number = '{{ issue_number }}' --required AND issue_field_id = '{{ issue_field_id }}' --required ; diff --git a/website/docs/services/issues/issue_parent/index.md b/website/docs/services/issues/issue_parent/index.md index 0e754b1..10266f2 100644 --- a/website/docs/services/issues/issue_parent/index.md +++ b/website/docs/services/issues/issue_parent/index.md @@ -234,7 +234,7 @@ Response object - The type of issue. (title: Issue Type) + The type assigned to the issue. This is only present for issues in repositories where issue types are supported. (title: Issue Type) diff --git a/website/docs/services/issues/issue_sub_issues/index.md b/website/docs/services/issues/issue_sub_issues/index.md index 37b2651..f1701de 100644 --- a/website/docs/services/issues/issue_sub_issues/index.md +++ b/website/docs/services/issues/issue_sub_issues/index.md @@ -234,7 +234,7 @@ Response object - The type of issue. (title: Issue Type) + The type assigned to the issue. This is only present for issues in repositories where issue types are supported. (title: Issue Type) diff --git a/website/docs/services/issues/issue_suggestions/index.md b/website/docs/services/issues/issue_suggestions/index.md new file mode 100644 index 0000000..6eb73e0 --- /dev/null +++ b/website/docs/services/issues/issue_suggestions/index.md @@ -0,0 +1,295 @@ +--- +title: issue_suggestions +hide_title: false +hide_table_of_contents: false +keywords: + - issue_suggestions + - issues + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an issue_suggestions resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integerThe unique identifier of the suggestion.
integerThe unique identifier of the actor that proposed the suggestion.
integerThe identifier of the timeline event created when the suggestion was approved, when applicable.
integerThe unique identifier of the issue the suggestion applies to.
integerThe identifier of the target the change applies to (issue type, label, field, assignee, or duplicate issue), when applicable.
stringThe kind of change proposed. (set_type, add_label, add_field, add_assignee, close_issue)
stringThe actor's confidence level in the suggestion. (LOW, MEDIUM, HIGH)
string (date-time)The time the suggestion was created.
stringThe rationale the actor provided for the suggestion.
integerThe unique identifier of the user who approved or dismissed the suggestion.
stringThe suggestion's lifecycle state. (pending, applied, approved, dismissed, replaced, invalidated)
stringThe proposed value, when applicable. An array for multi-select field suggestions.
string (date-time)The time the suggestion was last updated.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repo, issue_numberstate, action, per_page, pageLists the suggestions on an issue. A suggestion is an agent-proposed change to an issue's type, labels, fields, assignees, or closed state that a maintainer can approve or dismiss.

By default only pending suggestions are returned. Use `state=all` to return suggestions in every state, or `state=` to filter to a single state. Use `action=` to return only suggestions for a specific change.

This endpoint is only available while the issue suggestions feature is enabled for the repository, and only supports issues, not pull requests.

Requires triage access to the repository.
owner, repo, issue_number, suggestion_idApproves a pending suggestion on an issue. Applies the proposed change (creating the corresponding timeline event), transitions the suggestion to `approved`, and dismisses any competing pending suggestions for the same change.

Requires triage access to the repository. Approving a suggestion also requires permission to perform the change it applies (for example, setting the issue type, adding a label or assignee, or closing the issue); this only affects fine-grained access tokens and GitHub Apps whose permissions are narrower than the triage role. This endpoint only supports issues, not pull requests.
owner, repo, issue_number, suggestion_idDismisses a pending suggestion on an issue. Transitions the suggestion to `dismissed` without applying any change or creating a timeline event.

Requires triage access to the repository. This endpoint only supports issues, not pull requests.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integerThe number that identifies the issue.
stringThe account owner of the repository. The name is not case sensitive.
stringThe name of the repository without the `.git` extension. The name is not case sensitive.
integerThe unique identifier of the suggestion.
stringFilter suggestions by the change they propose.
integerThe 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)."
integerThe 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)."
stringFilter suggestions by their state.
+ +## `SELECT` examples + + + + +Lists the suggestions on an issue. A suggestion is an agent-proposed change to an issue's type, labels, fields, assignees, or closed state that a maintainer can approve or dismiss.

By default only pending suggestions are returned. Use `state=all` to return suggestions in every state, or `state=` to filter to a single state. Use `action=` to return only suggestions for a specific change.

This endpoint is only available while the issue suggestions feature is enabled for the repository, and only supports issues, not pull requests.

Requires triage access to the repository. + +```sql +SELECT +id, +actor_id, +issue_event_id, +issue_id, +target_id, +action, +confidence, +created_at, +rationale, +resolved_by, +state, +target_value, +updated_at +FROM github.issues.issue_suggestions +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +AND issue_number = '{{ issue_number }}' -- required +AND state = '{{ state }}' +AND action = '{{ action }}' +AND per_page = '{{ per_page }}' +AND page = '{{ page }}' +; +``` +
+
+ + +## Lifecycle Methods + + + + +Approves a pending suggestion on an issue. Applies the proposed change (creating the corresponding timeline event), transitions the suggestion to `approved`, and dismisses any competing pending suggestions for the same change.

Requires triage access to the repository. Approving a suggestion also requires permission to perform the change it applies (for example, setting the issue type, adding a label or assignee, or closing the issue); this only affects fine-grained access tokens and GitHub Apps whose permissions are narrower than the triage role. This endpoint only supports issues, not pull requests. + +```sql +EXEC github.issues.issue_suggestions.approve_suggestion +@owner='{{ owner }}' --required, +@repo='{{ repo }}' --required, +@issue_number='{{ issue_number }}' --required, +@suggestion_id='{{ suggestion_id }}' --required +; +``` +
+ + +Dismisses a pending suggestion on an issue. Transitions the suggestion to `dismissed` without applying any change or creating a timeline event.

Requires triage access to the repository. This endpoint only supports issues, not pull requests. + +```sql +EXEC github.issues.issue_suggestions.dismiss_suggestion +@owner='{{ owner }}' --required, +@repo='{{ repo }}' --required, +@issue_number='{{ issue_number }}' --required, +@suggestion_id='{{ suggestion_id }}' --required +; +``` +
+
diff --git a/website/docs/services/issues/issues/index.md b/website/docs/services/issues/issues/index.md index 4e56dc9..ae9dda3 100644 --- a/website/docs/services/issues/issues/index.md +++ b/website/docs/services/issues/issues/index.md @@ -237,7 +237,7 @@ Response object - The type of issue. (title: Issue Type) + The type assigned to the issue. This is only present for issues in repositories where issue types are supported. (title: Issue Type) @@ -453,7 +453,7 @@ Response object - The type of issue. (title: Issue Type) + The type assigned to the issue. This is only present for issues in repositories where issue types are supported. (title: Issue Type) @@ -669,7 +669,7 @@ Response object - The type of issue. (title: Issue Type) + The type assigned to the issue. This is only present for issues in repositories where issue types are supported. (title: Issue Type) @@ -885,7 +885,7 @@ Response object - The type of issue. (title: Issue Type) + The type assigned to the issue. This is only present for issues in repositories where issue types are supported. (title: Issue Type) @@ -933,7 +933,7 @@ The following methods are available for this resource: owner, repo - milestone, state, assignee, type, creator, mentioned, labels, sort, direction, since, per_page, page + milestone, state, assignee, type, creator, mentioned, issue_field_values, labels, sort, direction, since, per_page, page List issues in a repository. Only open issues will be listed.

> [!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`. @@ -1039,6 +1039,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string 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. + + + string + A comma-separated list of issue field filters in `field_slug:value` format. Only issues matching all specified field values are returned. Requires issue fields to be enabled for the repository. Issue fields are not available for user-owned repositories, and field availability for organization-owned public repositories depends on the organization's visibility settings. For example, `priority:Urgent,severity:High` filters issues where the `priority` field is `Urgent` AND the `severity` field is `High`. + string @@ -1221,6 +1226,7 @@ AND assignee = '{{ assignee }}' AND type = '{{ type }}' AND creator = '{{ creator }}' AND mentioned = '{{ mentioned }}' +AND issue_field_values = '{{ issue_field_values }}' AND labels = '{{ labels }}' AND sort = '{{ sort }}' AND direction = '{{ direction }}' @@ -1376,6 +1382,7 @@ assignee, milestone, labels, assignees, +issue_field_values, type, owner, repo @@ -1387,6 +1394,7 @@ SELECT '{{ milestone }}', '{{ labels }}', '{{ assignees }}', +'{{ issue_field_values }}', '{{ type }}', '{{ owner }}', '{{ repo }}' @@ -1470,6 +1478,12 @@ user - "{{ assignees }}" 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._ + - name: issue_field_values + description: | + An array of issue field values to set on this issue. Each field value must include the field ID and the value to set. Issue fields are only available for organization-owned repositories with the feature enabled. Field values are silently dropped otherwise. + value: + - field_id: {{ field_id }} + value: "{{ value }}" - name: type value: "{{ type }}" description: | @@ -1500,6 +1514,7 @@ body = '{{ body }}', assignee = '{{ assignee }}', state = '{{ state }}', state_reason = '{{ state_reason }}', +duplicate_issue_id = {{ duplicate_issue_id }}, milestone = '{{ milestone }}', labels = '{{ labels }}', assignees = '{{ assignees }}', @@ -1544,6 +1559,7 @@ repository_url, state, state_reason, sub_issues_summary, +suggestions, timeline_url, title, type, diff --git a/website/docs/services/issues/labels/index.md b/website/docs/services/issues/labels/index.md index 8a9669f..d5416d0 100644 --- a/website/docs/services/issues/labels/index.md +++ b/website/docs/services/issues/labels/index.md @@ -573,10 +573,9 @@ url value: {{ issue_number }} description: Required parameter for the labels resource. - name: labels - value: - - "{{ labels }}" + value: "{{ labels }}" description: | - The names of the labels to add to the issue's existing labels. You can also pass an \`array\` of labels directly, but GitHub recommends passing an object with the \`labels\` key. To replace all of the labels for an issue, use "[Set labels for an issue](https://docs.github.com/rest/issues/labels#set-labels-for-an-issue)." + The labels to add to the issue's existing labels. You can also pass an \`array\` of labels directly, but GitHub recommends passing an object with the \`labels\` key. To replace all of the labels for an issue, use "[Set labels for an issue](https://docs.github.com/rest/issues/labels#set-labels-for-an-issue)." - name: name value: "{{ name }}" description: | diff --git a/website/docs/services/issues/timeline/index.md b/website/docs/services/issues/timeline/index.md index 936a4e5..744fd36 100644 --- a/website/docs/services/issues/timeline/index.md +++ b/website/docs/services/issues/timeline/index.md @@ -91,6 +91,16 @@ Response string How the author is associated with the repository. (COLLABORATOR, CONTRIBUTOR, FIRST_TIMER, FIRST_TIME_CONTRIBUTOR, MANNEQUIN, MEMBER, NONE, OWNER) (title: author_association, example: OWNER) + + + object + A minimal reference to an issue linked from a timeline event (e.g. sub-issue, parent-issue, or dependency events). (title: Issue Reference) + + + + object + A minimal reference to an issue linked from a timeline event (e.g. sub-issue, parent-issue, or dependency events). (title: Issue Reference) + string @@ -141,6 +151,16 @@ Response string (uri) + + + object + The intent behind an agent's action on an issue, including the rationale and confidence. Present (and `null` when the event carried no agent intent) on supported event types while the issue suggestions feature is enabled for the repository; the property is omitted entirely when the feature is disabled or the event type does not support intent. (title: Issue Event Intent) + + + + object + The type of issue. (title: Issue Type) + string (uri) @@ -166,6 +186,16 @@ Response object + + + object + Details about why an issue comment was minimized. (title: Minimized Issue Comment) + + + + object + A minimal reference to an issue linked from a timeline event (e.g. sub-issue, parent-issue, or dependency events). (title: Issue Reference) + array @@ -181,6 +211,11 @@ Response object Context around who pinned an issue comment and when it was pinned. (title: Pinned Issue Comment) + + + object + The type of issue. (title: Issue Type) + object @@ -236,6 +271,11 @@ Response string + + + object + A minimal reference to an issue linked from a timeline event (e.g. sub-issue, parent-issue, or dependency events). (title: Issue Reference) + string (date-time) @@ -290,7 +330,7 @@ The following methods are available for this resource: owner, repo, issue_number - per_page, page + per_page, page, exclude List all timeline events for an issue. @@ -324,6 +364,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string The name of the repository without the `.git` extension. The name is not case sensitive. + + + string + A comma-separated list of timeline event names to exclude from the response. + integer @@ -359,6 +404,8 @@ actor, assignee, author, author_association, +blocked_by, +blocking, body, body_html, body_text, @@ -369,14 +416,19 @@ created_at, dismissed_review, event, html_url, +intent, +issue_type, issue_url, label, lock_reason, message, milestone, +minimized, +parent_issue, parents, performed_via_github_app, pin, +prev_issue_type, project_card, pull_request_url, reactions, @@ -388,6 +440,7 @@ sha, source, state, state_reason, +sub_issue, submitted_at, tree, updated_at, @@ -400,6 +453,7 @@ AND repo = '{{ repo }}' -- required AND issue_number = '{{ issue_number }}' -- required AND per_page = '{{ per_page }}' AND page = '{{ page }}' +AND exclude = '{{ exclude }}' ; ``` diff --git a/website/docs/services/issues/user_issues/index.md b/website/docs/services/issues/user_issues/index.md index 0c30d76..5bbf38a 100644 --- a/website/docs/services/issues/user_issues/index.md +++ b/website/docs/services/issues/user_issues/index.md @@ -234,7 +234,7 @@ Response object - The type of issue. (title: Issue Type) + The type assigned to the issue. This is only present for issues in repositories where issue types are supported. (title: Issue Type) diff --git a/website/docs/services/meta/meta/index.md b/website/docs/services/meta/meta/index.md index ca68e83..56026f5 100644 --- a/website/docs/services/meta/meta/index.md +++ b/website/docs/services/meta/meta/index.md @@ -71,6 +71,11 @@ Response array + + + array + + array @@ -161,7 +166,7 @@ The following methods are available for this resource: - 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/)."

The API's response also includes a list of GitHub's domain names.

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. + 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/)."

The API's response also includes a list of GitHub's domain names, and the public keys used by GitHub to sign commits made through the web UI.

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. @@ -192,7 +197,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -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/)."

The API's response also includes a list of GitHub's domain names.

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. +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/)."

The API's response also includes a list of GitHub's domain names, and the public keys used by GitHub to sign commits made through the web UI.

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. ```sql SELECT @@ -200,6 +205,7 @@ actions, actions_macos, api, codespaces, +commit_signing_keys, copilot, dependabot, domains, diff --git a/website/docs/services/meta/versions/index.md b/website/docs/services/meta/versions/index.md index 6adc03f..343bca8 100644 --- a/website/docs/services/meta/versions/index.md +++ b/website/docs/services/meta/versions/index.md @@ -51,6 +51,11 @@ Response + + + string + +
@@ -111,7 +116,7 @@ Get all supported GitHub API versions. ```sql SELECT -* +meta/get_all_version FROM github.meta.versions ; ``` diff --git a/website/docs/services/oidc/oidc/index.md b/website/docs/services/oidc/oidc/index.md index eb9c7b0..cd805ee 100644 --- a/website/docs/services/oidc/oidc/index.md +++ b/website/docs/services/oidc/oidc/index.md @@ -147,7 +147,8 @@ Creates or updates the customization template for an OpenID Connect (OIDC) subje ```sql REPLACE github.oidc.oidc SET -include_claim_keys = '{{ include_claim_keys }}' +include_claim_keys = '{{ include_claim_keys }}', +use_immutable_subject = {{ use_immutable_subject }} WHERE org = '{{ org }}' --required; ``` diff --git a/website/docs/services/orgs/api_insights_route_stats/index.md b/website/docs/services/orgs/api_insights_route_stats/index.md index 004aa05..f9c60e7 100644 --- a/website/docs/services/orgs/api_insights_route_stats/index.md +++ b/website/docs/services/orgs/api_insights_route_stats/index.md @@ -106,7 +106,7 @@ The following methods are available for this resource: org, actor_type, actor_id, min_timestamp max_timestamp, page, per_page, direction, sort, api_route_substring - Get API request count statistics for an actor broken down by route within a specified time frame. + Get API request count statistics for an actor broken down by route within a specified time frame.

Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. @@ -187,7 +187,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -Get API request count statistics for an actor broken down by route within a specified time frame. +Get API request count statistics for an actor broken down by route within a specified time frame.

Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. ```sql SELECT diff --git a/website/docs/services/orgs/api_insights_subject_stats/index.md b/website/docs/services/orgs/api_insights_subject_stats/index.md index 592ef88..27f552f 100644 --- a/website/docs/services/orgs/api_insights_subject_stats/index.md +++ b/website/docs/services/orgs/api_insights_subject_stats/index.md @@ -111,7 +111,7 @@ The following methods are available for this resource: org, min_timestamp max_timestamp, page, per_page, direction, sort, subject_name_substring - Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps. + Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps.

Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. @@ -182,7 +182,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps. +Get API request statistics for all subjects within an organization within a specified time frame. Subjects can be users or GitHub Apps.

Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. ```sql SELECT diff --git a/website/docs/services/orgs/api_insights_summary_stats/index.md b/website/docs/services/orgs/api_insights_summary_stats/index.md index d10aceb..66b073d 100644 --- a/website/docs/services/orgs/api_insights_summary_stats/index.md +++ b/website/docs/services/orgs/api_insights_summary_stats/index.md @@ -140,21 +140,21 @@ The following methods are available for this resource: org, min_timestamp, actor_type, actor_id max_timestamp - 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. + 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.

Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. org, user_id, min_timestamp max_timestamp - Get overall statistics of API requests within the organization for a user. + Get overall statistics of API requests within the organization for a user.

Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. org, min_timestamp max_timestamp - Get overall statistics of API requests made within an organization by all users and apps within a specified time frame. + Get overall statistics of API requests made within an organization by all users and apps within a specified time frame.

Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. @@ -217,7 +217,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -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. +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.

Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. ```sql SELECT @@ -234,7 +234,7 @@ AND max_timestamp = '{{ max_timestamp }}'
-Get overall statistics of API requests within the organization for a user. +Get overall statistics of API requests within the organization for a user.

Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. ```sql SELECT @@ -250,7 +250,7 @@ AND max_timestamp = '{{ max_timestamp }}'
-Get overall statistics of API requests made within an organization by all users and apps within a specified time frame. +Get overall statistics of API requests made within an organization by all users and apps within a specified time frame.

Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. ```sql SELECT diff --git a/website/docs/services/orgs/api_insights_time_stats/index.md b/website/docs/services/orgs/api_insights_time_stats/index.md index 654479d..3905512 100644 --- a/website/docs/services/orgs/api_insights_time_stats/index.md +++ b/website/docs/services/orgs/api_insights_time_stats/index.md @@ -155,21 +155,21 @@ The following methods are available for this resource: org, actor_type, actor_id, min_timestamp, timestamp_increment max_timestamp - Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period. + Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period.

Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. org, user_id, min_timestamp, timestamp_increment max_timestamp - Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period. + Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period.

Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. org, min_timestamp, timestamp_increment max_timestamp - Get the number of API requests and rate-limited requests made within an organization over a specified time period. + Get the number of API requests and rate-limited requests made within an organization over a specified time period.

Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. @@ -237,7 +237,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period. +Get the number of API requests and rate-limited requests made within an organization by a specific actor within a specified time period.

Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. ```sql SELECT @@ -256,7 +256,7 @@ AND max_timestamp = '{{ max_timestamp }}'
-Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period. +Get the number of API requests and rate-limited requests made within an organization by a specific user over a specified time period.

Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. ```sql SELECT @@ -274,7 +274,7 @@ AND max_timestamp = '{{ max_timestamp }}'
-Get the number of API requests and rate-limited requests made within an organization over a specified time period. +Get the number of API requests and rate-limited requests made within an organization over a specified time period.

Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. ```sql SELECT diff --git a/website/docs/services/orgs/api_insights_user_stats/index.md b/website/docs/services/orgs/api_insights_user_stats/index.md index 521f630..f687f07 100644 --- a/website/docs/services/orgs/api_insights_user_stats/index.md +++ b/website/docs/services/orgs/api_insights_user_stats/index.md @@ -121,7 +121,7 @@ The following methods are available for this resource: org, user_id, min_timestamp max_timestamp, page, per_page, direction, sort, actor_name_substring - Get API usage statistics within an organization for a user broken down by the type of access. + Get API usage statistics within an organization for a user broken down by the type of access.

Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. @@ -197,7 +197,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -Get API usage statistics within an organization for a user broken down by the type of access. +Get API usage statistics within an organization for a user broken down by the type of access.

Under normal conditions, you can expect API data to appear within 4–6 hours after making a request. During incidents or periods of unusually high volume, it may take longer to show up. ```sql SELECT diff --git a/website/docs/services/orgs/app_installations/index.md b/website/docs/services/orgs/app_installations/index.md index 72c234a..b4fa7d6 100644 --- a/website/docs/services/orgs/app_installations/index.md +++ b/website/docs/services/orgs/app_installations/index.md @@ -119,7 +119,7 @@ Response object - The permissions granted to the user access token. (title: App Permissions) + The permissions granted to the fine-grained access token. (title: App Permissions) diff --git a/website/docs/services/orgs/artifact_deployment_records/index.md b/website/docs/services/orgs/artifact_deployment_records/index.md index d165387..a069617 100644 --- a/website/docs/services/orgs/artifact_deployment_records/index.md +++ b/website/docs/services/orgs/artifact_deployment_records/index.md @@ -136,7 +136,7 @@ The following methods are available for this resource: org, cluster, logical_environment, deployments - 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. + 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.
Note: Artifacts are uniquely identified by the combination of their repository and digest fields. If two entries in the deployments
array resolve to the same repository and have identical digest fields but differing name and version fields, the endpoint will use
the artifact name and version from the record processed first, since a single artifact (identified by repository and digest) can
only have one name and version. @@ -225,13 +225,14 @@ AND subject_digest = '{{ subject_digest }}' -- required > -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. +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.
Note: Artifacts are uniquely identified by the combination of their repository and digest fields. If two entries in the deployments
array resolve to the same repository and have identical digest fields but differing name and version fields, the endpoint will use
the artifact name and version from the record processed first, since a single artifact (identified by repository and digest) can
only have one name and version. ```sql INSERT INTO github.orgs.artifact_deployment_records ( logical_environment, physical_environment, deployments, +partial_success, return_records, org, cluster @@ -240,6 +241,7 @@ SELECT '{{ logical_environment }}' /* required */, '{{ physical_environment }}', '{{ deployments }}' /* required */, +{{ partial_success }}, {{ return_records }}, '{{ org }}', '{{ cluster }}' @@ -320,6 +322,14 @@ total_count github_repository: "{{ github_repository }}" tags: "{{ tags }}" runtime_risks: "{{ runtime_risks }}" + - name: partial_success + value: {{ partial_success }} + description: | + When enabled, deployments associated with repositories the actor can write to are processed + while deployments associated with repositories that cannot be resolved or written to by the actor + are skipped and reported in the \`errors\` array. When false (the default), the endpoint returns + an error if any targeted repository cannot be resolved, the actor lacks write access, or no matching attestation can be found. + default: false - name: return_records value: {{ return_records }} description: | diff --git a/website/docs/services/orgs/artifact_storage_records/index.md b/website/docs/services/orgs/artifact_storage_records/index.md index 2565500..e87c205 100644 --- a/website/docs/services/orgs/artifact_storage_records/index.md +++ b/website/docs/services/orgs/artifact_storage_records/index.md @@ -121,7 +121,7 @@ The following methods are available for this resource: org, subject_digest - 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. + List artifact storage records with a given subject digest for repositories owned by an organization.

Results are filtered by the authenticated user's permissions; records for repositories the user cannot read are omitted. Fine-grained access tokens require the `artifact-metadata:read` permission. @@ -169,7 +169,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -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. +List artifact storage records with a given subject digest for repositories owned by an organization.

Results are filtered by the authenticated user's permissions; records for repositories the user cannot read are omitted. Fine-grained access tokens require the `artifact-metadata:read` permission. ```sql SELECT diff --git a/website/docs/services/orgs/cluster_deployment_records_jobs/index.md b/website/docs/services/orgs/cluster_deployment_records_jobs/index.md new file mode 100644 index 0000000..37366aa --- /dev/null +++ b/website/docs/services/orgs/cluster_deployment_records_jobs/index.md @@ -0,0 +1,243 @@ +--- +title: cluster_deployment_records_jobs +hide_title: false +hide_table_of_contents: false +keywords: + - cluster_deployment_records_jobs + - orgs + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a cluster_deployment_records_jobs resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Job status retrieved successfully.
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integerThe ID of the job.
arrayProcessing errors (only present when completed or failed).
string (date-time)When the job started processing (only present when processing, completed, or failed).
stringThe current status of the job. (pending, processing, completed, failed)
integerThe number of records successfully mutated (only present when completed).
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
org, cluster, job_idGet the status and results of a previously created cluster deployment records job.
org, cluster, logical_environment, deploymentsCreate a background job to set deployment records for a given cluster.
Performs validation and permission checks synchronously, returning rejected
deployments immediately, then enqueues a background job for the actual
deployment updates. Use the companion GET endpoint to poll for job status.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe cluster name.
integerThe ID of the job.
stringThe organization name. The name is not case sensitive.
+ +## `SELECT` examples + + + + +Get the status and results of a previously created cluster deployment records job. + +```sql +SELECT +job_id, +errors, +started_at, +status, +total_count +FROM github.orgs.cluster_deployment_records_jobs +WHERE org = '{{ org }}' -- required +AND cluster = '{{ cluster }}' -- required +AND job_id = '{{ job_id }}' -- required +; +``` + + + + +## `INSERT` examples + + + + +Create a background job to set deployment records for a given cluster.
Performs validation and permission checks synchronously, returning rejected
deployments immediately, then enqueues a background job for the actual
deployment updates. Use the companion GET endpoint to poll for job status. + +```sql +INSERT INTO github.orgs.cluster_deployment_records_jobs ( +logical_environment, +physical_environment, +deployments, +org, +cluster +) +SELECT +'{{ logical_environment }}' /* required */, +'{{ physical_environment }}', +'{{ deployments }}' /* required */, +'{{ org }}', +'{{ cluster }}' +RETURNING +job_id, +errors +; +``` +
+ + +{`# Description fields are for documentation purposes +- name: cluster_deployment_records_jobs + props: + - name: org + value: "{{ org }}" + description: Required parameter for the cluster_deployment_records_jobs resource. + - name: cluster + value: "{{ cluster }}" + description: Required parameter for the cluster_deployment_records_jobs resource. + - name: logical_environment + value: "{{ logical_environment }}" + description: | + The stage of the deployment. + - name: physical_environment + value: "{{ physical_environment }}" + description: | + The physical region of the deployment. + - name: deployments + description: | + The list of deployments to record. + value: + - name: "{{ name }}" + digest: "{{ digest }}" + version: "{{ version }}" + status: "{{ status }}" + deployment_name: "{{ deployment_name }}" + github_repository: "{{ github_repository }}" + tags: "{{ tags }}" + runtime_risks: "{{ runtime_risks }}" +`} + + +
diff --git a/website/docs/services/orgs/index.md b/website/docs/services/orgs/index.md index 8a1212b..ef6974d 100644 --- a/website/docs/services/orgs/index.md +++ b/website/docs/services/orgs/index.md @@ -18,7 +18,7 @@ orgs service documentation. :::info[Service Summary] -total resources: __39__ +total resources: __42__ ::: @@ -36,6 +36,7 @@ total resources: __39__ attestation_repositories
attestations
blocking
+cluster_deployment_records_jobs
custom_properties
custom_property_values
failed_invitations
@@ -61,7 +62,9 @@ total resources: __39__ role_user_assignments
roles
ruleset_history
+saml_identities
security_managers
+sponsorships
webhook_config
webhook_deliveries
webhook_delivery
diff --git a/website/docs/services/orgs/invitation_teams/index.md b/website/docs/services/orgs/invitation_teams/index.md index ad0bd0c..c0c0489 100644 --- a/website/docs/services/orgs/invitation_teams/index.md +++ b/website/docs/services/orgs/invitation_teams/index.md @@ -76,6 +76,11 @@ Response integer Unique identifier of the organization to which this team belongs + + + string + How the team's access to the repository was granted. This property is only present when the team is returned in a repository context, such as `GET /repos/{owner}/{repo}/teams`. (direct, organization, enterprise) (example: direct) + string @@ -221,6 +226,7 @@ name, enterprise_id, node_id, organization_id, +access_source, description, html_url, members_url, diff --git a/website/docs/services/orgs/issue_fields/index.md b/website/docs/services/orgs/issue_fields/index.md index d09ed2f..53293a3 100644 --- a/website/docs/services/orgs/issue_fields/index.md +++ b/website/docs/services/orgs/issue_fields/index.md @@ -74,7 +74,7 @@ Response string - The data type of the issue field. (text, date, single_select, number) + The data type of the issue field. (text, date, single_select, multi_select, number) @@ -84,7 +84,7 @@ Response array - Available options for single select fields. + Available options for single select and multi select fields. @@ -266,7 +266,7 @@ visibility value: "{{ data_type }}" description: | The data type of the issue field. - valid_values: ['text', 'date', 'single_select', 'number'] + valid_values: ['text', 'date', 'single_select', 'multi_select', 'number'] - name: visibility value: "{{ visibility }}" description: | @@ -274,7 +274,7 @@ visibility valid_values: ['organization_members_only', 'all'] - name: options description: | - Options for single select fields. Required when data_type is 'single_select'. + Options for select fields. Required when data_type is 'single_select' or 'multi_select'. value: - name: "{{ name }}" description: "{{ description }}" diff --git a/website/docs/services/orgs/saml_identities/index.md b/website/docs/services/orgs/saml_identities/index.md new file mode 100644 index 0000000..3a6aecd --- /dev/null +++ b/website/docs/services/orgs/saml_identities/index.md @@ -0,0 +1,154 @@ +--- +title: saml_identities +hide_title: false +hide_table_of_contents: false +keywords: + - saml_identities + - orgs + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a saml_identities resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe GraphQL node ID of the external identity.
stringThe GUID for this identity.
objectThe SAML identity (`name_id`, `username`, `emails[]`).
objectThe SCIM identity (`username`, `emails[]`).
objectThe linked GitHub user, null for unlinked identities (`login`, `id`).
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
orgExternal identities (SAML and SCIM) linked to organization members when the organization uses SAML single sign-on. Backed by the GitHub GraphQL API (`organization.samlIdentityProvider.externalIdentities`). Requires organization owner access and an organization with SAML SSO configured.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe organization name.
+ +## `SELECT` examples + + + + +External identities (SAML and SCIM) linked to organization members when the organization uses SAML single sign-on. Backed by the GitHub GraphQL API (`organization.samlIdentityProvider.externalIdentities`). Requires organization owner access and an organization with SAML SSO configured. + +```sql +SELECT +id, +guid, +saml_identity, +scim_identity, +user +FROM github.orgs.saml_identities +WHERE org = '{{ org }}' -- required +; +``` + + diff --git a/website/docs/services/orgs/sponsorships/index.md b/website/docs/services/orgs/sponsorships/index.md new file mode 100644 index 0000000..51a7887 --- /dev/null +++ b/website/docs/services/orgs/sponsorships/index.md @@ -0,0 +1,166 @@ +--- +title: sponsorships +hide_title: false +hide_table_of_contents: false +keywords: + - sponsorships + - orgs + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a sponsorships resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe GraphQL node ID of the sponsorship.
string (date-time)
boolean
boolean
stringPUBLIC or PRIVATE.
objectThe sponsoring user or organization (`login`, `name`).
objectThe sponsorship tier (`name`, `monthly_price_in_dollars`, `monthly_price_in_cents`, `is_one_time`).
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
orgGitHub Sponsors sponsorships where the org is the maintainer being sponsored. Backed by the GitHub GraphQL API (`organization.sponsorshipsAsMaintainer`). Private sponsorships are only visible to the sponsored account.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe organization name.
+ +## `SELECT` examples + + + + +GitHub Sponsors sponsorships where the org is the maintainer being sponsored. Backed by the GitHub GraphQL API (`organization.sponsorshipsAsMaintainer`). Private sponsorships are only visible to the sponsored account. + +```sql +SELECT +id, +created_at, +is_active, +is_one_time_payment, +privacy_level, +sponsor_entity, +tier +FROM github.orgs.sponsorships +WHERE org = '{{ org }}' -- required +; +``` + + diff --git a/website/docs/services/private_registries/private_registries/index.md b/website/docs/services/private_registries/private_registries/index.md index 05a6796..d541758 100644 --- a/website/docs/services/private_registries/private_registries/index.md +++ b/website/docs/services/private_registries/private_registries/index.md @@ -87,6 +87,11 @@ The specified private registry configuration for the organization string The AWS IAM role name. + + + string + The Cloudsmith API host. + string @@ -95,7 +100,7 @@ The specified private registry configuration for the organization string - The authentication type for the private registry. (token, username_password, oidc_azure, oidc_aws, oidc_jfrog) + The authentication type for the private registry. (token, username_password, oidc_azure, oidc_aws, oidc_jfrog, oidc_cloudsmith, oidc_gcp) @@ -117,6 +122,11 @@ The specified private registry configuration for the organization string The CodeArtifact domain owner. + + + string + The Cloudsmith organization namespace. + string @@ -127,6 +137,16 @@ The specified private registry configuration for the organization boolean 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. + + + string + The GCP service account email to impersonate. If omitted, the federated token is used directly (direct WIF). + + + + string + The Cloudsmith service account slug. + string (date-time) @@ -147,6 +167,11 @@ The specified private registry configuration for the organization string Which type of organization repositories have access to the private registry. (all, private, selected) + + + string + The full resource name of the GCP Workload Identity Provider (e.g. `projects//locations/global/workloadIdentityPools//providers/`). +
@@ -198,6 +223,11 @@ Response string The AWS IAM role name. + + + string + The Cloudsmith API host. + string @@ -206,7 +236,7 @@ Response string - The authentication type for the private registry. (token, username_password, oidc_azure, oidc_aws, oidc_jfrog) + The authentication type for the private registry. (token, username_password, oidc_azure, oidc_aws, oidc_jfrog, oidc_cloudsmith, oidc_gcp) @@ -228,6 +258,11 @@ Response string The CodeArtifact domain owner. + + + string + The Cloudsmith organization namespace. + string @@ -238,6 +273,16 @@ Response boolean 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. + + + string + The GCP service account email to impersonate. If omitted, the federated token is used directly (direct WIF). + + + + string + The Cloudsmith service account slug. + string (date-time) @@ -258,6 +303,11 @@ Response string Which type of organization repositories have access to the private registry. (all, private, selected) + + + string + The full resource name of the GCP Workload Identity Provider (e.g. `projects//locations/global/workloadIdentityPools//providers/`). +
@@ -297,14 +347,14 @@ The following methods are available for this resource: org, registry_type, url, visibility -
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)."
For OIDC-based registries (`oidc_azure`, `oidc_aws`, or `oidc_jfrog`), the `encrypted_value` and `key_id` fields should be omitted.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this 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)."
For OIDC-based registries (`oidc_azure`, `oidc_aws`, `oidc_jfrog`, `oidc_cloudsmith`, or `oidc_gcp`), the `encrypted_value` and `key_id` fields should be omitted.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. org, secret_name -
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)."
For OIDC-based registries (`oidc_azure`, `oidc_aws`, or `oidc_jfrog`), the `encrypted_value` and `key_id` fields should be omitted.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this 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)."
For OIDC-based registries (`oidc_azure`, `oidc_aws`, `oidc_jfrog`, `oidc_cloudsmith`, or `oidc_gcp`), the `encrypted_value` and `key_id` fields should be omitted.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. @@ -374,18 +424,23 @@ tenant_id, identity_mapping_name, jfrog_oidc_provider_name, role_name, +api_host, audience, auth_type, aws_region, created_at, domain, domain_owner, +namespace, registry_type, replaces_base, +service_account, +service_slug, updated_at, url, username, -visibility +visibility, +workload_identity_provider FROM github.private_registries.private_registries WHERE org = '{{ org }}' -- required AND secret_name = '{{ secret_name }}' -- required @@ -405,18 +460,23 @@ tenant_id, identity_mapping_name, jfrog_oidc_provider_name, role_name, +api_host, audience, auth_type, aws_region, created_at, domain, domain_owner, +namespace, registry_type, replaces_base, +service_account, +service_slug, updated_at, url, username, -visibility +visibility, +workload_identity_provider FROM github.private_registries.private_registries WHERE org = '{{ org }}' -- required AND per_page = '{{ per_page }}' @@ -438,7 +498,7 @@ AND page = '{{ page }}' > -
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)."
For OIDC-based registries (`oidc_azure`, `oidc_aws`, or `oidc_jfrog`), the `encrypted_value` and `key_id` fields should be omitted.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this 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)."
For OIDC-based registries (`oidc_azure`, `oidc_aws`, `oidc_jfrog`, `oidc_cloudsmith`, or `oidc_gcp`), the `encrypted_value` and `key_id` fields should be omitted.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. ```sql INSERT INTO github.private_registries.private_registries ( @@ -461,6 +521,11 @@ domain_owner, jfrog_oidc_provider_name, audience, identity_mapping_name, +namespace, +service_slug, +api_host, +workload_identity_provider, +service_account, org ) SELECT @@ -483,6 +548,11 @@ SELECT '{{ jfrog_oidc_provider_name }}', '{{ audience }}', '{{ identity_mapping_name }}', +'{{ namespace }}', +'{{ service_slug }}', +'{{ api_host }}', +'{{ workload_identity_provider }}', +'{{ service_account }}', '{{ org }}' RETURNING name, @@ -492,19 +562,24 @@ tenant_id, identity_mapping_name, jfrog_oidc_provider_name, role_name, +api_host, audience, auth_type, aws_region, created_at, domain, domain_owner, +namespace, registry_type, replaces_base, selected_repository_ids, +service_account, +service_slug, updated_at, url, username, -visibility +visibility, +workload_identity_provider ; ```
@@ -555,8 +630,8 @@ visibility - name: auth_type value: "{{ auth_type }}" description: | - The authentication type for the private registry. Defaults to \`token\` if not specified. Use \`oidc_azure\`, \`oidc_aws\`, or \`oidc_jfrog\` for OIDC authentication. - valid_values: ['token', 'username_password', 'oidc_azure', 'oidc_aws', 'oidc_jfrog'] + The authentication type for the private registry. Defaults to \`token\` if not specified. Use \`oidc_azure\`, \`oidc_aws\`, \`oidc_jfrog\`, \`oidc_cloudsmith\`, or \`oidc_gcp\` for OIDC authentication. + valid_values: ['token', 'username_password', 'oidc_azure', 'oidc_aws', 'oidc_jfrog', 'oidc_cloudsmith', 'oidc_gcp'] - name: tenant_id value: "{{ tenant_id }}" description: | @@ -592,11 +667,31 @@ visibility - name: audience value: "{{ audience }}" description: | - The OIDC audience. Optional for \`oidc_aws\` and \`oidc_jfrog\` auth types. + The OIDC audience. Optional for \`oidc_aws\`, \`oidc_jfrog\`, and \`oidc_gcp\`, and required for \`oidc_cloudsmith\` auth types. - name: identity_mapping_name value: "{{ identity_mapping_name }}" description: | The JFrog identity mapping name. Optional for \`oidc_jfrog\` auth type. + - name: namespace + value: "{{ namespace }}" + description: | + The Cloudsmith organization namespace. Required when \`auth_type\` is \`oidc_cloudsmith\`. + - name: service_slug + value: "{{ service_slug }}" + description: | + The Cloudsmith service account slug. Required when \`auth_type\` is \`oidc_cloudsmith\`. + - name: api_host + value: "{{ api_host }}" + description: | + The Cloudsmith API host. Optional for \`oidc_cloudsmith\` auth type. If omitted, \`api.cloudsmith.io\` is used by default. + - name: workload_identity_provider + value: "{{ workload_identity_provider }}" + description: | + The full resource name of the GCP Workload Identity Provider (e.g. \`projects//locations/global/workloadIdentityPools//providers/\`). Required when \`auth_type\` is \`oidc_gcp\`. + - name: service_account + value: "{{ service_account }}" + description: | + The GCP service account email to impersonate. Optional for \`oidc_gcp\` auth type. If omitted, the federated token is used directly (direct WIF). `}
@@ -613,7 +708,7 @@ visibility > -
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)."
For OIDC-based registries (`oidc_azure`, `oidc_aws`, or `oidc_jfrog`), the `encrypted_value` and `key_id` fields should be omitted.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this 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)."
For OIDC-based registries (`oidc_azure`, `oidc_aws`, `oidc_jfrog`, `oidc_cloudsmith`, or `oidc_gcp`), the `encrypted_value` and `key_id` fields should be omitted.

OAuth app tokens and personal access tokens (classic) need the `admin:org` scope to use this endpoint. ```sql UPDATE github.private_registries.private_registries @@ -636,7 +731,12 @@ domain = '{{ domain }}', domain_owner = '{{ domain_owner }}', jfrog_oidc_provider_name = '{{ jfrog_oidc_provider_name }}', audience = '{{ audience }}', -identity_mapping_name = '{{ identity_mapping_name }}' +identity_mapping_name = '{{ identity_mapping_name }}', +namespace = '{{ namespace }}', +service_slug = '{{ service_slug }}', +api_host = '{{ api_host }}', +workload_identity_provider = '{{ workload_identity_provider }}', +service_account = '{{ service_account }}' WHERE org = '{{ org }}' --required AND secret_name = '{{ secret_name }}' --required; diff --git a/website/docs/services/projects/project_views/index.md b/website/docs/services/projects/project_views/index.md index 064943f..6a8f8a4 100644 --- a/website/docs/services/projects/project_views/index.md +++ b/website/docs/services/projects/project_views/index.md @@ -118,6 +118,9 @@ name, layout, filter, visible_fields, +sort_by, +group_by, +vertical_group_by, org, project_number ) @@ -126,6 +129,9 @@ SELECT '{{ layout }}' /* required */, '{{ filter }}', '{{ visible_fields }}', +'{{ sort_by }}', +'{{ group_by }}', +'{{ vertical_group_by }}', '{{ org }}', '{{ project_number }}' RETURNING @@ -157,6 +163,9 @@ name, layout, filter, visible_fields, +sort_by, +group_by, +vertical_group_by, user_id, project_number ) @@ -165,6 +174,9 @@ SELECT '{{ layout }}' /* required */, '{{ filter }}', '{{ visible_fields }}', +'{{ sort_by }}', +'{{ group_by }}', +'{{ vertical_group_by }}', '{{ user_id }}', '{{ project_number }}' RETURNING @@ -219,6 +231,21 @@ visible_fields description: | \`visible_fields\` is not applicable to \`roadmap\` layout views. For \`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. + - name: sort_by + value: + - "{{ sort_by }}" + description: | + Sorting configuration for the view. Each element is a two-element array of \`[field_id, direction]\` where \`direction\` is \`"asc"\` or \`"desc"\`. Supports multiple sort criteria applied in order. + - name: group_by + value: + - {{ group_by }} + description: | + The field IDs to group items by (horizontal grouping). Supports a single field. The field must support grouping; fields such as \`Title\`, \`Reviewers\`, \`Linked pull requests\`, \`Sub-issues progress\`, \`Tracked by\`, and \`Tracks\` cannot be grouped on. + - name: vertical_group_by + value: + - {{ vertical_group_by }} + description: | + The field IDs to use as columns in \`board\` layout (vertical grouping). Supports a single field. The field must support grouping; fields such as \`Title\`, \`Reviewers\`, \`Linked pull requests\`, \`Sub-issues progress\`, \`Tracked by\`, and \`Tracks\` cannot be grouped on. `}
diff --git a/website/docs/services/pulls/index.md b/website/docs/services/pulls/index.md index 425300b..ac867dd 100644 --- a/website/docs/services/pulls/index.md +++ b/website/docs/services/pulls/index.md @@ -18,7 +18,7 @@ pulls service documentation. :::info[Service Summary] -total resources: __8__ +total resources: __11__ ::: @@ -28,12 +28,15 @@ total resources: __8__ comments
comments_for_review
commits
-files +files
+pull_request
+pull_request_async_merges
\ No newline at end of file diff --git a/website/docs/services/pulls/pull_request/index.md b/website/docs/services/pulls/pull_request/index.md index fa90c3c..345c45b 100644 --- a/website/docs/services/pulls/pull_request/index.md +++ b/website/docs/services/pulls/pull_request/index.md @@ -261,6 +261,11 @@ Pass the appropriate [media type](https://docs.github.com/rest/using-the-rest-ap string (uri) (example: https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments) + + + object + The stack information associated with a pull request. (title: Pull Request Stack) + string @@ -443,6 +448,7 @@ requested_teams, review_comment_url, review_comments, review_comments_url, +stack, state, statuses_url, title, @@ -539,6 +545,7 @@ requested_teams, review_comment_url, review_comments, review_comments_url, +stack, state, statuses_url, title, @@ -664,6 +671,7 @@ requested_teams, review_comment_url, review_comments, review_comments_url, +stack, state, statuses_url, title, diff --git a/website/docs/services/pulls/pull_request_async_merges/index.md b/website/docs/services/pulls/pull_request_async_merges/index.md new file mode 100644 index 0000000..3987216 --- /dev/null +++ b/website/docs/services/pulls/pull_request_async_merges/index.md @@ -0,0 +1,192 @@ +--- +title: pull_request_async_merges +hide_title: false +hide_table_of_contents: false +keywords: + - pull_request_async_merges + - pulls + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a pull_request_async_merges resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +the current result of the asynchronous merge request + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
objectWhen an asynchronous merge request was created or already existed
string (pending, merged, enqueued, failed)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repo, pull_number, uuidFetches the current result of an asynchronous merge request, identified by the UUID that was returned when the merge was requested.

While the merge is still queued, the response includes the UUID, merge method, and expected head SHA of the request. Once the merge has completed, the response reports whether it was merged, including the merge commit OID on success or a message describing why it could not be merged on failure.

The result of an asynchronous merge request is retained for 24 hours after its most recent update. After this window the request expires and this endpoint returns a `404` response for its UUID.
owner, repo, pull_numberMerges a pull request into the base branch in the background. Merging in this way allows certain types of errors to be retried, and avoids the risk of timeouts for particularly complex merges.

This is the required method for merging stacked PRs, but also supports unstacked PRs. When using this endpoint to merge a stacked pull request, all pull requests in the stack up to and including the requested PR will be merged into the base branch.

The response includes a UUID that can be used to fetch the result of the merge. If another asynchronous merge request has already been made for this pull request, the UUID of that request will be returned instead with a 409 response status to indicate that the merge options may be different from those that were requested. If there isn't an existing asynchronous merge request, a 202 response status is used.

If the pull request is already merged, the merge commit OID will be returned immediately with a 200 status.

If the pull request cannot be merged (e.g. because it is closed, or still a draft) this result will be returned immediately with a 400 response status. Branch protection rules and repository rules are not run at this stage, only basic pull request state checks are performed.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe account owner of the repository. The name is not case sensitive.
integerThe number that identifies the pull request.
stringThe name of the repository without the `.git` extension. The name is not case sensitive.
stringThe UUID of the asynchronous merge request, as returned when the merge was requested.
+ +## `SELECT` examples + + + + +Fetches the current result of an asynchronous merge request, identified by the UUID that was returned when the merge was requested.

While the merge is still queued, the response includes the UUID, merge method, and expected head SHA of the request. Once the merge has completed, the response reports whether it was merged, including the merge commit OID on success or a message describing why it could not be merged on failure.

The result of an asynchronous merge request is retained for 24 hours after its most recent update. After this window the request expires and this endpoint returns a `404` response for its UUID. + +```sql +SELECT +details, +status +FROM github.pulls.pull_request_async_merges +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +AND pull_number = '{{ pull_number }}' -- required +AND uuid = '{{ uuid }}' -- required +; +``` +
+
+ + +## Lifecycle Methods + + + + +Merges a pull request into the base branch in the background. Merging in this way allows certain types of errors to be retried, and avoids the risk of timeouts for particularly complex merges.

This is the required method for merging stacked PRs, but also supports unstacked PRs. When using this endpoint to merge a stacked pull request, all pull requests in the stack up to and including the requested PR will be merged into the base branch.

The response includes a UUID that can be used to fetch the result of the merge. If another asynchronous merge request has already been made for this pull request, the UUID of that request will be returned instead with a 409 response status to indicate that the merge options may be different from those that were requested. If there isn't an existing asynchronous merge request, a 202 response status is used.

If the pull request is already merged, the merge commit OID will be returned immediately with a 200 status.

If the pull request cannot be merged (e.g. because it is closed, or still a draft) this result will be returned immediately with a 400 response status. Branch protection rules and repository rules are not run at this stage, only basic pull request state checks are performed. + +```sql +EXEC github.pulls.pull_request_async_merges.merge_async +@owner='{{ owner }}' --required, +@repo='{{ repo }}' --required, +@pull_number='{{ pull_number }}' --required +@@json= +'{ +"commit_title": "{{ commit_title }}", +"commit_message": "{{ commit_message }}", +"sha": "{{ sha }}", +"merge_method": "{{ merge_method }}", +"merge_action": "{{ merge_action }}" +}' +; +``` +
+
diff --git a/website/docs/services/pulls/pull_requests/index.md b/website/docs/services/pulls/pull_requests/index.md index 39dbcf6..a9be9bc 100644 --- a/website/docs/services/pulls/pull_requests/index.md +++ b/website/docs/services/pulls/pull_requests/index.md @@ -201,6 +201,11 @@ Response string (uri) (example: https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments) + + + object + The stack information associated with a pull request. (title: Pull Request Stack) + string @@ -366,6 +371,7 @@ requested_reviewers, requested_teams, review_comment_url, review_comments_url, +stack, state, statuses_url, title, diff --git a/website/docs/services/pulls/review_requests/index.md b/website/docs/services/pulls/review_requests/index.md index 5091010..c61a0a4 100644 --- a/website/docs/services/pulls/review_requests/index.md +++ b/website/docs/services/pulls/review_requests/index.md @@ -220,6 +220,7 @@ requested_reviewers, requested_teams, review_comment_url, review_comments_url, +stack, state, statuses_url, title, diff --git a/website/docs/services/pulls/review_threads/index.md b/website/docs/services/pulls/review_threads/index.md new file mode 100644 index 0000000..a9c4d15 --- /dev/null +++ b/website/docs/services/pulls/review_threads/index.md @@ -0,0 +1,202 @@ +--- +title: review_threads +hide_title: false +hide_table_of_contents: false +keywords: + - review_threads + - pulls + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a review_threads resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe GraphQL node ID of the thread.
objectThe comments in the thread (`total_count`, `nodes[]` with `id`, `url`, `body`, `created_at`, `author.login`).
stringLEFT or RIGHT.
boolean
booleanWhether the thread is on a line that has since changed.
boolean
integerThe line in the diff the thread is attached to.
stringThe file the thread is attached to.
objectThe user who resolved the thread (`login`).
integerThe first line of a multi-line comment range.
stringLINE or FILE.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repo, pull_numberReview comment threads on a pull request with their resolved / outdated state and the comments in each thread. Backed by the GitHub GraphQL API (`pullRequest.reviewThreads`); the REST API does not expose thread resolution.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe account owner of the repository.
integerThe number that identifies the pull request.
stringThe name of the repository.
+ +## `SELECT` examples + + + + +Review comment threads on a pull request with their resolved / outdated state and the comments in each thread. Backed by the GitHub GraphQL API (`pullRequest.reviewThreads`); the REST API does not expose thread resolution. + +```sql +SELECT +id, +comments, +diff_side, +is_collapsed, +is_outdated, +is_resolved, +line, +path, +resolved_by, +start_line, +subject_type +FROM github.pulls.review_threads +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +AND pull_number = '{{ pull_number }}' -- required +; +``` + + diff --git a/website/docs/services/pulls/stacks/index.md b/website/docs/services/pulls/stacks/index.md new file mode 100644 index 0000000..af68e6f --- /dev/null +++ b/website/docs/services/pulls/stacks/index.md @@ -0,0 +1,405 @@ +--- +title: stacks +hide_title: false +hide_table_of_contents: false +keywords: + - stacks + - pulls + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a stacks resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer
string
object
string (date-time)
integer
booleanWhether the stack has any open pull request. False when all pull requests are merged or closed.
array
string (uri)
+
+ + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integer
string
object
string (date-time)
integer
booleanWhether the stack has any open pull request. False when all pull requests are merged or closed.
array
string (uri)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repo, stack_numberGets a pull request stack by providing its stack number.
owner, repopull_request, per_page, pageLists pull request stacks in a repository.
owner, repo, pull_requestsCreates a stack from an ordered list of pull request numbers. Provide the pull
request numbers from the bottom of the stack to the top. Each pull request's
base ref must match the previous pull request's head ref.
owner, repo, stack_number, pull_requestsAppends an ordered list of pull request numbers onto the top of an existing
stack. Provide only the pull requests you want to add, from the current top of
the stack upward. The first new pull request's base ref must match the current
top pull request's head ref.
owner, repo, stack_numberRemoves the unmerged pull requests from a stack. Pull requests that cannot be
unstacked (for example, those that are queued for merge) are left in place. When pull requests remain in the stack, the updated
stack is returned with a `200`. When no pull requests remain, the stack is
dissolved and a `204` is returned.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe account owner of the repository. The name is not case sensitive.
stringThe name of the repository without the `.git` extension. The name is not case sensitive.
integerThe number that identifies the pull request stack.
integerThe 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)."
integerThe 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)."
integerFilter to the stack containing this repository pull request number.
+ +## `SELECT` examples + + + + +Gets a pull request stack by providing its stack number. + +```sql +SELECT +id, +node_id, +base, +created_at, +number, +open, +pull_requests, +url +FROM github.pulls.stacks +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +AND stack_number = '{{ stack_number }}' -- required +; +``` + + + +Lists pull request stacks in a repository. + +```sql +SELECT +id, +node_id, +base, +created_at, +number, +open, +pull_requests, +url +FROM github.pulls.stacks +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +AND pull_request = '{{ pull_request }}' +AND per_page = '{{ per_page }}' +AND page = '{{ page }}' +; +``` + + + + +## `INSERT` examples + + + + +Creates a stack from an ordered list of pull request numbers. Provide the pull
request numbers from the bottom of the stack to the top. Each pull request's
base ref must match the previous pull request's head ref. + +```sql +INSERT INTO github.pulls.stacks ( +pull_requests, +owner, +repo +) +SELECT +'{{ pull_requests }}' /* required */, +'{{ owner }}', +'{{ repo }}' +RETURNING +id, +node_id, +base, +created_at, +number, +open, +pull_requests, +url +; +``` +
+ + +{`# Description fields are for documentation purposes +- name: stacks + props: + - name: owner + value: "{{ owner }}" + description: Required parameter for the stacks resource. + - name: repo + value: "{{ repo }}" + description: Required parameter for the stacks resource. + - name: pull_requests + value: + - {{ pull_requests }} + description: | + An ordered list of pull request numbers forming the stack from bottom to top. +`} + + +
+ + +## Lifecycle Methods + + + + +Appends an ordered list of pull request numbers onto the top of an existing
stack. Provide only the pull requests you want to add, from the current top of
the stack upward. The first new pull request's base ref must match the current
top pull request's head ref. + +```sql +EXEC github.pulls.stacks.add +@owner='{{ owner }}' --required, +@repo='{{ repo }}' --required, +@stack_number='{{ stack_number }}' --required +@@json= +'{ +"pull_requests": "{{ pull_requests }}" +}' +; +``` +
+ + +Removes the unmerged pull requests from a stack. Pull requests that cannot be
unstacked (for example, those that are queued for merge) are left in place. When pull requests remain in the stack, the updated
stack is returned with a `200`. When no pull requests remain, the stack is
dissolved and a `204` is returned. + +```sql +EXEC github.pulls.stacks.unstack +@owner='{{ owner }}' --required, +@repo='{{ repo }}' --required, +@stack_number='{{ stack_number }}' --required +; +``` +
+
diff --git a/website/docs/services/rate_limit/rate_limit/index.md b/website/docs/services/rate_limit/rate_limit/index.md index 15254c0..2a2bb08 100644 --- a/website/docs/services/rate_limit/rate_limit/index.md +++ b/website/docs/services/rate_limit/rate_limit/index.md @@ -86,7 +86,7 @@ The following methods are available for this resource: - > [!NOTE]
> Accessing this endpoint does not count against your REST API rate limit.

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)."

> [!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. + > [!NOTE]
> Accessing this endpoint does not count against your REST API rate limit.

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 `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)."

> [!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. @@ -117,7 +117,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -> [!NOTE]
> Accessing this endpoint does not count against your REST API rate limit.

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)."

> [!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. +> [!NOTE]
> Accessing this endpoint does not count against your REST API rate limit.

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 `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)."

> [!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. ```sql SELECT diff --git a/website/docs/services/repos/comments/index.md b/website/docs/services/repos/comments/index.md index 0c7350b..9d882fd 100644 --- a/website/docs/services/repos/comments/index.md +++ b/website/docs/services/repos/comments/index.md @@ -341,7 +341,7 @@ The following methods are available for this resource: owner, repo, commit_sha, body - Create a comment for a commit using its `:commit_sha`.

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-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`. + Create a comment for a commit using its `:commit_sha`.

Access to commit comments can be controlled by organization owners. For more information, see "[Managing commit comments for your organization](https://docs.github.com/organizations/managing-organization-settings/managing-commit-comments-for-your-organization)".

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-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`. @@ -514,7 +514,7 @@ AND page = '{{ page }}' > -Create a comment for a commit using its `:commit_sha`.

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-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`. +Create a comment for a commit using its `:commit_sha`.

Access to commit comments can be controlled by organization owners. For more information, see "[Managing commit comments for your organization](https://docs.github.com/organizations/managing-organization-settings/managing-commit-comments-for-your-organization)".

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-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`. ```sql INSERT INTO github.repos.comments ( diff --git a/website/docs/services/repos/commit_pr_branches/index.md b/website/docs/services/repos/commit_pr_branches/index.md index 3e62361..354da9d 100644 --- a/website/docs/services/repos/commit_pr_branches/index.md +++ b/website/docs/services/repos/commit_pr_branches/index.md @@ -201,6 +201,11 @@ Response string (uri) (example: https://api.github.com/repos/octocat/Hello-World/pulls/1347/comments) + + + object + The stack information associated with a pull request. (title: Pull Request Stack) + string @@ -346,6 +351,7 @@ requested_reviewers, requested_teams, review_comment_url, review_comments_url, +stack, state, statuses_url, title, diff --git a/website/docs/services/repos/hash_algorithm/index.md b/website/docs/services/repos/hash_algorithm/index.md new file mode 100644 index 0000000..3dc4de6 --- /dev/null +++ b/website/docs/services/repos/hash_algorithm/index.md @@ -0,0 +1,136 @@ +--- +title: hash_algorithm +hide_title: false +hide_table_of_contents: false +keywords: + - hash_algorithm + - repos + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a hash_algorithm resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe Git hash algorithm used by this repository. (sha1, sha256) (example: sha1)
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repoReturns the hash algorithm used to store repository objects.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe account owner of the repository. The name is not case sensitive.
stringThe name of the repository without the `.git` extension. The name is not case sensitive.
+ +## `SELECT` examples + + + + +Returns the hash algorithm used to store repository objects. + +```sql +SELECT +hash_algorithm +FROM github.repos.hash_algorithm +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +; +``` + + diff --git a/website/docs/services/repos/index.md b/website/docs/services/repos/index.md index 4b7068c..ca75b2b 100644 --- a/website/docs/services/repos/index.md +++ b/website/docs/services/repos/index.md @@ -18,7 +18,7 @@ repos service documentation. :::info[Service Summary] -total resources: __73__ +total resources: __75__ ::: @@ -56,14 +56,16 @@ total resources: __73__ details
environments
forks
+hash_algorithm
head_commit_branches
invitations
+issue_types
page_build_latest
page_builds
-pages
-pages_health_check +pages
+pages_health_check
pr_review_protection
private_vulnerability_reporting
protection_rules
diff --git a/website/docs/services/repos/issue_types/index.md b/website/docs/services/repos/issue_types/index.md new file mode 100644 index 0000000..cb4bd9f --- /dev/null +++ b/website/docs/services/repos/issue_types/index.md @@ -0,0 +1,178 @@ +--- +title: issue_types +hide_title: false +hide_table_of_contents: false +keywords: + - issue_types + - repos + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an issue_types resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integerThe unique identifier of the issue type.
stringThe name of the issue type.
stringThe node identifier of the issue type.
stringThe color of the issue type. (gray, blue, green, yellow, orange, red, pink, purple)
string (date-time)The time the issue type created.
stringThe description of the issue type.
booleanThe enabled state of the issue type.
string (date-time)The time the issue type last updated.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repoLists issue types available for a repository (inherited from its organization owner, with any per-repository overrides applied).
OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.
Fine-grained access tokens require the "Metadata" repository permission (read).
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe account owner of the repository. The name is not case sensitive.
stringThe name of the repository without the `.git` extension. The name is not case sensitive.
+ +## `SELECT` examples + + + + +Lists issue types available for a repository (inherited from its organization owner, with any per-repository overrides applied).
OAuth app tokens and personal access tokens (classic) need the `repo` scope to use this endpoint.
Fine-grained access tokens require the "Metadata" repository permission (read). + +```sql +SELECT +id, +name, +node_id, +color, +created_at, +description, +is_enabled, +updated_at +FROM github.repos.issue_types +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +; +``` +
+
diff --git a/website/docs/services/repos/releases/index.md b/website/docs/services/repos/releases/index.md index 45e31b8..5e39915 100644 --- a/website/docs/services/repos/releases/index.md +++ b/website/docs/services/repos/releases/index.md @@ -506,14 +506,14 @@ The following methods are available for this resource: owner, repo, tag_name - 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)." + Users with push access to the repository can create a release.

> [!NOTE]
> If the commit identified by `target_commitish` (or, when `target_commitish` is omitted, the latest commit on the default branch) adds or modifies any file under `.github/workflows/` relative to the repository's default branch, the authenticating token must be authorized to modify workflows. Otherwise, this endpoint returns `404 Not Found`; some authentication paths surface `403 Resource not accessible by integration` instead.

OAuth app tokens and personal access tokens (classic) need the `workflow` scope when the resolved target commit modifies workflow files. Fine-grained access tokens and GitHub App installation tokens also need the "Workflows" repository permission (write). The `GITHUB_TOKEN` available to GitHub Actions cannot be authorized for this; for more information, see "[Automatic token authentication](https://docs.github.com/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token)".

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)." owner, repo, release_id - Users with push access to the repository can edit a release. + Users with push access to the repository can edit a release.

> [!NOTE]
> If the resolved target commit (the new value of `target_commitish` if you are changing it, otherwise the existing target) adds or modifies any file under `.github/workflows/` relative to the repository's default branch, the authenticating token must be authorized to modify workflows. Otherwise, this endpoint returns `404 Not Found`; some authentication paths surface `403 Resource not accessible by integration` instead.

OAuth app tokens and personal access tokens (classic) need the `workflow` scope when the resolved target commit modifies workflow files. Fine-grained access tokens and GitHub App installation tokens also need the "Workflows" repository permission (write). The `GITHUB_TOKEN` available to GitHub Actions cannot be authorized for this; for more information, see "[Automatic token authentication](https://docs.github.com/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token)". @@ -717,7 +717,7 @@ AND page = '{{ page }}' > -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)." +Users with push access to the repository can create a release.

> [!NOTE]
> If the commit identified by `target_commitish` (or, when `target_commitish` is omitted, the latest commit on the default branch) adds or modifies any file under `.github/workflows/` relative to the repository's default branch, the authenticating token must be authorized to modify workflows. Otherwise, this endpoint returns `404 Not Found`; some authentication paths surface `403 Resource not accessible by integration` instead.

OAuth app tokens and personal access tokens (classic) need the `workflow` scope when the resolved target commit modifies workflow files. Fine-grained access tokens and GitHub App installation tokens also need the "Workflows" repository permission (write). The `GITHUB_TOKEN` available to GitHub Actions cannot be authorized for this; for more information, see "[Automatic token authentication](https://docs.github.com/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token)".

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)." ```sql INSERT INTO github.repos.releases ( @@ -842,7 +842,7 @@ zipball_url > -Users with push access to the repository can edit a release. +Users with push access to the repository can edit a release.

> [!NOTE]
> If the resolved target commit (the new value of `target_commitish` if you are changing it, otherwise the existing target) adds or modifies any file under `.github/workflows/` relative to the repository's default branch, the authenticating token must be authorized to modify workflows. Otherwise, this endpoint returns `404 Not Found`; some authentication paths surface `403 Resource not accessible by integration` instead.

OAuth app tokens and personal access tokens (classic) need the `workflow` scope when the resolved target commit modifies workflow files. Fine-grained access tokens and GitHub App installation tokens also need the "Workflows" repository permission (write). The `GITHUB_TOKEN` available to GitHub Actions cannot be authorized for this; for more information, see "[Automatic token authentication](https://docs.github.com/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token)". ```sql UPDATE github.repos.releases diff --git a/website/docs/services/repos/repos/index.md b/website/docs/services/repos/repos/index.md index b463fbc..b14bf7d 100644 --- a/website/docs/services/repos/repos/index.md +++ b/website/docs/services/repos/repos/index.md @@ -2416,6 +2416,8 @@ security_and_analysis = '{{ security_and_analysis }}', has_issues = {{ has_issues }}, has_projects = {{ has_projects }}, has_wiki = {{ has_wiki }}, +has_pull_requests = {{ has_pull_requests }}, +pull_request_creation_policy = '{{ pull_request_creation_policy }}', is_template = {{ is_template }}, default_branch = '{{ default_branch }}', allow_squash_merge = {{ allow_squash_merge }}, diff --git a/website/docs/services/repos/rule_suites/index.md b/website/docs/services/repos/rule_suites/index.md index 6a0792a..8ff138d 100644 --- a/website/docs/services/repos/rule_suites/index.md +++ b/website/docs/services/repos/rule_suites/index.md @@ -370,14 +370,14 @@ The following methods are available for this resource: owner, repo - ref, time_period, actor_name, rule_suite_result, per_page, page + ref, time_period, actor_name, rule_suite_result, evaluate_status, per_page, page 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)." org - ref, repository_name, time_period, actor_name, rule_suite_result, per_page, page + ref, repository_name, time_period, actor_name, rule_suite_result, evaluate_status, per_page, page 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)." @@ -421,6 +421,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# string The handle for the GitHub user account to filter on. When specified, only rule evaluations triggered by this actor will be returned. + + + string + The evaluate status to filter on. When specified, only rule suites resulting from rulesets with the specified evaluate status will be returned. - `all` - all rule suites will be returned. - `active` - only rule suites resulting from rulesets in active (non-evaluate) mode will be returned. - `evaluate` - only rule suites resulting from rulesets in evaluate mode will be returned. + integer @@ -538,6 +543,7 @@ AND ref = '{{ ref }}' AND time_period = '{{ time_period }}' AND actor_name = '{{ actor_name }}' AND rule_suite_result = '{{ rule_suite_result }}' +AND evaluate_status = '{{ evaluate_status }}' AND per_page = '{{ per_page }}' AND page = '{{ page }}' ; @@ -567,6 +573,7 @@ AND repository_name = '{{ repository_name }}' AND time_period = '{{ time_period }}' AND actor_name = '{{ actor_name }}' AND rule_suite_result = '{{ rule_suite_result }}' +AND evaluate_status = '{{ evaluate_status }}' AND per_page = '{{ per_page }}' AND page = '{{ page }}' ; diff --git a/website/docs/services/repos/status_check_contexts/index.md b/website/docs/services/repos/status_check_contexts/index.md index bc27109..79ed3ec 100644 --- a/website/docs/services/repos/status_check_contexts/index.md +++ b/website/docs/services/repos/status_check_contexts/index.md @@ -51,6 +51,11 @@ Response + + + string + +
@@ -147,7 +152,7 @@ Protected branches are available in public repositories with GitHub Free and Git ```sql SELECT -* +repos/get_all_status_check_context FROM github.repos.status_check_contexts WHERE owner = '{{ owner }}' -- required AND repo = '{{ repo }}' -- required @@ -183,6 +188,8 @@ SELECT '{{ owner }}', '{{ repo }}', '{{ branch }}' +RETURNING +repos/add_status_check_context ; ```
@@ -231,7 +238,9 @@ WHERE owner = '{{ owner }}' --required AND repo = '{{ repo }}' --required AND branch = '{{ branch }}' --required -AND contexts = '{{ contexts }}' --required; +AND contexts = '{{ contexts }}' --required +RETURNING +repos/set_status_check_context; ``` diff --git a/website/docs/services/repos/team_access_restrictions/index.md b/website/docs/services/repos/team_access_restrictions/index.md index 49285fc..f5e1bbe 100644 --- a/website/docs/services/repos/team_access_restrictions/index.md +++ b/website/docs/services/repos/team_access_restrictions/index.md @@ -76,6 +76,11 @@ Response integer Unique identifier of the organization to which this team belongs + + + string + How the team's access to the repository was granted. This property is only present when the team is returned in a repository context, such as `GET /repos/{owner}/{repo}/teams`. (direct, organization, enterprise) (example: direct) + string @@ -237,6 +242,7 @@ name, enterprise_id, node_id, organization_id, +access_source, description, html_url, members_url, @@ -290,6 +296,7 @@ name, enterprise_id, node_id, organization_id, +access_source, description, html_url, members_url, @@ -357,6 +364,7 @@ name, enterprise_id, node_id, organization_id, +access_source, description, html_url, members_url, diff --git a/website/docs/services/repos/teams/index.md b/website/docs/services/repos/teams/index.md index d19303f..da86378 100644 --- a/website/docs/services/repos/teams/index.md +++ b/website/docs/services/repos/teams/index.md @@ -76,6 +76,11 @@ Response integer Unique identifier of the organization to which this team belongs + + + string + How the team's access to the repository was granted. This property is only present when the team is returned in a repository context, such as `GET /repos/{owner}/{repo}/teams`. (direct, organization, enterprise) (example: direct) + string @@ -221,6 +226,7 @@ name, enterprise_id, node_id, organization_id, +access_source, description, html_url, members_url, diff --git a/website/docs/services/search/code/index.md b/website/docs/services/search/code/index.md index af0b75c..d045331 100644 --- a/website/docs/services/search/code/index.md +++ b/website/docs/services/search/code/index.md @@ -91,7 +91,7 @@ The following methods are available for this resource: q sort, order, per_page, page - 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/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:

`q=addClass+in:file+language:js+repo:jquery/jquery`

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:

Due to the complexity of searching code, there are a few restrictions on how searches are performed:

* Only the _default branch_ is considered. In most cases, this will be the `master` branch.
* Only files smaller than 384 KB are searchable.
* 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.

> [!NOTE]
> `repository.description`, `repository.owner.type`, and `repository.owner.node_id` are closing down on this endpoint and will return `null` in a future API version. Use the [Get a repository](https://docs.github.com/rest/repos/repos#get-a-repository) endpoint (`GET /repos/{owner}/{repo}`) to retrieve full repository metadata.

This endpoint requires you to authenticate and limits you to 10 requests per minute. + 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/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:

`q=addClass+in:file+language:js+repo:jquery/jquery`

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:

Due to the complexity of searching code, there are a few restrictions on how searches are performed:

* Only the _default branch_ is considered. In most cases, this will be the `master` branch.
* Only files smaller than 384 KB are searchable.
* 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.

This endpoint requires you to authenticate and limits you to 10 requests per minute. @@ -147,7 +147,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -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/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:

`q=addClass+in:file+language:js+repo:jquery/jquery`

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:

Due to the complexity of searching code, there are a few restrictions on how searches are performed:

* Only the _default branch_ is considered. In most cases, this will be the `master` branch.
* Only files smaller than 384 KB are searchable.
* 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.

> [!NOTE]
> `repository.description`, `repository.owner.type`, and `repository.owner.node_id` are closing down on this endpoint and will return `null` in a future API version. Use the [Get a repository](https://docs.github.com/rest/repos/repos#get-a-repository) endpoint (`GET /repos/{owner}/{repo}`) to retrieve full repository metadata.

This endpoint requires you to authenticate and limits you to 10 requests per minute. +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/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:

`q=addClass+in:file+language:js+repo:jquery/jquery`

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:

Due to the complexity of searching code, there are a few restrictions on how searches are performed:

* Only the _default branch_ is considered. In most cases, this will be the `master` branch.
* Only files smaller than 384 KB are searchable.
* 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.

This endpoint requires you to authenticate and limits you to 10 requests per minute. ```sql SELECT diff --git a/website/docs/services/secret_scanning/alerts/index.md b/website/docs/services/secret_scanning/alerts/index.md index 9330bc4..1567457 100644 --- a/website/docs/services/secret_scanning/alerts/index.md +++ b/website/docs/services/secret_scanning/alerts/index.md @@ -108,6 +108,11 @@ Response string (uri) The REST API URL of the code locations for this alert. + + + array + A list of metadata key/value pairs associated with the secret scanning alert. + boolean @@ -616,14 +621,14 @@ The following methods are available for this resource: owner, repo - state, secret_type, exclude_secret_types, exclude_providers, providers, resolution, assignee, sort, direction, page, per_page, before, after, validity, is_publicly_leaked, is_multi_repo, hide_secret + state, secret_type, exclude_secret_types, exclude_providers, providers, resolution, assignee, sort, direction, page, per_page, before, after, validity, is_publicly_leaked, is_multi_repo, hide_secret, is_bypassed, included_metadata, owner_email_hash 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.

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. org - state, secret_type, exclude_secret_types, exclude_providers, providers, resolution, assignee, sort, direction, page, per_page, before, after, validity, is_publicly_leaked, is_multi_repo, hide_secret + state, secret_type, exclude_secret_types, exclude_providers, providers, resolution, assignee, sort, direction, page, per_page, before, after, validity, is_publicly_leaked, is_multi_repo, hide_secret, is_bypassed, included_metadata, owner_email_hash 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. @@ -704,6 +709,16 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# boolean A boolean value representing whether or not to hide literal secrets in the results. + + + string + A comma-separated list of metadata fields to filter alerts by. Only alerts that have all of the specified metadata fields attached will be returned. Possible values are: `owner-email`, `owner-id`, `owner-name`, `secret-id`, `secret-name`, `secret-issued-date`, `secret-expiration-date`, `organization-name`, `organization-id`, `last-used-date`, and `has-organization-access`. + + + + boolean + A boolean value (`true` or `false`) indicating whether to filter alerts by their push protection bypass status. When set to `true`, only alerts that were created because a push protection rule was bypassed will be returned. When set to `false`, only alerts that were not caused by a push protection bypass will be returned. + boolean @@ -714,6 +729,11 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# boolean A boolean value representing whether or not to filter alerts by the publicly-leaked tag being present. + + + string + Filters alerts to only those whose attached `owner_email` metadata field matches the provided value. The value must be the lowercase hex-encoded SHA-256 hash of the email address to match (for example, the SHA-256 of `user@example.com`). Only alerts that have an `owner_email` metadata value whose SHA-256 hash equals this parameter are returned. + integer @@ -784,6 +804,7 @@ has_more_locations, html_url, is_base64_encoded, locations_url, +metadata, multi_repo, number, provider, @@ -873,6 +894,9 @@ AND validity = '{{ validity }}' AND is_publicly_leaked = '{{ is_publicly_leaked }}' AND is_multi_repo = '{{ is_multi_repo }}' AND hide_secret = '{{ hide_secret }}' +AND is_bypassed = '{{ is_bypassed }}' +AND included_metadata = '{{ included_metadata }}' +AND owner_email_hash = '{{ owner_email_hash }}' ; ```
@@ -935,6 +959,9 @@ AND validity = '{{ validity }}' AND is_publicly_leaked = '{{ is_publicly_leaked }}' AND is_multi_repo = '{{ is_multi_repo }}' AND hide_secret = '{{ hide_secret }}' +AND is_bypassed = '{{ is_bypassed }}' +AND included_metadata = '{{ included_metadata }}' +AND owner_email_hash = '{{ owner_email_hash }}' ; ``` @@ -959,13 +986,15 @@ SET state = '{{ state }}', resolution = '{{ resolution }}', resolution_comment = '{{ resolution_comment }}', -assignee = '{{ assignee }}' +assignee = '{{ assignee }}', +validity = '{{ validity }}' WHERE owner = '{{ owner }}' --required AND repo = '{{ repo }}' --required AND alert_number = '{{ alert_number }}' --required AND state = '{{ state }}' --required AND assignee = '{{ assignee }}' --required +AND validity = '{{ validity }}' --required RETURNING secret_type_display_name, assigned_to, @@ -978,6 +1007,7 @@ has_more_locations, html_url, is_base64_encoded, locations_url, +metadata, multi_repo, number, provider, diff --git a/website/docs/services/secret_scanning/index.md b/website/docs/services/secret_scanning/index.md index e5b8254..c6ced30 100644 --- a/website/docs/services/secret_scanning/index.md +++ b/website/docs/services/secret_scanning/index.md @@ -18,7 +18,7 @@ secret_scanning service documentation. :::info[Service Summary] -total resources: __5__ +total resources: __7__ ::: @@ -27,9 +27,11 @@ total resources: __5__ diff --git a/website/docs/services/secret_scanning/org_custom_patterns/index.md b/website/docs/services/secret_scanning/org_custom_patterns/index.md new file mode 100644 index 0000000..49ce411 --- /dev/null +++ b/website/docs/services/secret_scanning/org_custom_patterns/index.md @@ -0,0 +1,384 @@ +--- +title: org_custom_patterns +hide_title: false +hide_table_of_contents: false +keywords: + - org_custom_patterns + - secret_scanning + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists an org_custom_patterns resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integerThe ID of the custom pattern.
stringThe name of the custom pattern.
string (date-time)The date and time the custom pattern was created in ISO 8601 format.
stringThe 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.
stringThe end delimiter regex for the custom pattern.
arrayList of regexes that the secret must match.
arrayList of regexes that the secret must not match.
stringThe regular expression of the custom pattern.
booleanWhether push protection is enabled for this custom pattern.
stringA URL-friendly identifier for the custom pattern, derived from its name.
stringThe start delimiter regex for the custom pattern.
stringThe state of the custom pattern. (published, unpublished)
string (date-time)The date and time the custom pattern was last updated in ISO 8601 format.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
orgstate, push_protection, sort, direction, page, per_pageLists secret scanning custom patterns for an organization.

Personal access tokens (classic) need the `read:org` scope to use this endpoint.
org, patternsBulk creates secret scanning custom patterns for an organization.

Personal access tokens (classic) need the `write:org` scope to use this endpoint.
org, pattern_id, custom_pattern_version, pattern, start_delimiter, end_delimiter, must_match, must_not_matchUpdates a secret scanning custom pattern for an organization.

Personal access tokens (classic) need the `write:org` scope to use this endpoint.
orgBulk deletes secret scanning custom patterns for an organization.

Personal access tokens (classic) need the `write:org` scope to use this endpoint.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe organization name. The name is not case sensitive.
integerThe ID of the custom pattern.
stringThe direction to sort the results by.
integerThe 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)."
integerThe 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)."
stringFilter custom patterns by whether push protection is enabled. When absent, returns patterns regardless of push protection status.
stringThe property to sort the results by.
stringFilter custom patterns by state. When absent, returns patterns in all states.
+ +## `SELECT` examples + + + + +Lists secret scanning custom patterns for an organization.

Personal access tokens (classic) need the `read:org` scope to use this endpoint. + +```sql +SELECT +id, +name, +created_at, +custom_pattern_version, +end_delimiter, +must_match, +must_not_match, +pattern, +push_protection_enabled, +slug, +start_delimiter, +state, +updated_at +FROM github.secret_scanning.org_custom_patterns +WHERE org = '{{ org }}' -- required +AND state = '{{ state }}' +AND push_protection = '{{ push_protection }}' +AND sort = '{{ sort }}' +AND direction = '{{ direction }}' +AND page = '{{ page }}' +AND per_page = '{{ per_page }}' +; +``` +
+
+ + +## `INSERT` examples + + + + +Bulk creates secret scanning custom patterns for an organization.

Personal access tokens (classic) need the `write:org` scope to use this endpoint. + +```sql +INSERT INTO github.secret_scanning.org_custom_patterns ( +patterns, +org +) +SELECT +'{{ patterns }}' /* required */, +'{{ org }}' +RETURNING +created_patterns +; +``` +
+ + +{`# Description fields are for documentation purposes +- name: org_custom_patterns + props: + - name: org + value: "{{ org }}" + description: Required parameter for the org_custom_patterns resource. + - name: patterns + description: | + The list of custom patterns to create. + value: + - name: "{{ name }}" + pattern: "{{ pattern }}" + start_delimiter: "{{ start_delimiter }}" + end_delimiter: "{{ end_delimiter }}" + must_match: "{{ must_match }}" + must_not_match: "{{ must_not_match }}" +`} + + +
+ + +## `UPDATE` examples + + + + +Updates a secret scanning custom pattern for an organization.

Personal access tokens (classic) need the `write:org` scope to use this endpoint. + +```sql +UPDATE github.secret_scanning.org_custom_patterns +SET +pattern = '{{ pattern }}', +start_delimiter = '{{ start_delimiter }}', +end_delimiter = '{{ end_delimiter }}', +must_match = '{{ must_match }}', +must_not_match = '{{ must_not_match }}', +custom_pattern_version = '{{ custom_pattern_version }}' +WHERE +org = '{{ org }}' --required +AND pattern_id = '{{ pattern_id }}' --required +AND custom_pattern_version = '{{ custom_pattern_version }}' --required +AND pattern = '{{ pattern }}' --required +AND start_delimiter = '{{ start_delimiter }}' --required +AND end_delimiter = '{{ end_delimiter }}' --required +AND must_match = '{{ must_match }}' --required +AND must_not_match = '{{ must_not_match }}' --required +RETURNING +id, +name, +created_at, +custom_pattern_version, +end_delimiter, +must_match, +must_not_match, +pattern, +push_protection_enabled, +slug, +start_delimiter, +state, +updated_at; +``` +
+
+ + +## `DELETE` examples + + + + +Bulk deletes secret scanning custom patterns for an organization.

Personal access tokens (classic) need the `write:org` scope to use this endpoint. + +```sql +DELETE FROM github.secret_scanning.org_custom_patterns +WHERE org = '{{ org }}' --required +; +``` +
+
diff --git a/website/docs/services/secret_scanning/repo_custom_patterns/index.md b/website/docs/services/secret_scanning/repo_custom_patterns/index.md new file mode 100644 index 0000000..b580f8c --- /dev/null +++ b/website/docs/services/secret_scanning/repo_custom_patterns/index.md @@ -0,0 +1,397 @@ +--- +title: repo_custom_patterns +hide_title: false +hide_table_of_contents: false +keywords: + - repo_custom_patterns + - secret_scanning + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a repo_custom_patterns resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
integerThe ID of the custom pattern.
stringThe name of the custom pattern.
string (date-time)The date and time the custom pattern was created in ISO 8601 format.
stringThe 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.
stringThe end delimiter regex for the custom pattern.
arrayList of regexes that the secret must match.
arrayList of regexes that the secret must not match.
stringThe regular expression of the custom pattern.
booleanWhether push protection is enabled for this custom pattern.
stringA URL-friendly identifier for the custom pattern, derived from its name.
stringThe start delimiter regex for the custom pattern.
stringThe state of the custom pattern. (published, unpublished)
string (date-time)The date and time the custom pattern was last updated in ISO 8601 format.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
owner, repostate, push_protection, sort, direction, page, per_pageLists secret scanning custom patterns for a repository.

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.
owner, repo, patternsBulk creates secret scanning custom patterns for a repository.

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.
owner, repo, pattern_id, custom_pattern_version, pattern, start_delimiter, end_delimiter, must_match, must_not_matchUpdates a secret scanning custom pattern for a repository.

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.
owner, repoBulk deletes secret scanning custom patterns for a repository.

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.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe account owner of the repository. The name is not case sensitive.
integerThe ID of the custom pattern.
stringThe name of the repository without the `.git` extension. The name is not case sensitive.
stringThe direction to sort the results by.
integerThe 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)."
integerThe 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)."
stringFilter custom patterns by whether push protection is enabled. When absent, returns patterns regardless of push protection status.
stringThe property to sort the results by.
stringFilter custom patterns by state. When absent, returns patterns in all states.
+ +## `SELECT` examples + + + + +Lists secret scanning custom patterns for a repository.

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. + +```sql +SELECT +id, +name, +created_at, +custom_pattern_version, +end_delimiter, +must_match, +must_not_match, +pattern, +push_protection_enabled, +slug, +start_delimiter, +state, +updated_at +FROM github.secret_scanning.repo_custom_patterns +WHERE owner = '{{ owner }}' -- required +AND repo = '{{ repo }}' -- required +AND state = '{{ state }}' +AND push_protection = '{{ push_protection }}' +AND sort = '{{ sort }}' +AND direction = '{{ direction }}' +AND page = '{{ page }}' +AND per_page = '{{ per_page }}' +; +``` +
+
+ + +## `INSERT` examples + + + + +Bulk creates secret scanning custom patterns for a repository.

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. + +```sql +INSERT INTO github.secret_scanning.repo_custom_patterns ( +patterns, +owner, +repo +) +SELECT +'{{ patterns }}' /* required */, +'{{ owner }}', +'{{ repo }}' +RETURNING +created_patterns +; +``` +
+ + +{`# Description fields are for documentation purposes +- name: repo_custom_patterns + props: + - name: owner + value: "{{ owner }}" + description: Required parameter for the repo_custom_patterns resource. + - name: repo + value: "{{ repo }}" + description: Required parameter for the repo_custom_patterns resource. + - name: patterns + description: | + The list of custom patterns to create. + value: + - name: "{{ name }}" + pattern: "{{ pattern }}" + start_delimiter: "{{ start_delimiter }}" + end_delimiter: "{{ end_delimiter }}" + must_match: "{{ must_match }}" + must_not_match: "{{ must_not_match }}" +`} + + +
+ + +## `UPDATE` examples + + + + +Updates a secret scanning custom pattern for a repository.

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. + +```sql +UPDATE github.secret_scanning.repo_custom_patterns +SET +pattern = '{{ pattern }}', +start_delimiter = '{{ start_delimiter }}', +end_delimiter = '{{ end_delimiter }}', +must_match = '{{ must_match }}', +must_not_match = '{{ must_not_match }}', +custom_pattern_version = '{{ custom_pattern_version }}' +WHERE +owner = '{{ owner }}' --required +AND repo = '{{ repo }}' --required +AND pattern_id = '{{ pattern_id }}' --required +AND custom_pattern_version = '{{ custom_pattern_version }}' --required +AND pattern = '{{ pattern }}' --required +AND start_delimiter = '{{ start_delimiter }}' --required +AND end_delimiter = '{{ end_delimiter }}' --required +AND must_match = '{{ must_match }}' --required +AND must_not_match = '{{ must_not_match }}' --required +RETURNING +id, +name, +created_at, +custom_pattern_version, +end_delimiter, +must_match, +must_not_match, +pattern, +push_protection_enabled, +slug, +start_delimiter, +state, +updated_at; +``` +
+
+ + +## `DELETE` examples + + + + +Bulk deletes secret scanning custom patterns for a repository.

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. + +```sql +DELETE FROM github.secret_scanning.repo_custom_patterns +WHERE owner = '{{ owner }}' --required +AND repo = '{{ repo }}' --required +; +``` +
+
diff --git a/website/docs/services/secret_scanning/repo_secret_scan_history/index.md b/website/docs/services/secret_scanning/repo_secret_scan_history/index.md index 99456c9..8a891e6 100644 --- a/website/docs/services/secret_scanning/repo_secret_scan_history/index.md +++ b/website/docs/services/secret_scanning/repo_secret_scan_history/index.md @@ -61,6 +61,11 @@ Response array + + + array + + array @@ -96,7 +101,7 @@ The following methods are available for this resource: owner, repo - 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. + Lists the latest default incremental and backfill scans by type for a repository.

> [!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. @@ -137,12 +142,13 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -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. +Lists the latest default incremental and backfill scans by type for a repository.

> [!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. ```sql SELECT backfill_scans, custom_pattern_backfill_scans, +generic_secrets_backfill_scans, incremental_scans, pattern_update_scans FROM github.secret_scanning.repo_secret_scan_history diff --git a/website/docs/services/teams/child_teams/index.md b/website/docs/services/teams/child_teams/index.md index 21a1814..fa3b62e 100644 --- a/website/docs/services/teams/child_teams/index.md +++ b/website/docs/services/teams/child_teams/index.md @@ -77,6 +77,11 @@ if child teams exist integer Unique identifier of the organization to which this team belongs + + + string + How the team's access to the repository was granted. This property is only present when the team is returned in a repository context, such as `GET /repos/{owner}/{repo}/teams`. (direct, organization, enterprise) (example: direct) + string @@ -178,6 +183,11 @@ if child teams exist integer Unique identifier of the organization to which this team belongs + + + string + How the team's access to the repository was granted. This property is only present when the team is returned in a repository context, such as `GET /repos/{owner}/{repo}/teams`. (direct, organization, enterprise) (example: direct) + string @@ -336,6 +346,7 @@ name, enterprise_id, node_id, organization_id, +access_source, description, html_url, members_url, @@ -367,6 +378,7 @@ name, enterprise_id, node_id, organization_id, +access_source, description, html_url, members_url, diff --git a/website/docs/services/teams/members/index.md b/website/docs/services/teams/members/index.md index 2a07dbc..7473040 100644 --- a/website/docs/services/teams/members/index.md +++ b/website/docs/services/teams/members/index.md @@ -108,6 +108,11 @@ Response string (uri) (example: https://github.com/octocat) + + + boolean + Whether the user is a member of the team only through a child team. `true` means the membership is inherited from a child team; `false` means the user is a direct (immediate) member of the team. Only present on the `List team members` endpoint, and only when the feature is enabled for the organization. + string @@ -128,6 +133,11 @@ Response string (uri) (example: https://api.github.com/users/octocat/repos) + + + string + The member's role on the team. Only present on the `List team members` endpoint, and only when the feature is enabled for the organization. (member, maintainer) (example: member) + boolean @@ -250,6 +260,11 @@ Response string (uri) (example: https://github.com/octocat) + + + boolean + Whether the user is a member of the team only through a child team. `true` means the membership is inherited from a child team; `false` means the user is a direct (immediate) member of the team. Only present on the `List team members` endpoint, and only when the feature is enabled for the organization. + string @@ -270,6 +285,11 @@ Response string (uri) (example: https://api.github.com/users/octocat/repos) + + + string + The member's role on the team. Only present on the `List team members` endpoint, and only when the feature is enabled for the organization. (member, maintainer) (example: member) + boolean @@ -330,7 +350,7 @@ The following methods are available for this resource: org, team_slug role, per_page, page - Team members will include the members of child teams.

To list members in a team, the team must be visible to the authenticated user. + Team members will include the members of child teams.

Each member includes their `role` on the team (`member` or `maintainer`) and an `inherited` flag indicating whether the membership is inherited from a child team (`true`) or is a direct membership (`false`). These fields let you read a member's role and direct/inherited status without additional requests.

To list members in a team, the team must be visible to the authenticated user. @@ -344,7 +364,7 @@ The following methods are available for this resource: team_id role, per_page, page - > [!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. + > [!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.

Each member includes their `role` on the team (`member` or `maintainer`) and an `inherited` flag indicating whether the membership is inherited from a child team (`true`) or is a direct membership (`false`). @@ -426,7 +446,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -Team members will include the members of child teams.

To list members in a team, the team must be visible to the authenticated user. +Team members will include the members of child teams.

Each member includes their `role` on the team (`member` or `maintainer`) and an `inherited` flag indicating whether the membership is inherited from a child team (`true`) or is a direct membership (`false`). These fields let you read a member's role and direct/inherited status without additional requests.

To list members in a team, the team must be visible to the authenticated user. ```sql SELECT @@ -441,10 +461,12 @@ followers_url, following_url, gists_url, html_url, +inherited, login, organizations_url, received_events_url, repos_url, +role, site_admin, starred_at, starred_url, @@ -476,7 +498,7 @@ AND username = '{{ username }}' -- required
-> [!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. +> [!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.

Each member includes their `role` on the team (`member` or `maintainer`) and an `inherited` flag indicating whether the membership is inherited from a child team (`true`) or is a direct membership (`false`). ```sql SELECT @@ -491,10 +513,12 @@ followers_url, following_url, gists_url, html_url, +inherited, login, organizations_url, received_events_url, repos_url, +role, site_admin, starred_at, starred_url, diff --git a/website/docs/services/teams/repos/index.md b/website/docs/services/teams/repos/index.md index 013fbad..b339658 100644 --- a/website/docs/services/teams/repos/index.md +++ b/website/docs/services/teams/repos/index.md @@ -993,7 +993,7 @@ The following methods are available for this resource: org, team_slug per_page, page - 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`. + Lists a team's repositories visible to the authenticated user.

OAuth app tokens and personal access tokens (classic) need the `read:org` or `repo` scope to use this endpoint.

> [!NOTE]
> You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`. @@ -1081,7 +1081,7 @@ Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](# > -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`. +Lists a team's repositories visible to the authenticated user.

OAuth app tokens and personal access tokens (classic) need the `read:org` or `repo` scope to use this endpoint.

> [!NOTE]
> You can also specify a team by `org_id` and `team_id` using the route `GET /organizations/{org_id}/team/{team_id}/repos`. ```sql SELECT diff --git a/website/docs/services/teams/teams/index.md b/website/docs/services/teams/teams/index.md index e377571..11a55e6 100644 --- a/website/docs/services/teams/teams/index.md +++ b/website/docs/services/teams/teams/index.md @@ -77,6 +77,11 @@ Response integer Unique identifier of the organization to which this team belongs + + + string + How the team's access to the repository was granted. This property is only present when the team is returned in a repository context, such as `GET /repos/{owner}/{repo}/teams`. (direct, organization, enterprise) (example: direct) + string @@ -401,6 +406,7 @@ name, enterprise_id, node_id, organization_id, +access_source, description, html_url, members_url, @@ -480,6 +486,7 @@ privacy, notification_setting, permission, parent_team_id, +parent_team_slug, org ) SELECT @@ -491,6 +498,7 @@ SELECT '{{ notification_setting }}', '{{ permission }}', {{ parent_team_id }}, +'{{ parent_team_slug }}', '{{ org }}' RETURNING id, @@ -574,6 +582,10 @@ url value: {{ parent_team_id }} description: | The ID of a team to set as the parent team. + - name: parent_team_slug + value: "{{ parent_team_slug }}" + description: | + The slug of a team to set as the parent team. Ignored when \`parent_team_id\` is also provided. `}
@@ -601,7 +613,8 @@ description = '{{ description }}', privacy = '{{ privacy }}', notification_setting = '{{ notification_setting }}', permission = '{{ permission }}', -parent_team_id = {{ parent_team_id }} +parent_team_id = {{ parent_team_id }}, +parent_team_slug = '{{ parent_team_slug }}' WHERE org = '{{ org }}' --required AND team_slug = '{{ team_slug }}' --required @@ -642,7 +655,8 @@ description = '{{ description }}', privacy = '{{ privacy }}', notification_setting = '{{ notification_setting }}', permission = '{{ permission }}', -parent_team_id = {{ parent_team_id }} +parent_team_id = {{ parent_team_id }}, +parent_team_slug = '{{ parent_team_slug }}' WHERE team_id = '{{ team_id }}' --required AND name = '{{ name }}' --required diff --git a/website/docs/services/users/contribution_calendar/index.md b/website/docs/services/users/contribution_calendar/index.md new file mode 100644 index 0000000..400d85a --- /dev/null +++ b/website/docs/services/users/contribution_calendar/index.md @@ -0,0 +1,148 @@ +--- +title: contribution_calendar +hide_title: false +hide_table_of_contents: false +keywords: + - contribution_calendar + - users + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a contribution_calendar resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
arrayDaily entries for the week: `date`, `weekday` (0 = Sunday), `contribution_count`, `color`.
string (date)The date of the first day (Sunday) of the week.
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
usernamefrom, toA user's contribution calendar (the profile contribution graph), one row per week with the daily counts as a JSON array - expand with `json_each`. Defaults to the trailing year; pass `from` and `to` (ISO 8601 timestamps, at most one year apart) for another window. Backed by the GitHub GraphQL API (`user.contributionsCollection.contributionCalendar`).
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe handle for the GitHub user account.
string (date-time)Only contributions made at this time or later will be counted. ISO 8601, e.g. 2025-01-01T00:00:00Z.
string (date-time)Only contributions made before and up to this time will be counted. ISO 8601.
+ +## `SELECT` examples + + + + +A user's contribution calendar (the profile contribution graph), one row per week with the daily counts as a JSON array - expand with `json_each`. Defaults to the trailing year; pass `from` and `to` (ISO 8601 timestamps, at most one year apart) for another window. Backed by the GitHub GraphQL API (`user.contributionsCollection.contributionCalendar`). + +```sql +SELECT +contribution_days, +first_day +FROM github.users.contribution_calendar +WHERE username = '{{ username }}' -- required +AND from = '{{ from }}' +AND to = '{{ to }}' +; +``` + + diff --git a/website/docs/services/users/index.md b/website/docs/services/users/index.md index 54edf27..0fcb50c 100644 --- a/website/docs/services/users/index.md +++ b/website/docs/services/users/index.md @@ -18,7 +18,7 @@ users service documentation. :::info[Service Summary] -total resources: __15__ +total resources: __17__ ::: @@ -29,6 +29,7 @@ total resources: __15__ attestations_bulk_deletes
attestations_bulk_list
blocking
+contribution_calendar
emails
followers
following
@@ -40,6 +41,7 @@ total resources: __15__ public_emails
public_users
social_accounts
+sponsorships
ssh_signing_keys
users
diff --git a/website/docs/services/users/sponsorships/index.md b/website/docs/services/users/sponsorships/index.md new file mode 100644 index 0000000..1ccaa79 --- /dev/null +++ b/website/docs/services/users/sponsorships/index.md @@ -0,0 +1,166 @@ +--- +title: sponsorships +hide_title: false +hide_table_of_contents: false +keywords: + - sponsorships + - users + - github + - infrastructure-as-code + - configuration-as-data + - cloud inventory +description: Query, deploy and manage github resources using SQL +custom_edit_url: null +image: /img/stackql-github-provider-featured-image.png +--- + +import CopyableCode from '@site/src/components/CopyableCode/CopyableCode'; +import CodeBlock from '@theme/CodeBlock'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +Creates, updates, deletes, gets or lists a sponsorships resource. + +## Overview + + + + +
Name
TypeResource
Id
+ +## Fields + +The following fields are returned by `SELECT` queries: + + + + +Response + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe GraphQL node ID of the sponsorship.
string (date-time)
boolean
boolean
stringPUBLIC or PRIVATE.
objectThe sponsoring user or organization (`login`, `name`).
objectThe sponsorship tier (`name`, `monthly_price_in_dollars`, `monthly_price_in_cents`, `is_one_time`).
+
+
+ +## Methods + +The following methods are available for this resource: + + + + + + + + + + + + + + + + + + + + +
NameAccessible byRequired ParamsOptional ParamsDescription
usernameGitHub Sponsors sponsorships where the user is the maintainer being sponsored. Backed by the GitHub GraphQL API (`user.sponsorshipsAsMaintainer`). Private sponsorships are only visible to the sponsored account.
+ +## Parameters + +Parameters can be passed in the `WHERE` clause of a query. Check the [Methods](#methods) section to see which parameters are required or optional for each operation. + + + + + + + + + + + + + + + + +
NameDatatypeDescription
stringThe handle for the GitHub user account.
+ +## `SELECT` examples + + + + +GitHub Sponsors sponsorships where the user is the maintainer being sponsored. Backed by the GitHub GraphQL API (`user.sponsorshipsAsMaintainer`). Private sponsorships are only visible to the sponsored account. + +```sql +SELECT +id, +created_at, +is_active, +is_one_time_payment, +privacy_level, +sponsor_entity, +tier +FROM github.users.sponsorships +WHERE username = '{{ username }}' -- required +; +``` + + diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index db49fe7..f5ed868 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -133,6 +133,11 @@ const config = { // Remove this to remove the "edit this page" links. // editUrl: 'https://github.com/stackql/stackql-deploy/tree/main/website/', routeBasePath: '/', // Set the docs to be the root of the site + // Date-stamp every doc page ("Last updated on ..."). Timestamps come + // from git history, so the regenerated docs tree must be committed + // after each provider refresh for pages to carry the refresh date + // (the deploy workflow checks out with fetch-depth: 0 for this). + showLastUpdateTime: true, }, theme: { customCss: './src/css/custom.css',