From 0a4f3e7dab601d833b7a9e449994980ed0c76497 Mon Sep 17 00:00:00 2001 From: jmarlena <6732600+jmarlena@users.noreply.github.com> Date: Wed, 17 Feb 2021 17:02:10 -0800 Subject: [PATCH] Self-serve package deletion and restoration (#17695) * New article title & reposition article * Update links * Remove "Deleting a container image" article * Reusable shuffle * Add GHES versioned article * more context * Revise main article * Reminder of permissions * Update some copy * Add "deleting a package" to TOC * Add versioning around links * Update restore package procedure * Update permissions statements * Fix GHES link * Apply suggestions from code review Co-authored-by: Martin Lopes * Use "entire" language * GraphQL nuance * New intro + actions * Fix GHES link * Package deletion 2.0 follow up (#17855) * Remove GHES 3.1 versioning * 3.0 or less * Revert "Remove GHES 3.1 versioning" This reverts commit 9bbc0bd57c1c7ba23097f3f4b9a830c13941402c. * Revert "3.0 or less" This reverts commit dfd2f48e4a4da62c2594fbeaeb12eacda5afc6d4. * Revert "Revert "Remove GHES 3.1 versioning"" This reverts commit ef90065eb2883041b15bd2d50f97e4f07cf04768. * Ditch unnecessary package namespace references and rework permissions framing * Add placeholder note so PR tests will pass * Add versioning around package deletion mentions outside of main deletion articles * Add placeholder around link so it will go live * Add `audit_log` entries * Apply suggestions from code review Co-authored-by: Shati Patel <42641846+shati-patel@users.noreply.github.com> * Apply Shati's suggestion * Remove duplicate line Co-authored-by: Shati Patel <42641846+shati-patel@users.noreply.github.com> * Package deletion 2.0 last updates (#17880) * Update versioning and placeholder note * syntax improvement * Note the 25 downloads caveat * Add more headings * Apply suggestions from code review * Apply suggestions from code review * Apply suggestions from code review Co-authored-by: Sarah Edwards * Apply suggestions from code review * Apply suggestions from code review * Packages REST API page (#17808) * Add draft of packages REST page * Add packages in TOC * Rewrite Packages API introductory info * Fix space * Rewrite conceptual API intro content * Revise this line * Apply suggestions from code review * Apply suggestions from code review * Apply suggestions from code review Co-authored-by: Mark Phelps * Add rewrite * Add de dereferenced files * Add the decorated files * ALL of the decorated files * Revert "ALL of the decorated files" This reverts commit 38f13dcd75078f2eacb53dfd0b31c79737966656. * Revert "Add the decorated files" This reverts commit b0c8a2096c8b19e62404585f97298ab42822d3e5. * Revert "Add de dereferenced files" This reverts commit abd377c8eb804e9c69dffa9b0c01ec64fb500727. * Commit the lib/rest/static files to preview changes on staging * Revert "Commit the lib/rest/static files to preview changes on staging" This reverts commit acb121ae9d8bd2e23b00ebb14848e7b83aeddf5b. Co-authored-by: Mark Phelps * Commit static files to preview endpoints on staging * Update references to API support * remove static rest api files * ditch "as a user" for now * Rearrange based on feedback * Last tidbits * Update OpenAPI Descriptions (#17893) * Update OpenAPI Descriptions * Add decorated OpenAPI schema files * link fix Co-authored-by: Martin Lopes Co-authored-by: Shati Patel <42641846+shati-patel@users.noreply.github.com> Co-authored-by: Sarah Edwards Co-authored-by: Mark Phelps Co-authored-by: github-openapi-bot <69533958+github-openapi-bot@users.noreply.github.com> --- .../confirm-package-version-restoration.png | Bin 0 -> 43209 bytes .../package-version-deletion-confirmation.png | Bin 0 -> 37044 bytes ...e-option-for-deleted-package-in-an-org.png | Bin 0 -> 39437 bytes .../restore-package-version.png | Bin 0 -> 20561 bytes .../type-package-name-and-restore-button.png | Bin 0 -> 45571 bytes .../versions-drop-down-menu.png | Bin 0 -> 8611 bytes .../developers/apps/scopes-for-oauth-apps.md | 2 +- ...y-permission-levels-for-an-organization.md | 4 +- ...ing-the-audit-log-for-your-organization.md | 22 +- ...on-levels-for-a-user-account-repository.md | 2 +- .../guides/about-github-container-registry.md | 4 +- ...ache-maven-for-use-with-github-packages.md | 2 +- ...ing-docker-for-use-with-github-packages.md | 2 +- ...dotnet-cli-for-use-with-github-packages.md | 2 +- ...ing-gradle-for-use-with-github-packages.md | 22 +- ...guring-npm-for-use-with-github-packages.md | 4 +- ...g-rubygems-for-use-with-github-packages.md | 52 +- .../guides/deleting-a-container-image.md | 65 - content/packages/guides/index.md | 2 - .../about-github-packages.md | 18 +- .../deleting-a-package.md | 43 +- .../deleting-and-restoring-a-package.md | 249 + .../packages/learn-github-packages/index.md | 2 + content/packages/manage-packages/index.md | 3 +- content/packages/quickstart.md | 8 +- content/rest/reference/index.md | 1 + content/rest/reference/packages.md | 28 + .../package-settings-from-org-level.md | 3 - .../package-settings-from-user-level.md | 3 - .../package-settings-option.md | 3 + lib/rest/static/decorated/api.github.com.json | 1643 ++++ .../dereferenced/api.github.com.deref.json | 7866 +++++++++++++++++ 32 files changed, 9881 insertions(+), 174 deletions(-) create mode 100644 assets/images/help/package-registry/confirm-package-version-restoration.png create mode 100644 assets/images/help/package-registry/package-version-deletion-confirmation.png create mode 100644 assets/images/help/package-registry/restore-option-for-deleted-package-in-an-org.png create mode 100644 assets/images/help/package-registry/restore-package-version.png create mode 100644 assets/images/help/package-registry/type-package-name-and-restore-button.png create mode 100644 assets/images/help/package-registry/versions-drop-down-menu.png delete mode 100644 content/packages/guides/deleting-a-container-image.md rename content/packages/{manage-packages => learn-github-packages}/deleting-a-package.md (69%) create mode 100644 content/packages/learn-github-packages/deleting-and-restoring-a-package.md create mode 100644 content/rest/reference/packages.md create mode 100644 data/reusables/package_registry/package-settings-option.md diff --git a/assets/images/help/package-registry/confirm-package-version-restoration.png b/assets/images/help/package-registry/confirm-package-version-restoration.png new file mode 100644 index 0000000000000000000000000000000000000000..ede5b4fd6cd8233aebb7140c1a2f8eef702186ad GIT binary patch literal 43209 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 literal 0 HcmV?d00001 diff --git a/assets/images/help/package-registry/package-version-deletion-confirmation.png b/assets/images/help/package-registry/package-version-deletion-confirmation.png new file mode 100644 index 0000000000000000000000000000000000000000..5e5fb79fd848045d18ec3b7afcc9e6bf7015192e GIT binary patch literal 37044 zcmc$`V{|0l8}^$_l8Gm_ZQHgnv28o)7!%vc1QXku*tTuk&fD|+*Lyylk7upZYjyYT zuBv_4U0thcU-$Lf9j+)Z0S|)>0|Ej9FC{6e3<3fw4QxL`eFwhQs7-bO-$0#}C4@n$ zCUH-IA4E+xq|D^xK&XLjC=k#vOAzpXs{o(az$XX@SS~0C81NnR-*>s+{_j#y>0Ge? z+Xi|3w<37SVmkM=fz5`?-54GH!-=u;^=0Jb=!is7jBxpCt=qJ4aKGBP?aRr@3GV(9 zZGEM^g#+;w09%l5jLY91$;lJ8KIG>Qu2Lwp9faiI;)42#kdc)oJT+#&h}^Jf;M?W% zqTFP+M#STO@#D~LxuZY)>wbmhWcGtYv&;8SOAF_ht&!i^iZ(i}4(X0?$=S=@k?{Iv zvPYNo6Mmh^Ngd*uw>lre9zIqStNltF-hD-!OltM7`nj#4GvjHqQ%0!ZV34ENjlWO( zGk=B@BlMufZyz3TI0lxM)Hl^V4Yl*olThi+r?L~V8?9tEUZeL{AI_%PZBTxJYi5wM zk&x^C5jWCZigfdn`Uj zfXb`?sWYQql-p86fSNRxS{-LR6breCfrnN6B(H}p24RspUn;5vqyNdJCHc8Z-VIO z7zYN4FtXZsw%;2PS?BWNG!jSDvHsUxp-489h(^6CB^8lYDuEOo29wUyiw zNN{-KOs8aT@Xf*biZiqGBCb>lZRvP=5I?OB?bA#crP3d%*#dkgJlJv8B;8IQveVj~ z-J>IlxuU70C@f~ltQJSp*(A#ZQb(hKgX3CbX4r=U*?3_cUERhURR3nXt(4L^Gio!P zh6D;3@(T0W{nFh)F+$(=7N^~Ps&pRvP7}!-`5y#a#MX?rrXGC*8JJE@ZNeLglTv8=`Kh6t~zkh(=>F$I3( za{8#U+pgp>TODlzm|b6SsZ`p63*?fCMPa9YzbjfM&9naY5J*f;Q#=?=iTBY5kd39# zr5^EjPP5_?Q6fkWP3oE+Un4nzB|a`zYR{H9sz6OW?0)oXXRzBtgSH8?(INM|zUPWX z z;SKviu((x`DttQ_jWhj=dt_#hLKVV(rVKuKOAXEGUP1X+rFNH4O7D23ZZ-e>%~=^1 zyVb1h?;c)?iwka-{v%s1_yDaAGd#54Los-%8Lp?6npS4A=R=Vg3?}nwwRP@W{0piI zIb1YB-x1>9o-W6d%a`J$lE@jVGpX-0+3X>RI@Ep(Ia{x^Rnls;V`5u-R8EyS_Ycq1 z!Fc`}YrtYLoyjNbrq4PQO5~o-ZgWW-h)k7?!kjThb;yF&@c{r#o`;pX_kYbgoi9UU z@tTy(w%C7xo=n%)!{IP7`{OfMf>%1Spob2{a*0>EMDf;Aez4g^q0+|bv)iqcP6bGL zL1_)UB*J|�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

1?fFVm^0rvS5xKx^tb=s6M)lr+6NcHsuLbW< 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 R3B~{b002ovPDHLkV1jtrS|k7f literal 0 HcmV?d00001 diff --git a/assets/images/help/package-registry/restore-option-for-deleted-package-in-an-org.png b/assets/images/help/package-registry/restore-option-for-deleted-package-in-an-org.png new file mode 100644 index 0000000000000000000000000000000000000000..65886f23a42d2af1b0003f0155a544803f117e2f GIT binary patch literal 39437 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 literal 0 HcmV?d00001 diff --git a/assets/images/help/package-registry/restore-package-version.png b/assets/images/help/package-registry/restore-package-version.png new file mode 100644 index 0000000000000000000000000000000000000000..ce140d8b708240c5468eb24a4c95c08de11f891c GIT binary patch literal 20561 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 literal 0 HcmV?d00001 diff --git a/assets/images/help/package-registry/type-package-name-and-restore-button.png b/assets/images/help/package-registry/type-package-name-and-restore-button.png new file mode 100644 index 0000000000000000000000000000000000000000..17174c742edd2928560c55a9885d5fc2c827999c GIT binary patch literal 45571 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

Ij~@N-pfikLySU3l{I5k>7Q%Y37y& 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 literal 0 HcmV?d00001 diff --git a/content/developers/apps/scopes-for-oauth-apps.md b/content/developers/apps/scopes-for-oauth-apps.md index 25189f08f1..29a3c06f2f 100644 --- a/content/developers/apps/scopes-for-oauth-apps.md +++ b/content/developers/apps/scopes-for-oauth-apps.md @@ -69,7 +69,7 @@ Name | Description  `read:discussion` | Allows read access for team discussions.{% if currentVersion == "free-pro-team@latest" %} **`write:packages`** | Grants access to upload or publish a package in {% data variables.product.prodname_registry %}. For more information, see "[Publishing a package](/github/managing-packages-with-github-packages/publishing-a-package)". **`read:packages`** | Grants access to download or install packages from {% data variables.product.prodname_registry %}. For more information, see "[Installing a package](/github/managing-packages-with-github-packages/installing-a-package)". -**`delete:packages`** | Grants access to delete packages from {% data variables.product.prodname_registry %}. For more information, see "[Deleting packages](/github/managing-packages-with-github-packages/deleting-a-package)".{% endif %} +**`delete:packages`** | Grants access to delete packages from {% data variables.product.prodname_registry %}. For more information, see "[Deleting packages](/packages/learn-github-packages/deleting-and-restoring-a-package)".{% endif %} **`admin:gpg_key`** | Fully manage GPG keys.  `write:gpg_key`| Create, list, and view details for GPG keys.  `read:gpg_key`| List and view details for GPG keys.{% if currentVersion == "free-pro-team@latest" %} diff --git a/content/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization.md b/content/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization.md index 35e2885103..a4c6c09b13 100644 --- a/content/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization.md +++ b/content/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization.md @@ -90,7 +90,7 @@ In addition to managing organization-level settings, organization owners have ad | Edit a repository's description | | | | **X** | **X** |{% if currentVersion == "free-pro-team@latest" %} | [View and install packages](/packages/publishing-and-managing-packages) | **X** | **X** | **X** | **X** | **X** | | [Publish packages](/packages/publishing-and-managing-packages/publishing-a-package) | | | **X** | **X** | **X** | -| [Delete packages](/packages/publishing-and-managing-packages/deleting-a-package) | | | | | **X** | {% endif %} +| [Delete packages](/packages/learn-github-packages/deleting-and-restoring-a-package) | | | | | **X** | {% endif %} | Manage [topics](/articles/classifying-your-repository-with-topics) | | | | **X** | **X** | | Enable wikis and restrict wiki editors | | | | **X** | **X** | | Enable project boards | | | | **X** | **X** | @@ -140,7 +140,7 @@ In this section, you can find the repository permission levels required for secu | Receive [{% data variables.product.prodname_dependabot_alerts %} for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies) in a repository | | | | | **X** | | [Dismiss {% data variables.product.prodname_dependabot_alerts %}](/github/managing-security-vulnerabilities/viewing-and-updating-vulnerable-dependencies-in-your-repository) | | | | | **X** | | [Designate additional people or teams to receive {% data variables.product.prodname_dependabot_alerts %}](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository#granting-access-to-security-alerts) for vulnerable dependencies | | | | | **X** | -| Create [security advisories](/github/managing-security-vulnerabilities/about-github-security-advisories) | | | | | **X** |{% endif %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.22" %} +| Create [security advisories](/github/managing-security-vulnerabilities/about-github-security-advisories) | | | | | **X** |{% endif %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.22" %} | Manage access to {% data variables.product.prodname_GH_advanced_security %} features (see "[Managing security and analysis settings for your organization](/github/setting-up-and-managing-organizations-and-teams/managing-security-and-analysis-settings-for-your-organization)") | | | | | **X** |{% endif %}{% if currentVersion == "free-pro-team@latest" %} | [Enable the dependency graph](/github/visualizing-repository-data-with-graphs/exploring-the-dependencies-and-dependents-of-a-repository) for a private repository | | | | | **X** | | [View dependency reviews](/github/collaborating-with-issues-and-pull-requests/reviewing-dependency-changes-in-a-pull-request) | **X** | **X** | **X** | **X** | **X** |{% endif %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.21" %} diff --git a/content/github/setting-up-and-managing-organizations-and-teams/reviewing-the-audit-log-for-your-organization.md b/content/github/setting-up-and-managing-organizations-and-teams/reviewing-the-audit-log-for-your-organization.md index 2cd186affb..a6319f264d 100644 --- a/content/github/setting-up-and-managing-organizations-and-teams/reviewing-the-audit-log-for-your-organization.md +++ b/content/github/setting-up-and-managing-organizations-and-teams/reviewing-the-audit-log-for-your-organization.md @@ -49,7 +49,8 @@ To search for specific events, use the `action` qualifier in your query. Actions | [`org`](#org-category-actions) | Contains activities related to organization membership.{% if currentVersion == "free-pro-team@latest" %} | [`org_credential_authorization`](#org_credential_authorization-category-actions) | Contains all activities related to authorizing credentials for use with SAML single sign-on.{% endif %}{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.19" or currentVersion == "github-ae@latest" %} | [`organization_label`](#organization_label-category-actions) | Contains all activities related to default labels for repositories in your organization.{% endif %} -| [`oauth_application`](#oauth_application-category-actions) | Contains all activities related to OAuth Apps. {% if currentVersion == "free-pro-team@latest" %} +| [`oauth_application`](#oauth_application-category-actions) | Contains all activities related to OAuth Apps.{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" %} +| [`packages`](#packages-category-actions) | Contains all activities related to {% data variables.product.prodname_registry %}.{% endif %}{% if currentVersion == "free-pro-team@latest" %} | [`payment_method`](#payment_method-category-actions) | Contains all activities related to how your organization pays for GitHub.{% endif %} | [`profile_picture`](#profile_picture-category-actions) | Contains all activities related to your organization's profile picture. | [`project`](#project-category-actions) | Contains all activities related to project boards. @@ -127,7 +128,7 @@ To ensure a secure IP and maintain compliance for your organization, you can use {% data reusables.audit_log.audit-log-api-info %} {% if currentVersion == "free-pro-team@latest" %} -Note that you can't retrieve Git events using the GraphQL API. To retrieve Git events, use the REST API instead. For more information, see "[`git` category actions](#git-category-actions)." +Note that you can't retrieve Git events using the GraphQL API. To retrieve Git events, use the REST API instead. For more information, see "[`git` category actions](#git-category-actions)." {% endif %} The GraphQL response can include data for up to 90 to 120 days. @@ -140,7 +141,7 @@ For example, you can make a GraphQL request to see all the new organization memb {% note %} -**Note:** The audit log REST API is available as a public beta for users of {% data variables.product.prodname_ghe_cloud %} only. +**Note:** The audit log REST API is available as a public beta for users of {% data variables.product.prodname_ghe_cloud %} only. {% endnote %} @@ -249,7 +250,7 @@ An overview of some of the most common actions that are recorded as events in th {% note %} -**Note:** To access Git events in the audit log, you must use the audit log REST API. This functionality is available as a public beta for users of {% data variables.product.prodname_ghe_cloud %} only. +**Note:** To access Git events in the audit log, you must use the audit log REST API. This functionality is available as a public beta for users of {% data variables.product.prodname_ghe_cloud %} only. For more information about the audit log REST API, see "[Organizations](/rest/reference/orgs#get-the-audit-log-for-an-organization)" in the REST API documentation. @@ -396,6 +397,19 @@ For more information, see "[Managing the publication of {% data variables.produc | `revoke_tokens` | Triggered when an {% data variables.product.prodname_oauth_app %}'s user tokens are revoked. | `transfer` | Triggered when an existing {% data variables.product.prodname_oauth_app %} is transferred to a new organization. +{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" %} +#### `packages` category actions + +| Action | Description | +|--------|-------------| +| `package_version_published` | Triggered when a package version is published. | +| `package_version_deleted` | Triggered when a specific package version is deleted. For more information, see "[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package)." +| `package_deleted` | Triggered when an entire package is deleted. For more information, see "[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package)." +| `package_version_restored` | Triggered when a specific package version is deleted. For more information, see "[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package)." +| `package_restored` | Triggered when an entire package is restored. For more information, see "[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package)." + +{% endif %} + {% if currentVersion == "free-pro-team@latest" %} #### `payment_method` category actions diff --git a/content/github/setting-up-and-managing-your-github-user-account/permission-levels-for-a-user-account-repository.md b/content/github/setting-up-and-managing-your-github-user-account/permission-levels-for-a-user-account-repository.md index d91ea722a5..04f6dd83c5 100644 --- a/content/github/setting-up-and-managing-your-github-user-account/permission-levels-for-a-user-account-repository.md +++ b/content/github/setting-up-and-managing-your-github-user-account/permission-levels-for-a-user-account-repository.md @@ -36,7 +36,7 @@ The repository owner has full control of the repository. In addition to the acti | Manage the repository's topics | "[Classifying your repository with topics](/github/administering-a-repository/classifying-your-repository-with-topics)" |{% if currentVersion == "free-pro-team@latest" %} | Manage security and analysis settings for the repository | "[Managing security and analysis settings for your repository](/github/administering-a-repository/managing-security-and-analysis-settings-for-your-repository)" |{% endif %}{% if currentVersion == "free-pro-team@latest" %} | Enable the dependency graph for a private repository | "[Exploring the dependencies of a repository](/github/visualizing-repository-data-with-graphs/exploring-the-dependencies-of-a-repository#enabling-and-disabling-the-dependency-graph-for-a-private-repository)" |{% endif %}{% if currentVersion == "free-pro-team@latest" %} -| Delete packages | "[Deleting a package](/github/managing-packages-with-github-packages/deleting-a-package)" |{% endif %} +| Delete packages | "[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package)" |{% endif %} | Customize the repository's social media preview | "[Customizing your repository's social media preview](/github/administering-a-repository/customizing-your-repositorys-social-media-preview)" | | Create a template from the repository | "[Creating a template repository](/github/creating-cloning-and-archiving-repositories/creating-a-template-repository)" |{% if currentVersion == "free-pro-team@latest" or enterpriseServerVersions contains currentVersion %} | Receive {% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@2.21" %}{% data variables.product.prodname_dependabot_alerts %}{% else %}security alerts{% endif %} for vulnerable dependencies | "[About alerts for vulnerable dependencies](/github/managing-security-vulnerabilities/about-alerts-for-vulnerable-dependencies)" |{% endif %}{% if currentVersion == "free-pro-team@latest" %} diff --git a/content/packages/guides/about-github-container-registry.md b/content/packages/guides/about-github-container-registry.md index 7a6984309c..70ca2942cd 100644 --- a/content/packages/guides/about-github-container-registry.md +++ b/content/packages/guides/about-github-container-registry.md @@ -2,7 +2,7 @@ title: About GitHub Container Registry intro: 'You can use {% data variables.product.prodname_github_container_registry %} to seamlessly host and manage Docker container images in your organization or personal user account on {% data variables.product.prodname_dotcom %}. {% data variables.product.prodname_github_container_registry %} allows you to configure who can manage and access packages using fine-grained permissions.' product: '{% data reusables.gated-features.packages %}' -redirect_from: +redirect_from: - /packages/getting-started-with-github-container-registry/about-github-container-registry - /packages/managing-container-images-with-github-container-registry versions: @@ -74,7 +74,7 @@ To use or manage a package hosted by a package registry, you must use a token wi | --- | --- | |`read:packages`| Download and install container images from {% data variables.product.prodname_github_container_registry %} | |`write:packages`| Upload and publish container images to {% data variables.product.prodname_github_container_registry %} | -| `delete:packages` | Delete specified versions of private or public container images from {% data variables.product.prodname_github_container_registry %}. For more information, see "[Deleting a container image](/packages/guides/deleting-a-container-image)." | +| `delete:packages` | Delete specified versions of private or public container images from {% data variables.product.prodname_github_container_registry %}. For more information, see "{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif currentVersion ver_lt "enterprise-server@3.0" %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}." | To learn about available scopes and permissions for container images, see "[Configuring access control and visibility for container images](/packages/guides/configuring-access-control-and-visibility-for-container-images)." diff --git a/content/packages/guides/configuring-apache-maven-for-use-with-github-packages.md b/content/packages/guides/configuring-apache-maven-for-use-with-github-packages.md index 802d3b7db8..0ea1460fc7 100644 --- a/content/packages/guides/configuring-apache-maven-for-use-with-github-packages.md +++ b/content/packages/guides/configuring-apache-maven-for-use-with-github-packages.md @@ -190,4 +190,4 @@ To install an Apache Maven package from {% data variables.product.prodname_regis ### Further reading - "[Configuring Gradle for use with {% data variables.product.prodname_registry %}](/packages/guides/configuring-gradle-for-use-with-github-packages)" -- "[Deleting a package](/packages/manage-packages/deleting-a-package/)" +- "{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif currentVersion ver_lt "enterprise-server@3.0" %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}." diff --git a/content/packages/guides/configuring-docker-for-use-with-github-packages.md b/content/packages/guides/configuring-docker-for-use-with-github-packages.md index 00e7013af8..0b46e533b1 100644 --- a/content/packages/guides/configuring-docker-for-use-with-github-packages.md +++ b/content/packages/guides/configuring-docker-for-use-with-github-packages.md @@ -266,4 +266,4 @@ $ docker pull HOSTNAME/OWNER/REPOSITORY/IMAGE_NAME:TAG_NAME ### Further reading -- "[Deleting a package](/packages/publishing-and-managing-packages/deleting-a-package/)" +- "{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif currentVersion ver_lt "enterprise-server@3.0" %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}." diff --git a/content/packages/guides/configuring-dotnet-cli-for-use-with-github-packages.md b/content/packages/guides/configuring-dotnet-cli-for-use-with-github-packages.md index f2b081a26a..3a48e2e9ab 100644 --- a/content/packages/guides/configuring-dotnet-cli-for-use-with-github-packages.md +++ b/content/packages/guides/configuring-dotnet-cli-for-use-with-github-packages.md @@ -220,4 +220,4 @@ Using packages from {% data variables.product.prodname_dotcom %} in your project ### Further reading -- "[Deleting a package](/packages/publishing-and-managing-packages/deleting-a-package/)" +- "{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif currentVersion ver_lt "enterprise-server@3.0" %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}." diff --git a/content/packages/guides/configuring-gradle-for-use-with-github-packages.md b/content/packages/guides/configuring-gradle-for-use-with-github-packages.md index d84b907b01..eb3d6632f7 100644 --- a/content/packages/guides/configuring-gradle-for-use-with-github-packages.md +++ b/content/packages/guides/configuring-gradle-for-use-with-github-packages.md @@ -147,22 +147,22 @@ subprojects { } } ``` - + #### Authenticating with the `GITHUB_TOKEN` - + {% data reusables.package_registry.package-registry-with-github-tokens %} - + For more information about using `GITHUB_TOKEN` with Maven, see "[Publishing Java packages with Maven](/actions/language-and-framework-guides/publishing-java-packages-with-maven#publishing-packages-to-github-packages)." - + ### Publishing a package - + {% data reusables.package_registry.default-name %} For example, {% data variables.product.prodname_dotcom %} will publish a package named `com.example.test` in the `OWNER/test` {% data variables.product.prodname_registry %} repository. - + {% data reusables.package_registry.viewing-packages %} - + {% data reusables.package_registry.authenticate-step %} 2. After creating your package, you can publish the package. - + ```shell $ gradle publish ``` @@ -201,9 +201,9 @@ You can install a package by adding the package as a dependency to your project. `maven` } ``` - + 3. Install the package. - + ```shell $ gradle install ``` @@ -211,4 +211,4 @@ You can install a package by adding the package as a dependency to your project. ### Further reading - "[Configuring Apache Maven for use with {% data variables.product.prodname_registry %}](/packages/using-github-packages-with-your-projects-ecosystem/configuring-apache-maven-for-use-with-github-packages)" -- "[Deleting a package](/packages/publishing-and-managing-packages/deleting-a-package/)" +- "{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif currentVersion ver_lt "enterprise-server@3.0" %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}." diff --git a/content/packages/guides/configuring-npm-for-use-with-github-packages.md b/content/packages/guides/configuring-npm-for-use-with-github-packages.md index b46ddd2ff8..661a4a6c6e 100644 --- a/content/packages/guides/configuring-npm-for-use-with-github-packages.md +++ b/content/packages/guides/configuring-npm-for-use-with-github-packages.md @@ -23,7 +23,7 @@ If you publish over 1,000 npm package versions to {% data variables.product.prod In the future, to improve performance of the service, you won't be able to publish more than 1,000 versions of a package on {% data variables.product.prodname_dotcom %}. Any versions published before hitting this limit will still be readable. -If you reach this limit, consider deleting package versions or contact Support for help. When this limit is enforced, our documentation will be updated with a way to work around this limit. For more information, see "[Deleting a package](/packages/manage-packages/deleting-a-package)" or "[Contacting Support](/packages/learn-github-packages/about-github-packages#contacting-support)." +If you reach this limit, consider deleting package versions or contact Support for help. When this limit is enforced, our documentation will be updated with a way to work around this limit. For more information, see "{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif currentVersion ver_lt "enterprise-server@3.0" %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}" or "[Contacting Support](/packages/learn-github-packages/about-github-packages#contacting-support)." {% endif %} @@ -213,4 +213,4 @@ registry=https://HOSTNAME/_registry/npm/OWNER ### Further reading -- "[Deleting a package](/packages/publishing-and-managing-packages/deleting-a-package/)" +- "{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif currentVersion ver_lt "enterprise-server@3.0" %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}." diff --git a/content/packages/guides/configuring-rubygems-for-use-with-github-packages.md b/content/packages/guides/configuring-rubygems-for-use-with-github-packages.md index dd4d915aba..95ee9b221c 100644 --- a/content/packages/guides/configuring-rubygems-for-use-with-github-packages.md +++ b/content/packages/guides/configuring-rubygems-for-use-with-github-packages.md @@ -23,46 +23,46 @@ versions: ```shell $ gem --version ``` - + - You must have bundler 1.6.4 or higher. To find your Bundler version: ```shell $ bundle --version Bundler version 1.13.7 ``` - + - Install keycutter to manage multiple credentials. To install keycutter: ```shell $ gem install keycutter ``` - + ### Authenticating to {% data variables.product.prodname_registry %} - + {% data reusables.package_registry.authenticate-packages %} - + #### Authenticating with a personal access token - + {% data reusables.package_registry.required-scopes %} - + You can authenticate to {% data variables.product.prodname_registry %} with RubyGems by editing the *~/.gem/credentials* file for publishing gems, editing the *~/.gemrc* file for installing a single gem, or using Bundler for tracking and installing one or more gems. - + To publish new gems, you need to authenticate to {% data variables.product.prodname_registry %} with RubyGems by editing your *~/.gem/credentials* file to include your personal access token. Create a new *~/.gem/credentials* file if this file doesn't exist. - + For example, you would create or edit a *~/.gem/credentials* to include the following, replacing *TOKEN* with your personal access token. - + ```shell --- :github: Bearer TOKEN ``` - + To install gems, you need to authenticate to {% data variables.product.prodname_registry %} by editing the *~/.gemrc* file for your project to include `https://USERNAME:TOKEN@{% if currentVersion == "free-pro-team@latest" %}rubygems.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER/`. You must replace: - `USERNAME` with your {% data variables.product.prodname_dotcom %} username. - `TOKEN` with your personal access token. - `OWNER` with the name of the user or organization account that owns the repository containing your project.{% if enterpriseServerVersions contains currentVersion %} - `REGISTRY-URL` with the URL for your instance's Rubygems registry. If your instance has subdomain isolation enabled, use `rubygems.HOSTNAME`. If your instance has subdomain isolation disabled, use `HOSTNAME/_registry/rubygems`. In either case, replace *HOSTNAME* with the hostname of your {% data variables.product.prodname_ghe_server %} instance. -{% endif %} - +{% endif %} + If you don't have a *~/.gemrc* file, create a new *~/.gemrc* file using this example. - + ```shell --- :backtrace: false @@ -74,29 +74,29 @@ If you don't have a *~/.gemrc* file, create a new *~/.gemrc* file using this exa :verbose: true ``` - -To authenticate with Bundler, configure Bundler to use your personal access token, replacing *USERNAME* with your {% data variables.product.prodname_dotcom %} username, *TOKEN* with your personal access token, and *OWNER* with the name of the user or organization account that owns the repository containing your project.{% if enterpriseServerVersions contains currentVersion %} Replace `REGISTRY-URL` with the URL for your instance's Rubygems registry. If your instance has subdomain isolation enabled, use `rubygems.HOSTNAME`. If your instance has subdomain isolation disabled, use `HOSTNAME/_registry/rubygems`. In either case, replace *HOSTNAME* with the hostname of your {% data variables.product.prodname_ghe_server %} instance.{% endif %} - + +To authenticate with Bundler, configure Bundler to use your personal access token, replacing *USERNAME* with your {% data variables.product.prodname_dotcom %} username, *TOKEN* with your personal access token, and *OWNER* with the name of the user or organization account that owns the repository containing your project.{% if enterpriseServerVersions contains currentVersion %} Replace `REGISTRY-URL` with the URL for your instance's Rubygems registry. If your instance has subdomain isolation enabled, use `rubygems.HOSTNAME`. If your instance has subdomain isolation disabled, use `HOSTNAME/_registry/rubygems`. In either case, replace *HOSTNAME* with the hostname of your {% data variables.product.prodname_ghe_server %} instance.{% endif %} + ```shell $ bundle config https://{% if currentVersion == "free-pro-team@latest" %}rubygems.pkg.github.com{% else %}REGISTRY-URL{% endif %}/OWNER USERNAME:TOKEN ``` - + #### Authenticating with the `GITHUB_TOKEN` - + {% data reusables.package_registry.package-registry-with-github-tokens %} - + ### Publishing a package {% data reusables.package_registry.default-name %} For example, when you publish `octo-gem` to the `octo-org` organization, {% data variables.product.prodname_registry %} publishes the gem to the `octo-org/octo-gem` repository. For more information on creating your gem, see "[Make your own gem](http://guides.rubygems.org/make-your-own-gem/)" in the RubyGems documentation. - + {% data reusables.package_registry.viewing-packages %} - + {% data reusables.package_registry.authenticate-step %} 2. Build the package from the *gemspec* to create the *.gem* package. ```shell gem build OCTO-GEM.gemspec ``` -3. Publish a package to {% data variables.product.prodname_registry %}, replacing `OWNER` with the name of the user or organization account that owns the repository containing your project and `OCTO-GEM` with the name of your gem package.{% if enterpriseServerVersions contains currentVersion %} Replace `REGISTRY-URL` with the URL for your instance's Rubygems registry. If your instance has subdomain isolation enabled, use `rubygems.HOSTNAME`. If your instance has subdomain isolation disabled, use `HOSTNAME/_registry/rubygems`. In either case, replace *HOSTNAME* with the host name of your {% data variables.product.prodname_ghe_server %} instance.{% endif %} +3. Publish a package to {% data variables.product.prodname_registry %}, replacing `OWNER` with the name of the user or organization account that owns the repository containing your project and `OCTO-GEM` with the name of your gem package.{% if enterpriseServerVersions contains currentVersion %} Replace `REGISTRY-URL` with the URL for your instance's Rubygems registry. If your instance has subdomain isolation enabled, use `rubygems.HOSTNAME`. If your instance has subdomain isolation disabled, use `HOSTNAME/_registry/rubygems`. In either case, replace *HOSTNAME* with the host name of your {% data variables.product.prodname_ghe_server %} instance.{% endif %} ```shell $ gem push --key github \ @@ -106,7 +106,7 @@ $ bundle config https://{% if currentVersion == "free-pro-team@latest" %}rubygem ### Publishing multiple packages to the same repository -To publish multiple gems to the same repository, you can include the URL to the {% data variables.product.prodname_dotcom %} repository in the `github_repo` field in `gem.metadata`. If you include this field, {% data variables.product.prodname_dotcom %} matches the repository based on this value, instead of using the gem name.{% if enterpriseServerVersions contains currentVersion %} Replace *HOSTNAME* with the host name of your {% data variables.product.prodname_ghe_server %} instance.{% endif %} +To publish multiple gems to the same repository, you can include the URL to the {% data variables.product.prodname_dotcom %} repository in the `github_repo` field in `gem.metadata`. If you include this field, {% data variables.product.prodname_dotcom %} matches the repository based on this value, instead of using the gem name.{% if enterpriseServerVersions contains currentVersion %} Replace *HOSTNAME* with the host name of your {% data variables.product.prodname_ghe_server %} instance.{% endif %} ```ruby gem.metadata = { "github_repo" => "ssh://{% if currentVersion == "free-pro-team@latest" %}github.com{% else %}HOSTNAME{% endif %}/OWNER/REPOSITORY" } @@ -117,7 +117,7 @@ gem.metadata = { "github_repo" => "ssh://{% if currentVersion == "free-pro-team@ You can use gems from {% data variables.product.prodname_registry %} much like you use gems from *rubygems.org*. You need to authenticate to {% data variables.product.prodname_registry %} by adding your {% data variables.product.prodname_dotcom %} user or organization as a source in the *~/.gemrc* file or by using Bundler and editing you *Gemfile*. {% data reusables.package_registry.authenticate-step %} -2. For Bundler, add your {% data variables.product.prodname_dotcom %} user or organization as a source in your *Gemfile* to fetch gems from this new source. For example, you can add a new `source` block to your *Gemfile* that uses {% data variables.product.prodname_registry %} only for the packages you specify, replacing *GEM NAME* with the package you want to install from {% data variables.product.prodname_registry %} and *OWNER* with the user or organization that owns the repository containing the gem you want to install.{% if enterpriseServerVersions contains currentVersion %} Replace `REGISTRY-URL` with the URL for your instance's Rubygems registry. If your instance has subdomain isolation enabled, use `rubygems.HOSTNAME`. If your instance has subdomain isolation disabled, use `HOSTNAME/_registry/rubygems`. In either case, replace *HOSTNAME* with the host name of your {% data variables.product.prodname_ghe_server %} instance.{% endif %} +2. For Bundler, add your {% data variables.product.prodname_dotcom %} user or organization as a source in your *Gemfile* to fetch gems from this new source. For example, you can add a new `source` block to your *Gemfile* that uses {% data variables.product.prodname_registry %} only for the packages you specify, replacing *GEM NAME* with the package you want to install from {% data variables.product.prodname_registry %} and *OWNER* with the user or organization that owns the repository containing the gem you want to install.{% if enterpriseServerVersions contains currentVersion %} Replace `REGISTRY-URL` with the URL for your instance's Rubygems registry. If your instance has subdomain isolation enabled, use `rubygems.HOSTNAME`. If your instance has subdomain isolation disabled, use `HOSTNAME/_registry/rubygems`. In either case, replace *HOSTNAME* with the host name of your {% data variables.product.prodname_ghe_server %} instance.{% endif %} ```ruby source "https://rubygems.org" @@ -146,4 +146,4 @@ You can use gems from {% data variables.product.prodname_registry %} much like y ### Further reading -- "[Deleting a package](/packages/publishing-and-managing-packages/deleting-a-package/)" +- "{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif currentVersion ver_lt "enterprise-server@3.0" %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}." diff --git a/content/packages/guides/deleting-a-container-image.md b/content/packages/guides/deleting-a-container-image.md deleted file mode 100644 index 25c8007801..0000000000 --- a/content/packages/guides/deleting-a-container-image.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: Deleting a container image -intro: 'You can delete a specific version or all versions of a private or public container image on {% data variables.product.prodname_dotcom %}.' -product: '{% data reusables.gated-features.packages %}' -redirect_from: - - /packages/managing-container-images-with-github-container-registry/deleting-a-container-image -versions: - free-pro-team: '*' ---- - -{% data reusables.package_registry.container-registry-beta %} - -### About package deletion - -You can remove an entire container image or a specific version on {% data variables.product.prodname_dotcom %}. To delete a container image, you must use the UI. Using GraphQL to delete a container image is not supported at this time. - -To delete a container image, you must have admin permissions to the container image. - -When deleting public packages, be aware that you may break projects that depend on your package. - -### Deleting a version of a user-owned container image on {% data variables.product.prodname_dotcom %} - -To only delete specific versions of a container image, you can use these steps. To delete an entire package, see "[Deleting all versions of a user-owned container image on {% data variables.product.prodname_dotcom %}](#deleting-all-versions-of-a-user-owned-container-image-on-github)." - -{% data reusables.package_registry.package-settings-from-user-level %} -5. On the left, click **Manage versions**. -6. Optionally, to ensure you're seeing all of your package versions, use the "Type" drop down menu and select **All**. - ![Package version type drop down menu showing option to list all versions](/assets/images/help/package-registry/make-all-container-versions-visible.png) -5. To the right of the version you want to delete, click {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %} and select **Delete version**. - ![Delete package version button](/assets/images/help/package-registry/delete-container-package-version.png) -6. To confirm deletion, type the package name and click **I understand the consequences, delete this version**. - ![Confirm package deletion button](/assets/images/help/package-registry/confirm-container-package-version-deletion.png) - -### Deleting a version of an organization-owned container image on {% data variables.product.prodname_dotcom %} - -To only delete specific versions of a container image that you have admin , you can use these steps. To delete an entire package, see "[Deleting all versions of an organization-owned container image on {% data variables.product.prodname_dotcom %}](#deleting-all-versions-of-an-organization-owned-container-image-on-github)." - -{% data reusables.package_registry.package-settings-from-org-level %} -5. On the left, click **Manage versions**. -6. Optionally, to ensure you're seeing all of your package versions, use the "Type" drop down menu and select **All**. - ![Package version type drop down menu showing option to list all versions](/assets/images/help/package-registry/make-all-container-versions-visible.png) -5. To the right of the version you want to delete, click {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %} and select **Delete version**. - ![Delete package version button](/assets/images/help/package-registry/delete-container-package-version.png) -6. To confirm deletion, type the package name and click **I understand the consequences, delete this version**. - ![Confirm package version deletion button](/assets/images/help/package-registry/confirm-container-package-version-deletion.png) - -### Deleting all versions of a user-owned container image on {% data variables.product.prodname_dotcom %} - -{% data reusables.package_registry.package-settings-from-user-level %} -5. On the left, click **Options**. - !["Options" menu option](/assets/images/help/package-registry/options-for-container-settings.png) -6. Under "Danger zone", click **Delete this package**. - ![Delete package version button](/assets/images/help/package-registry/delete-container-package-button.png) -6. To confirm deletion, type the package name and click **I understand the consequences, delete this package**. - ![Confirm package version deletion button](/assets/images/help/package-registry/confirm-container-package-deletion.png) - -### Deleting all versions of an organization-owned container image on {% data variables.product.prodname_dotcom %} - -{% data reusables.package_registry.package-settings-from-org-level %} -5. On the left, click **Options**. - !["Options" menu option](/assets/images/help/package-registry/options-for-container-settings.png) -6. Under "Danger zone", click **Delete this package**. - ![Delete package button](/assets/images/help/package-registry/delete-container-package-button.png) -6. To confirm deletion, type the package name and click **I understand the consequences, delete this package**. - ![Confirm package deletion button](/assets/images/help/package-registry/confirm-container-package-deletion.png) diff --git a/content/packages/guides/index.md b/content/packages/guides/index.md index fee5252736..f7aefb201f 100644 --- a/content/packages/guides/index.md +++ b/content/packages/guides/index.md @@ -29,5 +29,3 @@ versions: {% link_in_list /configuring-access-control-and-visibility-for-container-images %} {% link_in_list /connecting-a-repository-to-a-container-image %} {% link_in_list /pushing-and-pulling-docker-images %} - {% link_in_list /deleting-a-container-image %} - diff --git a/content/packages/learn-github-packages/about-github-packages.md b/content/packages/learn-github-packages/about-github-packages.md index 203df83f4e..68a5a00f5d 100644 --- a/content/packages/learn-github-packages/about-github-packages.md +++ b/content/packages/learn-github-packages/about-github-packages.md @@ -134,13 +134,13 @@ To use or manage a package hosted by a package registry, you must use a token wi For example: - To download and install packages from a repository, your token must have the `read:packages` scope, and your user account must have read permissions for the repository. -- To delete a specified version of a private package on {% data variables.product.product_name %}, your token must have the `delete:packages` and `repo` scope. Public packages cannot be deleted. For more information, see "[Deleting a package](/packages/manage-packages/deleting-a-package)." +- {% if currentVersion == "free-pro-team@latest" or if currentVersion ver_gt "enterprise-server@3.0" %}To delete a package on {% data variables.product.product_name %}, your token must at least have the `delete:packages` and `read:packages` scope. The `repo` scope is also required for repo-scoped packages.{% endif %}{% if currentVersion ver_lt "enterprise-server@3.1" %}To delete a specified version of a private package on {% data variables.product.product_name %}, your token must have the `delete:packages` and `repo` scope. Public packages cannot be deleted.{% endif %} For more information, see "{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif currentVersion ver_lt "enterprise-server@3.1" %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}." | Scope | Description | Repository permissions | | --- | --- | --- | |`read:packages`| Download and install packages from {% data variables.product.prodname_registry %} | read | |`write:packages`| Upload and publish packages to {% data variables.product.prodname_registry %} | write | -| `delete:packages` | Delete specified versions of private packages from {% data variables.product.prodname_registry %} | admin | +| `delete:packages` | {% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" %} Delete packages from {% data variables.product.prodname_registry %} {% endif %}{% if currentVersion ver_lt "enterprise-server@3.1" %} Delete specified versions of private packages from {% data variables.product.prodname_registry %} {% endif %} | admin | | `repo` | Upload and delete packages (along with `write:packages`, or `delete:packages`) | write, or admin | When you create a {% data variables.product.prodname_actions %} workflow, you can use the `GITHUB_TOKEN` to publish and install packages in {% data variables.product.prodname_registry %} without needing to store and manage a personal access token. @@ -152,7 +152,19 @@ For more information, see: ### Managing packages -You can delete a version of a private package in the {% data variables.product.product_name %} user interface or using the GraphQL API. When you use the GraphQL API to query and delete private packages, you must use the same token you use to authenticate to {% data variables.product.prodname_registry %}. For more information, see "[Deleting a package](/packages/manage-packages/deleting-a-package)" and "[Forming calls with GraphQL](/graphql/guides/forming-calls-with-graphql)." +{% if currentVersion == "free-pro-team@latest" %} +You can delete a package in the {% data variables.product.product_name %} user interface or using the REST API. For more information, see the "[{% data variables.product.prodname_registry %} API](/rest/reference/packages)." +{% endif %} + +{% if currentVersion ver_gt "enterprise-server@3.0" %} +You can delete a private or public package in the {% data variables.product.product_name %} user interface. Or for repo-scoped packages, you can delete a version of a private package using GraphQL. +{% endif %} + +{% if currentVersion ver_lt "enterprise-server@3.1" %} +You can delete a version of a private package in the {% data variables.product.product_name %} user interface or using the GraphQL API. +{% endif %} + +When you use the GraphQL API to query and delete private packages, you must use the same token you use to authenticate to {% data variables.product.prodname_registry %}. For more information, see "{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" %}[Deleting and restoring a package](/packages/learn-github-packages/deleting-and-restoring-a-package){% elsif currentVersion ver_lt "enterprise-server@3.1" %}[Deleting a package](/packages/learn-github-packages/deleting-a-package){% endif %}" and "[Forming calls with GraphQL](/graphql/guides/forming-calls-with-graphql)." You can configure webhooks to subscribe to package-related events, such as when a package is published or updated. For more information, see the "[`package` webhook event](/webhooks/event-payloads/#package)." diff --git a/content/packages/manage-packages/deleting-a-package.md b/content/packages/learn-github-packages/deleting-a-package.md similarity index 69% rename from content/packages/manage-packages/deleting-a-package.md rename to content/packages/learn-github-packages/deleting-a-package.md index b5aef1144a..0a09d23e8b 100644 --- a/content/packages/manage-packages/deleting-a-package.md +++ b/content/packages/learn-github-packages/deleting-a-package.md @@ -2,39 +2,15 @@ title: Deleting a package intro: 'You can delete a version of a private package using GraphQL or on {% data variables.product.product_name %}.' product: '{% data reusables.gated-features.packages %}' -redirect_from: - - /github/managing-packages-with-github-packages/deleting-a-package - - /packages/publishing-and-managing-packages/deleting-a-package versions: - free-pro-team: '*' - enterprise-server: '>=2.22' + enterprise-server: '>=2.22 <3.1' --- {% data reusables.package_registry.packages-ghes-release-stage %} -{% if currentVersion == "free-pro-team@latest" %} -### About container image deletion - -To delete a container image package on {% data variables.product.product_name %}, see "[Deleting a container image](/packages/guides/deleting-a-container-image)." - -{% endif %} - -### About private package deletion - -You can only delete a specified version of a private package on {% data variables.product.product_name %} or with the GraphQL API. To remove an entire private package from appearing on {% data variables.product.product_name %}, you must delete every version of the package first. - -{% if currentVersion == "free-pro-team@latest" %} -### About public package deletion - -To avoid breaking projects that may depend on your packages, you cannot delete an entire public package or specific versions of a public package. - -Under special circumstances, such as for legal reasons or to conform with GDPR standards, you can ask {% data variables.contact.github_support %} to delete a public package for you, using [our contact form](https://github.com/contact?form%5Bsubject%5D=Re:%20GitHub%20Package%20Registry). - -{% else %} - At this time, {% data variables.product.prodname_registry %} on {% data variables.product.product_location %} does not support deleting public packages. -{% endif %} +You can only delete a specified version of a private package on {% data variables.product.product_name %} or with the GraphQL API. To remove an entire private package from appearing on {% data variables.product.product_name %}, you must delete every version of the package first. ### Deleting a version of a private package on {% data variables.product.product_name %} @@ -57,17 +33,6 @@ Use the `deletePackageVersion` mutation in the GraphQL API. You must use a token Here is an example cURL command to delete a package version with the package version ID of `MDIyOlJlZ2lzdHJ5UGFja2FnZVZlcnNpb243MTExNg`, using a personal access token. -{% if currentVersion == "free-pro-team@latest" %} -```shell -curl -X POST \ --H "Accept: application/vnd.github.package-deletes-preview+json" \ --H "Authorization: bearer TOKEN" \ --d '{"query":"mutation { deletePackageVersion(input:{packageVersionId:\"MDIyOlJlZ2lzdHJ5UGFja2FnZVZlcnNpb243MTExNg==\"}) { success }}"}' \ -https://api.github.com/graphql -``` - -{% else %} - ```shell curl -X POST \ -H "Accept: application/vnd.github.package-deletes-preview+json" \ @@ -76,10 +41,8 @@ curl -X POST \ HOSTNAME/graphql ``` -{% endif %} - To find all of the private packages you have published to {% data variables.product.prodname_registry %}, along with the version IDs for the packages, you can use the `packages` connection through the `repository` object. You will need a token with the `read:packages` and `repo` scopes. For more information, see the [`packages`](/graphql/reference/objects#repository) connection or the [`PackageOwner`](/graphql/reference/interfaces#packageowner) interface. For more information about the `deletePackageVersion` mutation, see "[`deletePackageVersion`](/graphql/reference/mutations#deletepackageversion)." -You cannot delete an entire package, but if you delete every version of a package, the package will no longer show on {% data variables.product.product_name %} +You cannot delete an entire package, but if you delete every version of a package, the package will no longer show on {% data variables.product.product_name %}. diff --git a/content/packages/learn-github-packages/deleting-and-restoring-a-package.md b/content/packages/learn-github-packages/deleting-and-restoring-a-package.md new file mode 100644 index 0000000000..63769f420f --- /dev/null +++ b/content/packages/learn-github-packages/deleting-and-restoring-a-package.md @@ -0,0 +1,249 @@ +--- +title: Deleting and restoring a package +intro: 'Learn how to delete or restore a package.' +product: '{% data reusables.gated-features.packages %}' +redirect_from: + - /github/managing-packages-with-github-packages/deleting-a-package + - /packages/publishing-and-managing-packages/deleting-a-package + - /packages/manage-packages/deleting-a-package + - /packages/guides/deleting-a-container-image +versions: + free-pro-team: '*' + enterprise-server: '>=3.1' +--- + +{% data reusables.package_registry.packages-ghes-release-stage %} + +## Package deletion and restoration support on {% data variables.product.prodname_dotcom %} + +On {% data variables.product.prodname_dotcom %} if you have the required access, you can delete: +- an entire private package +- an entire public package, if there's not more than 25 downloads of any version of the package +- a specific version of a private package +- a specific version of a public package, if the package version doesn't have more than 25 downloads + +{% note %} + +**Note:** +- You cannot delete a public package if any version of the package has more than 25 downloads. In this scenario, contact [GitHub support](https://support.github.com/contact) for further assistance. +- When deleting public packages, be aware that you may break projects that depend on your package. + +{% endnote %} + +On {% data variables.product.prodname_dotcom %}, you can also restore an entire package or package version, if: +- You restore the package within 30 days of its deletion. +- The same package namespace is still available and not used for a new package. + +## Packages API support + +{% if currentVersion == "free-pro-team@latest" %} + +You can use the REST API to manage your packages. For more information, see the "[{% data variables.product.prodname_registry %} API](/rest/reference/packages)." + +{% endif %} + +For packages that inherit their permissions and access from repositories, you can use GraphQL to delete a specific package version.{% if currentVersion == "free-pro-team@latest" %} The {% data variables.product.prodname_registry %} GraphQL API does not support containers or Docker images that use the package namespace `https://ghcr.io/OWNER/PACKAGE-NAME`. For more information about GraphQL support, see "[Deleting a version of a repository-scoped package with GraphQL](#deleting-a-version-of-a-repository-scoped-package-with-graphql)." + +{% data reusables.package_registry.container-registry-beta %} + +{% endif %} + +## Required permissions to delete or restore a package + +For packages that inherit their access permissions from repositories, you can delete a package if you have admin permissions to the repository. + +Repository-scoped packages on {% data variables.product.prodname_registry %} include these packages: +- npm +- RubyGems +- maven +- Gradle +- NuGet +- Docker images at `docker.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME` + +{% if currentVersion == "free-pro-team@latest" %} + +To delete a package that has granular permissions separate from a repository, such as containers or Docker images stored at `https://ghcr.io/OWNER/PACKAGE-NAME`, you must have admin access to the package. + + +{% data reusables.package_registry.container-registry-beta %} + +{% endif %} + + +## Automate package version deletion with {% data variables.product.prodname_actions %} + +You can automate package version deletion using an official action created by {% data variables.product.company_short %}. This action is available in the actions repository or on {% data variables.product.prodname_marketplace %} and only works with repository-scoped packages. For more information, see the "Delete Package Versions" action on [{% data variables.product.prodname_marketplace %}](https://github.com/marketplace/actions/delete-package-versions) or in the [actions repository](https://github.com/actions/delete-package-versions). + +## Deleting a package version + +### Deleting a version of a repository-scoped package on {% data variables.product.prodname_dotcom %} + +To delete a version of a repository-scoped package, you must have admin permissions to the repository that owns the package. For more information, see "[Required permissions](#required-permissions-to-delete-or-restore-a-package)." + +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.package_registry.packages-from-code-tab %} +{% data reusables.package_registry.package-settings-option %} +5. On the left, click **Manage versions**. +5. To the right of the version you want to delete, click {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %} and select **Delete version**. + ![Delete package version button](/assets/images/help/package-registry/delete-container-package-version.png) +6. To confirm deletion, type the package name and click **I understand the consequences, delete this version**. + ![Confirm package deletion button](/assets/images/help/package-registry/package-version-deletion-confirmation.png) + +### Deleting a version of a repository-scoped package with GraphQL + +For packages that inherit their permissions and access from repositories, you can use the GraphQL to delete a specific package version. + +{% if currentVersion == "free-pro-team@latest" %} +GraphQL is not supported for containers or Docker images at `ghcr.io`. +{% endif %} + + +Use the `deletePackageVersion` mutation in the GraphQL API. You must use a token with the `read:packages`, `delete:packages`, and `repo` scopes. For more information about tokens, see "[About {% data variables.product.prodname_registry %}](/packages/publishing-and-managing-packages/about-github-packages#authenticating-to-github-packages)." + +The following example demonstrates how to delete a package version, using a `packageVersionId` of `MDIyOlJlZ2lzdHJ5UGFja2FnZVZlcnNpb243MTExNg`. + +```shell +curl -X POST \ +-H "Accept: application/vnd.github.package-deletes-preview+json" \ +-H "Authorization: bearer TOKEN" \ +-d '{"query":"mutation { deletePackageVersion(input:{packageVersionId:\"MDIyOlJlZ2lzdHJ5UGFja2FnZVZlcnNpb243MTExNg==\"}) { success }}"}' \ +HOSTNAME/graphql +``` + +To find all of the private packages you have published to {% data variables.product.prodname_registry %}, along with the version IDs for the packages, you can use the `packages` connection through the `repository` object. You will need a token with the `read:packages` and `repo` scopes. For more information, see the [`packages`](/graphql/reference/objects#repository) connection or the [`PackageOwner`](/graphql/reference/interfaces#packageowner) interface. + +For more information about the `deletePackageVersion` mutation, see "[`deletePackageVersion`](/graphql/reference/mutations#deletepackageversion)." + +You cannot directly delete an entire package using GraphQL, but if you delete every version of a package, the package will no longer show on {% data variables.product.product_name %}. + +{% if currentVersion == "free-pro-team@latest" %} +### Deleting a version of a user-scoped package on {% data variables.product.prodname_dotcom %} + +To delete a specific version of a user-scoped package on {% data variables.product.prodname_dotcom %}, such as for a Docker image at `ghcr.io`, use these steps. To delete an entire package, see "[Deleting an entire user-scoped package on {% data variables.product.prodname_dotcom %}](#deleting-an-entire-user-scoped-package-on-github)." + +{% data reusables.package_registry.container-registry-beta %} + +To review who can delete a package version, see "[Required permissions](#required-permissions-to-delete-or-restore-a-package)." + +{% data reusables.package_registry.package-settings-from-user-level %} +{% data reusables.package_registry.package-settings-option %} +5. On the left, click **Manage versions**. +5. To the right of the version you want to delete, click {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %} and select **Delete version**. + ![Delete package version button](/assets/images/help/package-registry/delete-container-package-version.png) +6. To confirm deletion, type the package name and click **I understand the consequences, delete this version**. + ![Confirm package deletion button](/assets/images/help/package-registry/confirm-container-package-version-deletion.png) + +### Deleting a version of an organization-scoped package on GitHub + +To delete a specific version of an organization-scoped package on {% data variables.product.prodname_dotcom %}, such as for a Docker image at `ghcr.io`, use these steps. +To delete an entire package, see "[Deleting an entire organization-scoped package on {% data variables.product.prodname_dotcom %}](#deleting-an-entire-organization-scoped-package-on-github)." + +{% data reusables.package_registry.container-registry-beta %} + +To review who can delete a package version, see "[Required permissions](#required-permissions-to-delete-or-restore-a-package)." + +{% data reusables.package_registry.package-settings-from-org-level %} +{% data reusables.package_registry.package-settings-option %} +5. On the left, click **Manage versions**. +5. To the right of the version you want to delete, click {% octicon "kebab-horizontal" aria-label="The horizontal kebab icon" %} and select **Delete version**. + ![Delete package version button](/assets/images/help/package-registry/delete-container-package-version.png) +6. To confirm deletion, type the package name and click **I understand the consequences, delete this version**. + ![Confirm package version deletion button](/assets/images/help/package-registry/confirm-container-package-version-deletion.png) +{% endif %} + +## Deleting an entire package + +### Deleting an entire repository-scoped package on {% data variables.product.prodname_dotcom %} + +To delete an entire repository-scoped package, you must have admin permissions to the repository that owns the package. For more information, see "[Required permissions](#required-permissions-to-delete-or-restore-a-package)." + +{% data reusables.repositories.navigate-to-repo %} +{% data reusables.package_registry.packages-from-code-tab %} +{% data reusables.package_registry.package-settings-option %} +4. Under "Danger Zone", click **Delete this package**. +5. To confirm, review the confirmation message, enter your package name, and click **I understand, delete this package.** + ![Confirm package deletion button](/assets/images/help/package-registry/package-version-deletion-confirmation.png) + +{% if currentVersion == "free-pro-team@latest" %} +### Deleting an entire user-scoped package on {% data variables.product.prodname_dotcom %} + +To review who can delete a package, see "[Required permissions](#required-permissions-to-delete-or-restore-a-package)." + +{% data reusables.package_registry.package-settings-from-user-level %} +{% data reusables.package_registry.package-settings-option %} +5. On the left, click **Options**. + !["Options" menu option](/assets/images/help/package-registry/options-for-container-settings.png) +6. Under "Danger zone", click **Delete this package**. + ![Delete package version button](/assets/images/help/package-registry/delete-container-package-button.png) +6. To confirm deletion, type the package name and click **I understand the consequences, delete this package**. + ![Confirm package version deletion button](/assets/images/help/package-registry/confirm-container-package-deletion.png) + +### Deleting an entire organization-scoped package on {% data variables.product.prodname_dotcom %} + +To review who can delete a package, see "[Required permissions](#required-permissions-to-delete-or-restore-a-package)." + +{% data reusables.package_registry.package-settings-from-org-level %} +{% data reusables.package_registry.package-settings-option %} +5. On the left, click **Options**. + !["Options" menu option](/assets/images/help/package-registry/options-for-container-settings.png) +6. Under "Danger zone", click **Delete this package**. + ![Delete package button](/assets/images/help/package-registry/delete-container-package-button.png) +6. To confirm deletion, type the package name and click **I understand the consequences, delete this package**. + ![Confirm package deletion button](/assets/images/help/package-registry/confirm-container-package-deletion.png) +{% endif %} + +## Restoring packages + +You can restore a deleted package or version if: +- You restore the package within 30 days of its deletion. +- The same package namespace and version is still available and not reused for a new package. + +For example, if you have a deleted rubygem package named `octo-package` that was scoped to the repo `octo-repo-owner/octo-repo`, then you can only restore the package if the package namespace `rubygem.pkg.github.com/octo-repo-owner/octo-repo/octo-package` is still available, and 30 days have not yet passed. + +You must also meet one of these permission requirements: + - For repository-scoped packages: You have admin permissions to the repository that owns the deleted package. + - For user-account scoped packages: Your user account owns the deleted package. + - For organization-scoped packages: You have admin permissions to the deleted package in the organization that owns the package. + +For more information, see "[Required permissions](#required-permissions-to-delete-or-restore-a-package)." + +Once the package is restored, the package will use the same namespace it did before. 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. + +### Restoring a package in an organization + +You can restore a deleted package through your organization account settings, as long as the package was in one of your repositories or had granular permissions and was scoped to your organization account. + +To review who can restore a package in an organization, see "[Required permissions](#required-permissions-to-delete-or-restore-a-package)." + +{% data reusables.organizations.navigate-to-org %} +{% data reusables.organizations.org_settings %} +3. On the left, click **Packages**. +4. Under "Deleted Packages", next to the package you want to restore, click **Restore**. + ![Restore button](/assets/images/help/package-registry/restore-option-for-deleted-package-in-an-org.png) +5. To confirm, type the name of the package and click **I understand the consequences, restore this package**. + ![Restore package confirmation button](/assets/images/help/package-registry/type-package-name-and-restore-button.png) + +### Restoring a user-account scoped package + +You can restore a deleted package through your user account settings, if the package was in one of your repositories or scoped to your user account. For more information, see "[Required permissions](#required-permissions-to-delete-or-restore-a-package)." + +{% data reusables.user_settings.access_settings %} +2. On the left, click **Packages**. +4. Under "Deleted Packages", next to the package you want to restore, click **Restore**. + ![Restore button](/assets/images/help/package-registry/restore-option-for-deleted-package-in-an-org.png) +5. To confirm, type the name of the package and click **I understand the consequences, restore this package**. + ![Restore package confirmation button](/assets/images/help/package-registry/type-package-name-and-restore-button.png) + +### Restoring a package version + +You can restore a package version from your package's landing page. To review who can restore a package, see "[Required permissions](#required-permissions-to-delete-or-restore-a-package)." + +1. Navigate to your package's landing page. +2. On the right, click **Package settings**. +2. On the left, click **Manage versions**. +3. On the top right, use the "Versions" drop-down menu and select **Deleted**. + ![Versions drop-down menu showing the deleted option](/assets/images/help/package-registry/versions-drop-down-menu.png) +4. Next to the deleted package version you want to restore, click **Restore**. + ![Restore option next to a deleted package version](/assets/images/help/package-registry/restore-package-version.png) +5. To confirm, click **I understand the consequences, restore this version.** + ![Confirm package version restoration](/assets/images/help/package-registry/confirm-package-version-restoration.png) diff --git a/content/packages/learn-github-packages/index.md b/content/packages/learn-github-packages/index.md index a21e10fe4c..9af1511955 100644 --- a/content/packages/learn-github-packages/index.md +++ b/content/packages/learn-github-packages/index.md @@ -14,3 +14,5 @@ versions: {% link_in_list /about-github-packages %} {% link_in_list /core-concepts-for-github-packages %} {% link_in_list /publishing-a-package %} +{% link_in_list /deleting-and-restoring-a-package %} +{% link_in_list /deleting-a-package %} diff --git a/content/packages/manage-packages/index.md b/content/packages/manage-packages/index.md index 7f313028a1..21d7e0d6c3 100644 --- a/content/packages/manage-packages/index.md +++ b/content/packages/manage-packages/index.md @@ -14,5 +14,4 @@ versions: {% data reusables.package_registry.packages-ghes-release-stage %} {% link_in_list /viewing-packages %} -{% link_in_list /installing-a-package %} -{% link_in_list /deleting-a-package %} +{% link_in_list /installing-a-package %} diff --git a/content/packages/quickstart.md b/content/packages/quickstart.md index cf353a4d1b..99e96e8a87 100644 --- a/content/packages/quickstart.md +++ b/content/packages/quickstart.md @@ -13,7 +13,7 @@ You only need an existing {% data variables.product.prodname_dotcom %} repositor ### Publishing your package -1. Create a new repository on {% data variables.product.prodname_dotcom %}, adding the `.gitignore` for Node. Create a private repository if you’d like to delete this package later, public packages cannot be deleted. For more information, see "[Creating a new repository](/github/creating-cloning-and-archiving-repositories/creating-a-new-repository)." +1. Create a new repository on {% data variables.product.prodname_dotcom %}, adding the `.gitignore` for Node. {% if currentVersion ver_lt "enterprise-server@3.1" %} Create a private repository if you’d like to delete this package later, public packages cannot be deleted.{% endif %} For more information, see "[Creating a new repository](/github/creating-cloning-and-archiving-repositories/creating-a-new-repository)." 2. Clone the repository to your local machine. {% raw %} ```shell @@ -36,7 +36,7 @@ You only need an existing {% data variables.product.prodname_dotcom %} repositor ... test command: exit 0 ... - + $ npm install $ git add index.js package.json package-lock.json $ git commit -m "initialize npm package" @@ -44,7 +44,7 @@ You only need an existing {% data variables.product.prodname_dotcom %} repositor ``` {% endraw %} 5. From your repository on {% data variables.product.prodname_dotcom %}, create a new file in the `.github/workflows` directory named `release-package.yml`. For more information, see "[Creating new files](/github/managing-files-in-a-repository/creating-new-files)." -6. Copy the following YAML content into the `release-package.yml` file. +6. Copy the following YAML content into the `release-package.yml` file. {% raw %} ```yaml{:copy} name: Node.js Package @@ -96,7 +96,7 @@ Packages are published at the repository level. You can see all the packages in ### Installing a published package -Now that you've published the package, you'll want to use it as a dependency across your projects. For more information, see "[Configuring npm for use with {% data variables.product.prodname_registry %}](/packages/guides/configuring-npm-for-use-with-github-packages#installing-a-package)." +Now that you've published the package, you'll want to use it as a dependency across your projects. For more information, see "[Configuring npm for use with {% data variables.product.prodname_registry %}](/packages/guides/configuring-npm-for-use-with-github-packages#installing-a-package)." ### Next steps diff --git a/content/rest/reference/index.md b/content/rest/reference/index.md index d235a3280e..3e0c064f4c 100644 --- a/content/rest/reference/index.md +++ b/content/rest/reference/index.md @@ -30,6 +30,7 @@ versions: {% link_in_list /migrations %} {% link_in_list /oauth-authorizations %} {% link_in_list /orgs %} +{% link_in_list /packages %} {% link_in_list /projects %} {% link_in_list /pulls %} {% link_in_list /rate-limit %} diff --git a/content/rest/reference/packages.md b/content/rest/reference/packages.md new file mode 100644 index 0000000000..53450d887c --- /dev/null +++ b/content/rest/reference/packages.md @@ -0,0 +1,28 @@ +--- +title: Packages +product: '{% data reusables.gated-features.packages %}' +versions: + free-pro-team: '*' +--- + +The {% data variables.product.prodname_registry %} API enables you to manage packages using the REST API. To learn more about restoring or deleting packages, see "[Restoring and deleting packages](/packages/learn-github-packages/deleting-and-restoring-a-package)." + +To use this API, you must authenticate using a personal access token. + - To access package metadata, your token must include the `read:packages` scope. + - To delete packages and package versions, your token must include the `read:packages` and `delete:packages` scopes. + - To restore packages and package versions, your token must include the `read:packages` and `write:packages` scopes. + +If your `package_type` is `npm`, `maven`, `rubygems`, or `nuget`, then your token must also include the `repo` scope since your package inherits permissions from a {% data variables.product.prodname_dotcom %} repository. For more information about scopes, see "[About scopes and permissions](/packages/learn-github-packages/about-github-packages#about-scopes-and-permissions-for-package-registries)" or "[Using the {% data variables.product.prodname_registry %} API with Docker](#using-the-github-packages-api-with-docker)." + +If you want to use the {% data variables.product.prodname_registry %} API to access resources in an organization with SSO enabled, then you must enable SSO for your personal access token. For more information, see "[Authorizing a personal access token for use with SAML single sign-on](/github/authenticating-to-github/authorizing-a-personal-access-token-for-use-with-saml-single-sign-on)." + +#### Using the {% data variables.product.prodname_registry %} API with Docker + +If your package is a Docker image using the package namespace `docker.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME`, then your `package_type` is `docker` and your token must include the `repo` scope since your package inherits permissions from a {% data variables.product.prodname_dotcom %} repository. + +If your package is a Docker image using the package namespace `ghcr.io/OWNER/IMAGE-NAME`, then your `package_type` is `container` and your token does not need the `repo` scope to access or manage this `package_type`. `container` packages offer granular permissions separate from a repository. + + +{% for operation in currentRestOperations %} + {% unless operation.subcategory %}{% include rest_operation %}{% endunless %} +{% endfor %} diff --git a/data/reusables/package_registry/package-settings-from-org-level.md b/data/reusables/package_registry/package-settings-from-org-level.md index 2ccdb3f24a..adf0665380 100644 --- a/data/reusables/package_registry/package-settings-from-org-level.md +++ b/data/reusables/package_registry/package-settings-from-org-level.md @@ -1,6 +1,3 @@ 1. On {% data variables.product.prodname_dotcom %}, navigate to the main page of your organization. 2. Under your organization name, click **Packages**. ![Container access invite button](/assets/images/help/package-registry/org-tab-for-packages.png) -3. Search for and select your package. -4. In the top right of your container image's landing page, click **Package settings**. - ![Package settings button](/assets/images/help/package-registry/packages-settings-from-package-landing-page.png) diff --git a/data/reusables/package_registry/package-settings-from-user-level.md b/data/reusables/package_registry/package-settings-from-user-level.md index e780ba8a2d..9e7d084f77 100644 --- a/data/reusables/package_registry/package-settings-from-user-level.md +++ b/data/reusables/package_registry/package-settings-from-user-level.md @@ -3,6 +3,3 @@ ![Profile photo](/assets/images/help/profile/top_right_avatar.png) 3. On your profile page, in the top right, click **Packages**. ![Packages option on profile page](/assets/images/help/package-registry/packages-from-user-profile.png) -3. Search for and select your package. -4. In the top right of your container image's landing page, click **Package settings**. - ![Package settings button](/assets/images/help/package-registry/packages-settings-from-package-landing-page.png) diff --git a/data/reusables/package_registry/package-settings-option.md b/data/reusables/package_registry/package-settings-option.md new file mode 100644 index 0000000000..61a826cc32 --- /dev/null +++ b/data/reusables/package_registry/package-settings-option.md @@ -0,0 +1,3 @@ +3. Search for and select your package. +4. In the top right of your package's landing page, click **Package settings**. + ![Package settings button](/assets/images/help/package-registry/packages-settings-from-package-landing-page.png) diff --git a/lib/rest/static/decorated/api.github.com.json b/lib/rest/static/decorated/api.github.com.json index 8265df55ac..29cfe5b8eb 100644 --- a/lib/rest/static/decorated/api.github.com.json +++ b/lib/rest/static/decorated/api.github.com.json @@ -22311,6 +22311,716 @@ } ] }, + { + "verb": "get", + "requestPath": "/orgs/{org}/packages/{package_type}/{package_name}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "descriptionHTML": "

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. For Docker images that use the package namespace https://ghcr.io/owner/package-name, use container.

" + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

The name of the package.

" + }, + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /orgs/{org}/packages/{package_type}/{package_name}', {\n package_type: 'package_type',\n package_name: 'package_name',\n org: 'org'\n})", + "html": "
await octokit.request('GET /orgs/{org}/packages/{package_type}/{package_name}', {\n  package_type: 'package_type',\n  package_name: 'package_name',\n  org: 'org'\n})\n
" + } + ], + "summary": "Get a package for an organization", + "description": "Gets a specific package in an organization.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/get-package-for-organization", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#get-a-package-for-an-organization" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "packages", + "subcategory": null + }, + "slug": "get-a-package-for-an-organization", + "category": "packages", + "categoryLabel": "Packages", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Gets a specific package in an organization.

\n

To use this endpoint, you must authenticate using an access token with the packages:read scope.\nIf package_type is not container, your token must also include the repo scope.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Default response", + "payload": "
{\n  \"id\": 197,\n  \"name\": \"hello_docker\",\n  \"package_type\": \"container\",\n  \"owner\": {\n    \"login\": \"github\",\n    \"id\": 9919,\n    \"node_id\": \"MDEyOk9yZ2FuaXphdGlvbjk5MTk=\",\n    \"avatar_url\": \"https://avatars.githubusercontent.com/u/9919?v=4\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/github\",\n    \"html_url\": \"https://github.com/github\",\n    \"followers_url\": \"https://api.github.com/users/github/followers\",\n    \"following_url\": \"https://api.github.com/users/github/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/github/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/github/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/github/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/github/orgs\",\n    \"repos_url\": \"https://api.github.com/users/github/repos\",\n    \"events_url\": \"https://api.github.com/users/github/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/github/received_events\",\n    \"type\": \"Organization\",\n    \"site_admin\": false\n  },\n  \"version_count\": 1,\n  \"visibility\": \"private\",\n  \"url\": \"https://api.github.com/orgs/github/packages/container/hello_docker\",\n  \"created_at\": \"2020-05-19T22:19:11Z\",\n  \"updated_at\": \"2020-05-19T22:19:11Z\",\n  \"html_url\": \"https://github.com/orgs/github/packages/container/package/hello_docker\"\n}\n
" + } + ] + }, + { + "verb": "delete", + "requestPath": "/orgs/{org}/packages/{package_type}/{package_name}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "descriptionHTML": "

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. For Docker images that use the package namespace https://ghcr.io/owner/package-name, use container.

" + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

The name of the package.

" + }, + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X DELETE \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME", + "html": "
curl \\\n  -X DELETE \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('DELETE /orgs/{org}/packages/{package_type}/{package_name}', {\n package_type: 'package_type',\n package_name: 'package_name',\n org: 'org'\n})", + "html": "
await octokit.request('DELETE /orgs/{org}/packages/{package_type}/{package_name}', {\n  package_type: 'package_type',\n  package_name: 'package_name',\n  org: 'org'\n})\n
" + } + ], + "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 25 downloads. In this scenario, contact GitHub support for further assistance.\n\nTo use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` scope. In addition:\n- If `package_type` is not `container`, your token must also include the `repo` scope.\n- If `package_type` is `container`, you must also have admin permissions to the container you want to delete.", + "tags": [ + "packages" + ], + "operationId": "packages/delete-package-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#delete-a-package-for-an-organization" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "packages", + "subcategory": null + }, + "slug": "delete-a-package-for-an-organization", + "category": "packages", + "categoryLabel": "Packages", + "notes": [], + "responses": [ + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "Default Response" + }, + { + "httpStatusCode": "401", + "httpStatusMessage": "Unauthorized", + "description": "Requires authentication" + }, + { + "httpStatusCode": "403", + "httpStatusMessage": "Forbidden", + "description": "Forbidden" + }, + { + "httpStatusCode": "404", + "httpStatusMessage": "Not Found", + "description": "Resource not found" + } + ], + "bodyParameters": [], + "descriptionHTML": "

Deletes an entire package in an organization. You cannot delete a public package if any version of the package has more than 25 downloads. In this scenario, contact GitHub support for further assistance.

\n

To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the packages:read scope. In addition:

\n
    \n
  • If package_type is not container, your token must also include the repo scope.
  • \n
  • If package_type is container, you must also have admin permissions to the container you want to delete.
  • \n
" + }, + { + "verb": "post", + "requestPath": "/orgs/{org}/packages/{package_type}/{package_name}/restore", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "descriptionHTML": "

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. For Docker images that use the package namespace https://ghcr.io/owner/package-name, use container.

" + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

The name of the package.

" + }, + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X POST \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME/restore", + "html": "
curl \\\n  -X POST \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME/restore
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('POST /orgs/{org}/packages/{package_type}/{package_name}/restore', {\n package_type: 'package_type',\n package_name: 'package_name',\n org: 'org'\n})", + "html": "
await octokit.request('POST /orgs/{org}/packages/{package_type}/{package_name}/restore', {\n  package_type: 'package_type',\n  package_name: 'package_name',\n  org: 'org'\n})\n
" + } + ], + "summary": "Restore a package for an organization", + "description": "Restores an entire package in an organization.\n\nYou can restore a deleted package under the following conditions:\n - The package was deleted within the last 30 days.\n - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.\n\nTo use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:write` scope. In addition:\n- If `package_type` is not `container`, your token must also include the `repo` scope.\n- If `package_type` is `container`, you must also have admin permissions to the container that you want to restore.", + "tags": [ + "packages" + ], + "operationId": "packages/restore-package-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#restore-a-package-for-an-organization" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "packages", + "subcategory": null + }, + "slug": "restore-a-package-for-an-organization", + "category": "packages", + "categoryLabel": "Packages", + "notes": [], + "responses": [ + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "Default Response" + }, + { + "httpStatusCode": "401", + "httpStatusMessage": "Unauthorized", + "description": "Requires authentication" + }, + { + "httpStatusCode": "403", + "httpStatusMessage": "Forbidden", + "description": "Forbidden" + }, + { + "httpStatusCode": "404", + "httpStatusMessage": "Not Found", + "description": "Resource not found" + } + ], + "bodyParameters": [], + "descriptionHTML": "

Restores an entire package in an organization.

\n

You can restore a deleted package under the following conditions:

\n
    \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
\n

To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the packages:read and packages:write scope. In addition:

\n
    \n
  • If package_type is not container, your token must also include the repo scope.
  • \n
  • If package_type is container, you must also have admin permissions to the container that you want to restore.
  • \n
" + }, + { + "verb": "get", + "requestPath": "/orgs/{org}/packages/{package_type}/{package_name}/versions", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "descriptionHTML": "

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. For Docker images that use the package namespace https://ghcr.io/owner/package-name, use container.

" + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

The name of the package.

" + }, + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME/versions", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME/versions
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /orgs/{org}/packages/{package_type}/{package_name}/versions', {\n package_type: 'package_type',\n package_name: 'package_name',\n org: 'org'\n})", + "html": "
await octokit.request('GET /orgs/{org}/packages/{package_type}/{package_name}/versions', {\n  package_type: 'package_type',\n  package_name: 'package_name',\n  org: 'org'\n})\n
" + } + ], + "summary": "Get all package versions for a package owned by an organization", + "description": "Returns all package versions for a package owned by an organization.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/get-all-package-versions-for-a-package-owned-by-an-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#get-all-package-versions-for-a-package-owned-by-the-authenticated-user" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "packages", + "subcategory": null + }, + "slug": "get-all-package-versions-for-a-package-owned-by-an-organization", + "category": "packages", + "categoryLabel": "Packages", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Returns all package versions for a package owned by an organization.

\n

To use this endpoint, you must authenticate using an access token with the packages:read scope.\nIf package_type is not container, your token must also include the repo scope.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Default response", + "payload": "
[\n  {\n    \"id\": 245301,\n    \"name\": \"1.0.4\",\n    \"url\": \"https://api.github.com/orgs/octo-org/packages/npm/hello-world-npm/versions/245301\",\n    \"package_html_url\": \"https://github.com/octo-org/hello-world-npm/packages/43752\",\n    \"created_at\": \"2019-11-05T22:49:04Z\",\n    \"updated_at\": \"2019-11-05T22:49:04Z\",\n    \"html_url\": \"https://github.com/octo-org/hello-world-npm/packages/43752?version=1.0.4\",\n    \"metadata\": {\n      \"package_type\": \"npm\"\n    }\n  },\n  {\n    \"id\": 209672,\n    \"name\": \"1.0.3\",\n    \"url\": \"https://api.github.com/orgs/octo-org/packages/npm/hello-world-npm/versions/209672\",\n    \"package_html_url\": \"https://github.com/octo-org/hello-world-npm/packages/43752\",\n    \"created_at\": \"2019-10-29T15:42:11Z\",\n    \"updated_at\": \"2019-10-29T15:42:12Z\",\n    \"html_url\": \"https://github.com/octo-org/hello-world-npm/packages/43752?version=1.0.3\",\n    \"metadata\": {\n      \"package_type\": \"npm\"\n    }\n  }\n]\n
" + }, + { + "httpStatusCode": "401", + "httpStatusMessage": "Unauthorized", + "description": "Requires authentication" + }, + { + "httpStatusCode": "403", + "httpStatusMessage": "Forbidden", + "description": "Forbidden" + }, + { + "httpStatusCode": "404", + "httpStatusMessage": "Not Found", + "description": "Resource not found" + } + ] + }, + { + "verb": "get", + "requestPath": "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "descriptionHTML": "

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. For Docker images that use the package namespace https://ghcr.io/owner/package-name, use container.

" + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

The name of the package.

" + }, + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "package_version_id", + "description": "Unique identifier of the package version.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "descriptionHTML": "

Unique identifier of the package version.

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}', {\n package_type: 'package_type',\n package_name: 'package_name',\n org: 'org',\n package_version_id: 42\n})", + "html": "
await octokit.request('GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}', {\n  package_type: 'package_type',\n  package_name: 'package_name',\n  org: 'org',\n  package_version_id: 42\n})\n
" + } + ], + "summary": "Get a package version for an organization", + "description": "Gets a specific package version in an organization.\n\nYou must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/get-package-version-for-organization", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#get-a-package-version-for-an-organization" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "packages", + "subcategory": null + }, + "slug": "get-a-package-version-for-an-organization", + "category": "packages", + "categoryLabel": "Packages", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Gets a specific package version in an organization.

\n

You must authenticate using an access token with the packages:read scope.\nIf package_type is not container, your token must also include the repo scope.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Default response", + "payload": "
{\n  \"id\": 836,\n  \"name\": \"sha256:b3d3e366b55f9a54599220198b3db5da8f53592acbbb7dc7e4e9878762fc5344\",\n  \"url\": \"https://api.github.com/orgs/github/packages/container/hello_docker/versions/836\",\n  \"package_html_url\": \"https://github.com/orgs/github/packages/container/package/hello_docker\",\n  \"created_at\": \"2020-05-19T22:19:11Z\",\n  \"updated_at\": \"2020-05-19T22:19:11Z\",\n  \"html_url\": \"https://github.com/orgs/github/packages/container/hello_docker/836\",\n  \"metadata\": {\n    \"package_type\": \"container\",\n    \"container\": {\n      \"tags\": [\n        \"latest\"\n      ]\n    }\n  }\n}\n
" + } + ] + }, + { + "verb": "delete", + "requestPath": "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "descriptionHTML": "

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. For Docker images that use the package namespace https://ghcr.io/owner/package-name, use container.

" + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

The name of the package.

" + }, + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "package_version_id", + "description": "Unique identifier of the package version.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "descriptionHTML": "

Unique identifier of the package version.

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X DELETE \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42", + "html": "
curl \\\n  -X DELETE \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}', {\n package_type: 'package_type',\n package_name: 'package_name',\n org: 'org',\n package_version_id: 42\n})", + "html": "
await octokit.request('DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}', {\n  package_type: 'package_type',\n  package_name: 'package_name',\n  org: 'org',\n  package_version_id: 42\n})\n
" + } + ], + "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 25 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance.\n\nTo use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` scope. In addition:\n- If `package_type` is not `container`, your token must also include the `repo` scope.\n- If `package_type` is `container`, you must also have admin permissions to the container you want to delete.", + "tags": [ + "packages" + ], + "operationId": "packages/delete-package-version-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#delete-a-package-version-for-an-organization" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "packages", + "subcategory": null + }, + "slug": "delete-package-version-for-an-organization", + "category": "packages", + "categoryLabel": "Packages", + "notes": [], + "responses": [ + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "Default Response" + }, + { + "httpStatusCode": "401", + "httpStatusMessage": "Unauthorized", + "description": "Requires authentication" + }, + { + "httpStatusCode": "403", + "httpStatusMessage": "Forbidden", + "description": "Forbidden" + }, + { + "httpStatusCode": "404", + "httpStatusMessage": "Not Found", + "description": "Resource not found" + } + ], + "bodyParameters": [], + "descriptionHTML": "

Deletes a specific package version in an organization. If the package is public and the package version has more than 25 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance.

\n

To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the packages:read scope. In addition:

\n
    \n
  • If package_type is not container, your token must also include the repo scope.
  • \n
  • If package_type is container, you must also have admin permissions to the container you want to delete.
  • \n
" + }, + { + "verb": "post", + "requestPath": "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "descriptionHTML": "

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. For Docker images that use the package namespace https://ghcr.io/owner/package-name, use container.

" + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

The name of the package.

" + }, + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + }, + { + "name": "package_version_id", + "description": "Unique identifier of the package version.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "descriptionHTML": "

Unique identifier of the package version.

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X POST \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42/restore", + "html": "
curl \\\n  -X POST \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/orgs/ORG/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42/restore
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore', {\n package_type: 'package_type',\n package_name: 'package_name',\n org: 'org',\n package_version_id: 42\n})", + "html": "
await octokit.request('POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore', {\n  package_type: 'package_type',\n  package_name: 'package_name',\n  org: 'org',\n  package_version_id: 42\n})\n
" + } + ], + "summary": "Restore package version for an organization", + "description": "Restores a specific package version in an organization.\n\nYou can restore a deleted package under the following conditions:\n - The package was deleted within the last 30 days.\n - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.\n\nTo use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:write` scope. In addition:\n- If `package_type` is not `container`, your token must also include the `repo` scope.\n- If `package_type` is `container`, you must also have admin permissions to the container that you want to restore.", + "tags": [ + "packages" + ], + "operationId": "packages/restore-package-version-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#restore-a-package-version-for-an-organization" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "packages", + "subcategory": null + }, + "slug": "restore-package-version-for-an-organization", + "category": "packages", + "categoryLabel": "Packages", + "notes": [], + "responses": [ + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "Default Response" + }, + { + "httpStatusCode": "401", + "httpStatusMessage": "Unauthorized", + "description": "Requires authentication" + }, + { + "httpStatusCode": "403", + "httpStatusMessage": "Forbidden", + "description": "Forbidden" + }, + { + "httpStatusCode": "404", + "httpStatusMessage": "Not Found", + "description": "Resource not found" + } + ], + "bodyParameters": [], + "descriptionHTML": "

Restores a specific package version in an organization.

\n

You can restore a deleted package under the following conditions:

\n
    \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
\n

To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the packages:read and packages:write scope. In addition:

\n
    \n
  • If package_type is not container, your token must also include the repo scope.
  • \n
  • If package_type is container, you must also have admin permissions to the container that you want to restore.
  • \n
" + }, { "verb": "get", "requestPath": "/orgs/{org}/projects", @@ -86608,6 +87318,653 @@ } ] }, + { + "verb": "get", + "requestPath": "/user/packages/{package_type}/{package_name}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "descriptionHTML": "

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. For Docker images that use the package namespace https://ghcr.io/owner/package-name, use container.

" + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

The name of the package.

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /user/packages/{package_type}/{package_name}', {\n package_type: 'package_type',\n package_name: 'package_name'\n})", + "html": "
await octokit.request('GET /user/packages/{package_type}/{package_name}', {\n  package_type: 'package_type',\n  package_name: 'package_name'\n})\n
" + } + ], + "summary": "Get a package for the authenticated user", + "description": "Gets a specific package for a package owned by the authenticated user.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/get-package-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#get-a-package-for-the-authenticated-user" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "packages", + "subcategory": null + }, + "slug": "get-a-package-for-the-authenticated-user", + "category": "packages", + "categoryLabel": "Packages", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Gets a specific package for a package owned by the authenticated user.

\n

To use this endpoint, you must authenticate using an access token with the packages:read scope.\nIf package_type is not container, your token must also include the repo scope.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Default response", + "payload": "
{\n  \"id\": 40201,\n  \"name\": \"octo-name\",\n  \"package_type\": \"rubygems\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 209477,\n    \"node_id\": \"MDQ6VXNlcjIwOTQ3Nw==\",\n    \"avatar_url\": \"https://avatars.githubusercontent.com/u/209477?v=4\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": true\n  },\n  \"version_count\": 3,\n  \"visibility\": \"public\",\n  \"url\": \"https://api.github.com/users/octocat/packages/rubygems/octo-name\",\n  \"created_at\": \"2019-10-20T14:17:14Z\",\n  \"updated_at\": \"2019-10-20T14:17:14Z\",\n  \"repository\": {\n    \"id\": 216219492,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkyMTYyMTk0OTI=\",\n    \"name\": \"octo-name-repo\",\n    \"full_name\": \"octocat/octo-name-repo\",\n    \"private\": false,\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 209477,\n      \"node_id\": \"MDQ6VXNlcjIwOTQ3Nw==\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/u/209477?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": true\n    },\n    \"html_url\": \"https://github.com/octocat/octo-name-repo\",\n    \"description\": \"Project for octocats\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/octo-name-repo\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/octo-name-repo/forks\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/octo-name-repo/keys{/key_id}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/octo-name-repo/collaborators{/collaborator}\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/octo-name-repo/teams\",\n    \"hooks_url\": \"https://api.github.com/repos/octocat/octo-name-repo/hooks\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/octo-name-repo/issues/events{/number}\",\n    \"events_url\": \"https://api.github.com/repos/octocat/octo-name-repo/events\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/octo-name-repo/assignees{/user}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/octo-name-repo/branches{/branch}\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/octo-name-repo/tags\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/octo-name-repo/git/blobs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/octo-name-repo/git/tags{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/octo-name-repo/git/refs{/sha}\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/octo-name-repo/git/trees{/sha}\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/octo-name-repo/statuses/{sha}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/octo-name-repo/languages\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/octo-name-repo/stargazers\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/octo-name-repo/contributors\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/octo-name-repo/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/octo-name-repo/subscription\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/octo-name-repo/commits{/sha}\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/octo-name-repo/git/commits{/sha}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/octo-name-repo/comments{/number}\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/octo-name-repo/issues/comments{/number}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/octo-name-repo/contents/{+path}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/octo-name-repo/compare/{base}...{head}\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/octo-name-repo/merges\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/octo-name-repo/{archive_format}{/ref}\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/octo-name-repo/downloads\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/octo-name-repo/issues{/number}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/octo-name-repo/pulls{/number}\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/octo-name-repo/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/octo-name-repo/notifications{?since,all,participating}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/octo-name-repo/labels{/name}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/octo-name-repo/releases{/id}\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/octo-name-repo/deployments\"\n  },\n  \"html_url\": \"https://github.com/octocat/octo-name-repo/packages/40201\"\n}\n
" + } + ] + }, + { + "verb": "delete", + "requestPath": "/user/packages/{package_type}/{package_name}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "descriptionHTML": "

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. For Docker images that use the package namespace https://ghcr.io/owner/package-name, use container.

" + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

The name of the package.

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X DELETE \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME", + "html": "
curl \\\n  -X DELETE \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('DELETE /user/packages/{package_type}/{package_name}', {\n package_type: 'package_type',\n package_name: 'package_name'\n})", + "html": "
await octokit.request('DELETE /user/packages/{package_type}/{package_name}', {\n  package_type: 'package_type',\n  package_name: 'package_name'\n})\n
" + } + ], + "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 25 downloads. In this scenario, contact GitHub support for further assistance.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:delete` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/delete-package-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#delete-a-package-for-the-authenticated-user" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "packages", + "subcategory": null + }, + "slug": "delete-a-package-for-the-authenticated-user", + "category": "packages", + "categoryLabel": "Packages", + "notes": [], + "responses": [ + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "Default Response" + }, + { + "httpStatusCode": "401", + "httpStatusMessage": "Unauthorized", + "description": "Requires authentication" + }, + { + "httpStatusCode": "403", + "httpStatusMessage": "Forbidden", + "description": "Forbidden" + }, + { + "httpStatusCode": "404", + "httpStatusMessage": "Not Found", + "description": "Resource not found" + } + ], + "bodyParameters": [], + "descriptionHTML": "

Deletes a package owned by the authenticated user. You cannot delete a public package if any version of the package has more than 25 downloads. In this scenario, contact GitHub support for further assistance.

\n

To use this endpoint, you must authenticate using an access token with the packages:read and packages:delete scope.\nIf package_type is not container, your token must also include the repo scope.

" + }, + { + "verb": "post", + "requestPath": "/user/packages/{package_type}/{package_name}/restore", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "descriptionHTML": "

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. For Docker images that use the package namespace https://ghcr.io/owner/package-name, use container.

" + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

The name of the package.

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X POST \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME/restore", + "html": "
curl \\\n  -X POST \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME/restore
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('POST /user/packages/{package_type}/{package_name}/restore', {\n package_type: 'package_type',\n package_name: 'package_name'\n})", + "html": "
await octokit.request('POST /user/packages/{package_type}/{package_name}/restore', {\n  package_type: 'package_type',\n  package_name: 'package_name'\n})\n
" + } + ], + "summary": "Restore a package for the authenticated user", + "description": "Restores a package owned by the authenticated user.\n\nYou can restore a deleted package under the following conditions:\n - The package was deleted within the last 30 days.\n - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:write` scope. If `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/restore-package-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#restore-a-package-for-the-authenticated-user" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "packages", + "subcategory": null + }, + "slug": "restore-a-package-for-the-authenticated-user", + "category": "packages", + "categoryLabel": "Packages", + "notes": [], + "responses": [ + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "Default Response" + }, + { + "httpStatusCode": "401", + "httpStatusMessage": "Unauthorized", + "description": "Requires authentication" + }, + { + "httpStatusCode": "403", + "httpStatusMessage": "Forbidden", + "description": "Forbidden" + }, + { + "httpStatusCode": "404", + "httpStatusMessage": "Not Found", + "description": "Resource not found" + } + ], + "bodyParameters": [], + "descriptionHTML": "

Restores a package owned by the authenticated user.

\n

You can restore a deleted package under the following conditions:

\n
    \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
\n

To use this endpoint, you must authenticate using an access token with the packages:read and packages:write scope. If package_type is not container, your token must also include the repo scope.

" + }, + { + "verb": "get", + "requestPath": "/user/packages/{package_type}/{package_name}/versions", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "descriptionHTML": "

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. For Docker images that use the package namespace https://ghcr.io/owner/package-name, use container.

" + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

The name of the package.

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME/versions", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME/versions
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /user/packages/{package_type}/{package_name}/versions', {\n package_type: 'package_type',\n package_name: 'package_name'\n})", + "html": "
await octokit.request('GET /user/packages/{package_type}/{package_name}/versions', {\n  package_type: 'package_type',\n  package_name: 'package_name'\n})\n
" + } + ], + "summary": "Get all package versions for a package owned by the authenticated user", + "description": "Returns all package versions for a package owned by the authenticated user.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/get-all-package-versions-for-a-package-owned-by-the-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#get-all-package-versions-for-a-package-owned-by-the-authenticated-user" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "packages", + "subcategory": null + }, + "slug": "get-all-package-versions-for-a-package-owned-by-the-authenticated-user", + "category": "packages", + "categoryLabel": "Packages", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Returns all package versions for a package owned by the authenticated user.

\n

To use this endpoint, you must authenticate using an access token with the packages:read scope.\nIf package_type is not container, your token must also include the repo scope.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Default response", + "payload": "
[\n  {\n    \"id\": 45763,\n    \"name\": \"sha256:08a44bab0bddaddd8837a8b381aebc2e4b933768b981685a9e088360af0d3dd9\",\n    \"url\": \"https://api.github.com/users/octocat/packages/container/hello_docker/versions/45763\",\n    \"package_html_url\": \"https://github.com/users/octocat/packages/container/package/hello_docker\",\n    \"created_at\": \"2020-09-11T21:56:40Z\",\n    \"updated_at\": \"2021-02-05T21:32:32Z\",\n    \"html_url\": \"https://github.com/users/octocat/packages/container/hello_docker/45763\",\n    \"metadata\": {\n      \"package_type\": \"container\",\n      \"container\": {\n        \"tags\": [\n          \"latest\"\n        ]\n      }\n    }\n  },\n  {\n    \"id\": 881,\n    \"name\": \"sha256:b3d3e366b55f9a54599220198b3db5da8f53592acbbb7dc7e4e9878762fc5344\",\n    \"url\": \"https://api.github.com/users/octocat/packages/container/hello_docker/versions/881\",\n    \"package_html_url\": \"https://github.com/users/octocat/packages/container/package/hello_docker\",\n    \"created_at\": \"2020-05-21T22:22:20Z\",\n    \"updated_at\": \"2021-02-05T21:32:32Z\",\n    \"html_url\": \"https://github.com/users/octocat/packages/container/hello_docker/881\",\n    \"metadata\": {\n      \"package_type\": \"container\",\n      \"container\": {\n        \"tags\": []\n      }\n    }\n  }\n]\n
" + }, + { + "httpStatusCode": "401", + "httpStatusMessage": "Unauthorized", + "description": "Requires authentication" + }, + { + "httpStatusCode": "403", + "httpStatusMessage": "Forbidden", + "description": "Forbidden" + }, + { + "httpStatusCode": "404", + "httpStatusMessage": "Not Found", + "description": "Resource not found" + } + ] + }, + { + "verb": "get", + "requestPath": "/user/packages/{package_type}/{package_name}/versions/{package_version_id}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "descriptionHTML": "

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. For Docker images that use the package namespace https://ghcr.io/owner/package-name, use container.

" + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

The name of the package.

" + }, + { + "name": "package_version_id", + "description": "Unique identifier of the package version.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "descriptionHTML": "

Unique identifier of the package version.

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}', {\n package_type: 'package_type',\n package_name: 'package_name',\n package_version_id: 42\n})", + "html": "
await octokit.request('GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}', {\n  package_type: 'package_type',\n  package_name: 'package_name',\n  package_version_id: 42\n})\n
" + } + ], + "summary": "Get a package version for the authenticated user", + "description": "Gets a specific package version for a package owned by the authenticated user.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/get-package-version-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#get-a-package-version-for-the-authenticated-user" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "packages", + "subcategory": null + }, + "slug": "get-a-package-version-for-the-authenticated-user", + "category": "packages", + "categoryLabel": "Packages", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Gets a specific package version for a package owned by the authenticated user.

\n

To use this endpoint, you must authenticate using an access token with the packages:read scope.\nIf package_type is not container, your token must also include the repo scope.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Default response", + "payload": "
{\n  \"id\": 214,\n  \"name\": \"sha256:3561f0cff06caccddb99c93bd26e712fcc56a811de0f8ea7a17bb865f30b176a\",\n  \"url\": \"https://api.github.com/users/octocat/packages/container/hello_docker/versions/214\",\n  \"package_html_url\": \"https://github.com/users/octocat/packages/container/package/hello_docker\",\n  \"created_at\": \"2020-05-15T03:46:45Z\",\n  \"updated_at\": \"2020-05-15T03:46:45Z\",\n  \"html_url\": \"https://github.com/users/octocat/packages/container/hello_docker/214\",\n  \"metadata\": {\n    \"package_type\": \"container\",\n    \"container\": {\n      \"tags\": [\n        \"1.13.6\"\n      ]\n    }\n  }\n}\n
" + } + ] + }, + { + "verb": "delete", + "requestPath": "/user/packages/{package_type}/{package_name}/versions/{package_version_id}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "descriptionHTML": "

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. For Docker images that use the package namespace https://ghcr.io/owner/package-name, use container.

" + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

The name of the package.

" + }, + { + "name": "package_version_id", + "description": "Unique identifier of the package version.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "descriptionHTML": "

Unique identifier of the package version.

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X DELETE \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42", + "html": "
curl \\\n  -X DELETE \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}', {\n package_type: 'package_type',\n package_name: 'package_name',\n package_version_id: 42\n})", + "html": "
await octokit.request('DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}', {\n  package_type: 'package_type',\n  package_name: 'package_name',\n  package_version_id: 42\n})\n
" + } + ], + "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 25 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance.\n\nTo use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/delete-package-version-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#delete-a-package-version-for-the-authenticated-user" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "packages", + "subcategory": null + }, + "slug": "delete-a-package-version-for-the-authenticated-user", + "category": "packages", + "categoryLabel": "Packages", + "notes": [], + "responses": [ + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "Default Response" + }, + { + "httpStatusCode": "401", + "httpStatusMessage": "Unauthorized", + "description": "Requires authentication" + }, + { + "httpStatusCode": "403", + "httpStatusMessage": "Forbidden", + "description": "Forbidden" + }, + { + "httpStatusCode": "404", + "httpStatusMessage": "Not Found", + "description": "Resource not found" + } + ], + "bodyParameters": [], + "descriptionHTML": "

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 25 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance.

\n

To use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the packages:read scope.\nIf package_type is not container, your token must also include the repo scope.

" + }, + { + "verb": "post", + "requestPath": "/user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "descriptionHTML": "

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. For Docker images that use the package namespace https://ghcr.io/owner/package-name, use container.

" + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

The name of the package.

" + }, + { + "name": "package_version_id", + "description": "Unique identifier of the package version.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "descriptionHTML": "

Unique identifier of the package version.

" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -X POST \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42/restore", + "html": "
curl \\\n  -X POST \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/user/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42/restore
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore', {\n package_type: 'package_type',\n package_name: 'package_name',\n package_version_id: 42\n})", + "html": "
await octokit.request('POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore', {\n  package_type: 'package_type',\n  package_name: 'package_name',\n  package_version_id: 42\n})\n
" + } + ], + "summary": "Restore a package version for the authenticated user", + "description": "Restores a package version owned by the authenticated user.\n\nYou can restore a deleted package version under the following conditions:\n - The package was deleted within the last 30 days.\n - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:write` scope. If `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/restore-package-version-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#restore-a-package-version-for-the-authenticated-user" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "packages", + "subcategory": null + }, + "slug": "restore-a-package-version-for-the-authenticated-user", + "category": "packages", + "categoryLabel": "Packages", + "notes": [], + "responses": [ + { + "httpStatusCode": "204", + "httpStatusMessage": "No Content", + "description": "Default Response" + }, + { + "httpStatusCode": "401", + "httpStatusMessage": "Unauthorized", + "description": "Requires authentication" + }, + { + "httpStatusCode": "403", + "httpStatusMessage": "Forbidden", + "description": "Forbidden" + }, + { + "httpStatusCode": "404", + "httpStatusMessage": "Not Found", + "description": "Resource not found" + } + ], + "bodyParameters": [], + "descriptionHTML": "

Restores a package version owned by the authenticated user.

\n

You can restore a deleted package version under the following conditions:

\n
    \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
\n

To use this endpoint, you must authenticate using an access token with the packages:read and packages:write scope. If package_type is not container, your token must also include the repo scope.

" + }, { "verb": "post", "requestPath": "/user/projects", @@ -89412,6 +90769,292 @@ } ] }, + { + "verb": "get", + "requestPath": "/users/{username}/packages/{package_type}/{package_name}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "descriptionHTML": "

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. For Docker images that use the package namespace https://ghcr.io/owner/package-name, use container.

" + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

The name of the package.

" + }, + { + "name": "username", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/users/USERNAME/packages/PACKAGE_TYPE/PACKAGE_NAME", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/users/USERNAME/packages/PACKAGE_TYPE/PACKAGE_NAME
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /users/{username}/packages/{package_type}/{package_name}', {\n package_type: 'package_type',\n package_name: 'package_name',\n username: 'username'\n})", + "html": "
await octokit.request('GET /users/{username}/packages/{package_type}/{package_name}', {\n  package_type: 'package_type',\n  package_name: 'package_name',\n  username: 'username'\n})\n
" + } + ], + "summary": "Get a package for a user", + "description": "Gets a specific package metadata for a public package owned by a user.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/get-package-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#get-a-package-for-a-user" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "packages", + "subcategory": null + }, + "slug": "get-a-package-for-a-user", + "category": "packages", + "categoryLabel": "Packages", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Gets a specific package metadata for a public package owned by a user.

\n

To use this endpoint, you must authenticate using an access token with the packages:read scope.\nIf package_type is not container, your token must also include the repo scope.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Default response", + "payload": "
{\n  \"id\": 40201,\n  \"name\": \"octo-name\",\n  \"package_type\": \"rubygems\",\n  \"owner\": {\n    \"login\": \"octocat\",\n    \"id\": 209477,\n    \"node_id\": \"MDQ6VXNlcjIwOTQ3Nw==\",\n    \"avatar_url\": \"https://avatars.githubusercontent.com/u/209477?v=4\",\n    \"gravatar_id\": \"\",\n    \"url\": \"https://api.github.com/users/octocat\",\n    \"html_url\": \"https://github.com/octocat\",\n    \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n    \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n    \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n    \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n    \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n    \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n    \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n    \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n    \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n    \"type\": \"User\",\n    \"site_admin\": true\n  },\n  \"version_count\": 3,\n  \"visibility\": \"public\",\n  \"url\": \"https://api.github.com/users/octocat/packages/rubygems/octo-name\",\n  \"created_at\": \"2019-10-20T14:17:14Z\",\n  \"updated_at\": \"2019-10-20T14:17:14Z\",\n  \"repository\": {\n    \"id\": 216219492,\n    \"node_id\": \"MDEwOlJlcG9zaXRvcnkyMTYyMTk0OTI=\",\n    \"name\": \"octo-name-repo\",\n    \"full_name\": \"octocat/octo-name-repo\",\n    \"private\": false,\n    \"owner\": {\n      \"login\": \"octocat\",\n      \"id\": 209477,\n      \"node_id\": \"MDQ6VXNlcjIwOTQ3Nw==\",\n      \"avatar_url\": \"https://avatars.githubusercontent.com/u/209477?v=4\",\n      \"gravatar_id\": \"\",\n      \"url\": \"https://api.github.com/users/octocat\",\n      \"html_url\": \"https://github.com/octocat\",\n      \"followers_url\": \"https://api.github.com/users/octocat/followers\",\n      \"following_url\": \"https://api.github.com/users/octocat/following{/other_user}\",\n      \"gists_url\": \"https://api.github.com/users/octocat/gists{/gist_id}\",\n      \"starred_url\": \"https://api.github.com/users/octocat/starred{/owner}{/repo}\",\n      \"subscriptions_url\": \"https://api.github.com/users/octocat/subscriptions\",\n      \"organizations_url\": \"https://api.github.com/users/octocat/orgs\",\n      \"repos_url\": \"https://api.github.com/users/octocat/repos\",\n      \"events_url\": \"https://api.github.com/users/octocat/events{/privacy}\",\n      \"received_events_url\": \"https://api.github.com/users/octocat/received_events\",\n      \"type\": \"User\",\n      \"site_admin\": true\n    },\n    \"html_url\": \"https://github.com/octocat/octo-name-repo\",\n    \"description\": \"Project for octocats\",\n    \"fork\": false,\n    \"url\": \"https://api.github.com/repos/octocat/octo-name-repo\",\n    \"forks_url\": \"https://api.github.com/repos/octocat/octo-name-repo/forks\",\n    \"keys_url\": \"https://api.github.com/repos/octocat/octo-name-repo/keys{/key_id}\",\n    \"collaborators_url\": \"https://api.github.com/repos/octocat/octo-name-repo/collaborators{/collaborator}\",\n    \"teams_url\": \"https://api.github.com/repos/octocat/octo-name-repo/teams\",\n    \"hooks_url\": \"https://api.github.com/repos/octocat/octo-name-repo/hooks\",\n    \"issue_events_url\": \"https://api.github.com/repos/octocat/octo-name-repo/issues/events{/number}\",\n    \"events_url\": \"https://api.github.com/repos/octocat/octo-name-repo/events\",\n    \"assignees_url\": \"https://api.github.com/repos/octocat/octo-name-repo/assignees{/user}\",\n    \"branches_url\": \"https://api.github.com/repos/octocat/octo-name-repo/branches{/branch}\",\n    \"tags_url\": \"https://api.github.com/repos/octocat/octo-name-repo/tags\",\n    \"blobs_url\": \"https://api.github.com/repos/octocat/octo-name-repo/git/blobs{/sha}\",\n    \"git_tags_url\": \"https://api.github.com/repos/octocat/octo-name-repo/git/tags{/sha}\",\n    \"git_refs_url\": \"https://api.github.com/repos/octocat/octo-name-repo/git/refs{/sha}\",\n    \"trees_url\": \"https://api.github.com/repos/octocat/octo-name-repo/git/trees{/sha}\",\n    \"statuses_url\": \"https://api.github.com/repos/octocat/octo-name-repo/statuses/{sha}\",\n    \"languages_url\": \"https://api.github.com/repos/octocat/octo-name-repo/languages\",\n    \"stargazers_url\": \"https://api.github.com/repos/octocat/octo-name-repo/stargazers\",\n    \"contributors_url\": \"https://api.github.com/repos/octocat/octo-name-repo/contributors\",\n    \"subscribers_url\": \"https://api.github.com/repos/octocat/octo-name-repo/subscribers\",\n    \"subscription_url\": \"https://api.github.com/repos/octocat/octo-name-repo/subscription\",\n    \"commits_url\": \"https://api.github.com/repos/octocat/octo-name-repo/commits{/sha}\",\n    \"git_commits_url\": \"https://api.github.com/repos/octocat/octo-name-repo/git/commits{/sha}\",\n    \"comments_url\": \"https://api.github.com/repos/octocat/octo-name-repo/comments{/number}\",\n    \"issue_comment_url\": \"https://api.github.com/repos/octocat/octo-name-repo/issues/comments{/number}\",\n    \"contents_url\": \"https://api.github.com/repos/octocat/octo-name-repo/contents/{+path}\",\n    \"compare_url\": \"https://api.github.com/repos/octocat/octo-name-repo/compare/{base}...{head}\",\n    \"merges_url\": \"https://api.github.com/repos/octocat/octo-name-repo/merges\",\n    \"archive_url\": \"https://api.github.com/repos/octocat/octo-name-repo/{archive_format}{/ref}\",\n    \"downloads_url\": \"https://api.github.com/repos/octocat/octo-name-repo/downloads\",\n    \"issues_url\": \"https://api.github.com/repos/octocat/octo-name-repo/issues{/number}\",\n    \"pulls_url\": \"https://api.github.com/repos/octocat/octo-name-repo/pulls{/number}\",\n    \"milestones_url\": \"https://api.github.com/repos/octocat/octo-name-repo/milestones{/number}\",\n    \"notifications_url\": \"https://api.github.com/repos/octocat/octo-name-repo/notifications{?since,all,participating}\",\n    \"labels_url\": \"https://api.github.com/repos/octocat/octo-name-repo/labels{/name}\",\n    \"releases_url\": \"https://api.github.com/repos/octocat/octo-name-repo/releases{/id}\",\n    \"deployments_url\": \"https://api.github.com/repos/octocat/octo-name-repo/deployments\"\n  },\n  \"html_url\": \"https://github.com/octocat/octo-name-repo/packages/40201\"\n}\n
" + } + ] + }, + { + "verb": "get", + "requestPath": "/users/{username}/packages/{package_type}/{package_name}/versions", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "descriptionHTML": "

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. For Docker images that use the package namespace https://ghcr.io/owner/package-name, use container.

" + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

The name of the package.

" + }, + { + "name": "username", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/users/USERNAME/packages/PACKAGE_TYPE/PACKAGE_NAME/versions", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/users/USERNAME/packages/PACKAGE_TYPE/PACKAGE_NAME/versions
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /users/{username}/packages/{package_type}/{package_name}/versions', {\n package_type: 'package_type',\n package_name: 'package_name',\n username: 'username'\n})", + "html": "
await octokit.request('GET /users/{username}/packages/{package_type}/{package_name}/versions', {\n  package_type: 'package_type',\n  package_name: 'package_name',\n  username: 'username'\n})\n
" + } + ], + "summary": "Get all package versions for a package owned by a user", + "description": "Returns all package versions for a public package owned by a specified user.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/get-all-package-versions-for-package-owned-by-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#get-all-package-versions-for-a-package-owned-by-a-user" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "packages", + "subcategory": null + }, + "slug": "get-all-package-versions-for-a-package-owned-by-a-user", + "category": "packages", + "categoryLabel": "Packages", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Returns all package versions for a public package owned by a specified user.

\n

To use this endpoint, you must authenticate using an access token with the packages:read scope.\nIf package_type is not container, your token must also include the repo scope.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Default response", + "payload": "
[\n  {\n    \"id\": 3497268,\n    \"name\": \"0.3.0\",\n    \"url\": \"https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/3497268\",\n    \"package_html_url\": \"https://github.com/octocat/octo-name-repo/packages/40201\",\n    \"license\": \"MIT\",\n    \"created_at\": \"2020-08-31T15:22:11Z\",\n    \"updated_at\": \"2020-08-31T15:22:12Z\",\n    \"description\": \"Project for octocats\",\n    \"html_url\": \"https://github.com/octocat/octo-name-repo/packages/40201?version=0.3.0\",\n    \"metadata\": {\n      \"package_type\": \"rubygems\"\n    }\n  },\n  {\n    \"id\": 387039,\n    \"name\": \"0.2.0\",\n    \"url\": \"https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/387039\",\n    \"package_html_url\": \"https://github.com/octocat/octo-name-repo/packages/40201\",\n    \"license\": \"MIT\",\n    \"created_at\": \"2019-12-01T20:49:29Z\",\n    \"updated_at\": \"2019-12-01T20:49:30Z\",\n    \"description\": \"Project for octocats\",\n    \"html_url\": \"https://github.com/octocat/octo-name-repo/packages/40201?version=0.2.0\",\n    \"metadata\": {\n      \"package_type\": \"rubygems\"\n    }\n  },\n  {\n    \"id\": 169770,\n    \"name\": \"0.1.0\",\n    \"url\": \"https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/169770\",\n    \"package_html_url\": \"https://github.com/octocat/octo-name-repo/packages/40201\",\n    \"license\": \"MIT\",\n    \"created_at\": \"2019-10-20T14:17:14Z\",\n    \"updated_at\": \"2019-10-20T14:17:15Z\",\n    \"html_url\": \"https://github.com/octocat/octo-name-repo/packages/40201?version=0.1.0\",\n    \"metadata\": {\n      \"package_type\": \"rubygems\"\n    }\n  }\n]\n
" + }, + { + "httpStatusCode": "401", + "httpStatusMessage": "Unauthorized", + "description": "Requires authentication" + }, + { + "httpStatusCode": "403", + "httpStatusMessage": "Forbidden", + "description": "Forbidden" + }, + { + "httpStatusCode": "404", + "httpStatusMessage": "Not Found", + "description": "Resource not found" + } + ] + }, + { + "verb": "get", + "requestPath": "/users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}", + "serverUrl": "https://api.github.com", + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "descriptionHTML": "

The type of supported package. Can be one of npm, maven, rubygems, nuget, docker, or container. For Docker images that use the package namespace https://ghcr.io/owner/package-name, use container.

" + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "

The name of the package.

" + }, + { + "name": "package_version_id", + "description": "Unique identifier of the package version.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + }, + "descriptionHTML": "

Unique identifier of the package version.

" + }, + { + "name": "username", + "in": "path", + "required": true, + "schema": { + "type": "string" + }, + "descriptionHTML": "" + } + ], + "x-codeSamples": [ + { + "lang": "Shell", + "source": "curl \\\n -H \"Accept: application/vnd.github.v3+json\" \\\n https://api.github.com/users/USERNAME/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42", + "html": "
curl \\\n  -H \"Accept: application/vnd.github.v3+json\" \\\n  https://api.github.com/users/USERNAME/packages/PACKAGE_TYPE/PACKAGE_NAME/versions/42
" + }, + { + "lang": "JavaScript", + "source": "await octokit.request('GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}', {\n package_type: 'package_type',\n package_name: 'package_name',\n package_version_id: 42,\n username: 'username'\n})", + "html": "
await octokit.request('GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}', {\n  package_type: 'package_type',\n  package_name: 'package_name',\n  package_version_id: 42,\n  username: 'username'\n})\n
" + } + ], + "summary": "Get a package version for a user", + "description": "Gets a specific package version for a public package owned by a specified user.\n\nAt this time, to use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/get-package-version-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#get-a-package-version-for-a-user" + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [], + "category": "packages", + "subcategory": null + }, + "slug": "get-a-package-version-for-a-user", + "category": "packages", + "categoryLabel": "Packages", + "notes": [], + "bodyParameters": [], + "descriptionHTML": "

Gets a specific package version for a public package owned by a specified user.

\n

At this time, to use this endpoint, you must authenticate using an access token with the packages:read scope.\nIf package_type is not container, your token must also include the repo scope.

", + "responses": [ + { + "httpStatusCode": "200", + "httpStatusMessage": "OK", + "description": "Default response", + "payload": "
{\n  \"id\": 387039,\n  \"name\": \"0.2.0\",\n  \"url\": \"https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/387039\",\n  \"package_html_url\": \"https://github.com/octocat/octo-name-repo/packages/40201\",\n  \"license\": \"MIT\",\n  \"created_at\": \"2019-12-01T20:49:29Z\",\n  \"updated_at\": \"2019-12-01T20:49:30Z\",\n  \"description\": \"Octo-name client for Ruby\",\n  \"html_url\": \"https://github.com/octocat/octo-name-repo/packages/40201?version=0.2.0\",\n  \"metadata\": {\n    \"package_type\": \"rubygems\"\n  }\n}\n
" + } + ] + }, { "verb": "get", "requestPath": "/users/{username}/projects", diff --git a/lib/rest/static/dereferenced/api.github.com.deref.json b/lib/rest/static/dereferenced/api.github.com.deref.json index c7fd3b4364..1649357018 100644 --- a/lib/rest/static/dereferenced/api.github.com.deref.json +++ b/lib/rest/static/dereferenced/api.github.com.deref.json @@ -73227,6 +73227,2764 @@ } } }, + "/orgs/{org}/packages/{package_type}/{package_name}": { + "get": { + "summary": "Get a package for an organization", + "description": "Gets a specific package in an organization.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/get-package-for-organization", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#get-a-package-for-an-organization" + }, + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + } + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "title": "Package", + "description": "A software package", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the package.", + "type": "integer", + "example": 1 + }, + "name": { + "description": "The name of the package.", + "type": "string", + "example": "super-linter" + }, + "package_type": { + "type": "string", + "example": "docker", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "url": { + "type": "string", + "example": "https://api.github.com/orgs/github/packages/container/super-linter" + }, + "html_url": { + "type": "string", + "example": "https://github.com/orgs/github/packages/container/package/super-linter" + }, + "version_count": { + "description": "The number of versions of the package.", + "type": "integer", + "example": 1 + }, + "visibility": { + "type": "string", + "example": "private", + "enum": [ + "private", + "public" + ] + }, + "owner": { + "nullable": true, + "allOf": [ + { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:55Z\"" + } + }, + "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 + } + ] + }, + "repository": { + "nullable": true, + "allOf": [ + { + "title": "Minimal Repository", + "description": "Minimal Repository", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 1296269 + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "type": "string", + "example": "Hello-World" + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World" + }, + "owner": { + "type": "object", + "nullable": true, + "allOf": [ + { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:55Z\"" + } + }, + "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 + } + ] + }, + "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": { + "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", + "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" + }, + "push": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + } + } + }, + "template_repository": { + "nullable": true, + "type": "object", + "allOf": [ + { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the repository", + "example": 42, + "type": "integer" + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "description": "The name of the repository.", + "type": "string", + "example": "Team Environment" + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World" + }, + "license": { + "nullable": true, + "allOf": [ + { + "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" + ] + } + ] + }, + "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": { + "nullable": true, + "allOf": [ + { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:55Z\"" + } + }, + "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 + } + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "default": false, + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World" + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" + }, + "archive_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + }, + "assignees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + }, + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + }, + "branches_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + }, + "collaborators_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + }, + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + }, + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + }, + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + }, + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" + }, + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + }, + "git_refs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + }, + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + }, + "git_url": { + "type": "string", + "example": "git:github.com/octocat/Hello-World.git" + }, + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + }, + "issue_events_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + }, + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + }, + "keys_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + }, + "labels_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" + }, + "milestones_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + }, + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + }, + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + }, + "releases_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + }, + "ssh_url": { + "type": "string", + "example": "git@github.com:octocat/Hello-World.git" + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + }, + "statuses_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" + }, + "trees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + }, + "clone_url": { + "type": "string", + "example": "https://github.com/octocat/Hello-World.git" + }, + "mirror_url": { + "type": "string", + "format": "uri", + "example": "git:git.example.com/octocat/Hello-World", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "svn_url": { + "type": "string", + "format": "uri", + "example": "https://svn.github.com/octocat/Hello-World" + }, + "homepage": { + "type": "string", + "format": "uri", + "example": "https://github.com", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "forks_count": { + "type": "integer", + "example": 9 + }, + "stargazers_count": { + "type": "integer", + "example": 80 + }, + "watchers_count": { + "type": "integer", + "example": 80 + }, + "size": { + "type": "integer", + "example": 108 + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string", + "example": "master" + }, + "open_issues_count": { + "type": "integer", + "example": 0 + }, + "is_template": { + "description": "Whether this repository acts as a template that can be used to generate new repositories.", + "default": false, + "type": "boolean", + "example": true + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "has_issues": { + "description": "Whether issues are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_projects": { + "description": "Whether projects are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "archived": { + "description": "Whether the repository is archived.", + "default": false, + "type": "boolean" + }, + "disabled": { + "type": "boolean", + "description": "Returns whether or not this repository disabled." + }, + "visibility": { + "description": "The repository visibility: public, private, or internal.", + "default": "public", + "type": "string" + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z", + "nullable": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "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" + }, + "push": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + } + } + }, + "allow_rebase_merge": { + "type": "boolean" + }, + "temp_clone_token": { + "type": "string" + }, + "allow_squash_merge": { + "type": "boolean" + }, + "delete_branch_on_merge": { + "type": "boolean" + }, + "allow_merge_commit": { + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + } + } + }, + "temp_clone_token": { + "type": "string" + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "default": false, + "type": "boolean", + "example": false + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "watchers": { + "type": "integer" + }, + "master_branch": { + "type": "string" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:42Z\"" + } + }, + "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" + ] + } + ] + }, + "temp_clone_token": { + "type": "string" + }, + "delete_branch_on_merge": { + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + }, + "license": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "node_id": { + "type": "string" + } + }, + "nullable": true + }, + "forks": { + "type": "integer", + "example": 0 + }, + "open_issues": { + "type": "integer", + "example": 0 + }, + "watchers": { + "type": "integer", + "example": 0 + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url" + ] + } + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "package_type", + "visibility", + "url", + "html_url", + "version_count", + "created_at", + "updated_at" + ] + }, + "examples": { + "default": { + "value": { + "id": 197, + "name": "hello_docker", + "package_type": "container", + "owner": { + "login": "github", + "id": 9919, + "node_id": "MDEyOk9yZ2FuaXphdGlvbjk5MTk=", + "avatar_url": "https://avatars.githubusercontent.com/u/9919?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/github", + "html_url": "https://github.com/github", + "followers_url": "https://api.github.com/users/github/followers", + "following_url": "https://api.github.com/users/github/following{/other_user}", + "gists_url": "https://api.github.com/users/github/gists{/gist_id}", + "starred_url": "https://api.github.com/users/github/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github/subscriptions", + "organizations_url": "https://api.github.com/users/github/orgs", + "repos_url": "https://api.github.com/users/github/repos", + "events_url": "https://api.github.com/users/github/events{/privacy}", + "received_events_url": "https://api.github.com/users/github/received_events", + "type": "Organization", + "site_admin": false + }, + "version_count": 1, + "visibility": "private", + "url": "https://api.github.com/orgs/github/packages/container/hello_docker", + "created_at": "2020-05-19T22:19:11Z", + "updated_at": "2020-05-19T22:19:11Z", + "html_url": "https://github.com/orgs/github/packages/container/package/hello_docker" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + + ], + "category": "packages", + "subcategory": null + } + }, + "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 25 downloads. In this scenario, contact GitHub support for further assistance.\n\nTo use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` scope. In addition:\n- If `package_type` is not `container`, your token must also include the `repo` scope.\n- If `package_type` is `container`, you must also have admin permissions to the container you want to delete.", + "tags": [ + "packages" + ], + "operationId": "packages/delete-package-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#delete-a-package-for-an-organization" + }, + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + } + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Empty response" + }, + "404": { + "description": "Resource Not Found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "401": { + "description": "Requires Authentication", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + + ], + "category": "packages", + "subcategory": null + } + } + }, + "/orgs/{org}/packages/{package_type}/{package_name}/restore": { + "post": { + "summary": "Restore a package for an organization", + "description": "Restores an entire package in an organization.\n\nYou can restore a deleted package under the following conditions:\n - The package was deleted within the last 30 days.\n - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.\n\nTo use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:write` scope. In addition:\n- If `package_type` is not `container`, your token must also include the `repo` scope.\n- If `package_type` is `container`, you must also have admin permissions to the container that you want to restore.", + "tags": [ + "packages" + ], + "operationId": "packages/restore-package-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#restore-a-package-for-an-organization" + }, + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + } + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Empty response" + }, + "404": { + "description": "Resource Not Found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "401": { + "description": "Requires Authentication", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + + ], + "category": "packages", + "subcategory": null + } + } + }, + "/orgs/{org}/packages/{package_type}/{package_name}/versions": { + "get": { + "summary": "Get all package versions for a package owned by an organization", + "description": "Returns all package versions for a package owned by an organization.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/get-all-package-versions-for-a-package-owned-by-an-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#get-all-package-versions-for-a-package-owned-by-the-authenticated-user" + }, + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + } + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "title": "Package Version", + "description": "A version of a software package", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the package version.", + "type": "integer", + "example": 1 + }, + "name": { + "description": "The name of the package version.", + "type": "string", + "example": "latest" + }, + "url": { + "type": "string", + "example": "https://api.github.com/orgs/github/packages/container/super-linter/versions/786068" + }, + "package_html_url": { + "type": "string", + "example": "https://github.com/orgs/github/packages/container/package/super-linter" + }, + "html_url": { + "type": "string", + "example": "https://github.com/orgs/github/packages/container/super-linter/786068" + }, + "license": { + "type": "string", + "example": "MIT" + }, + "description": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-10T20:09:31Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2014-03-03T18:58:10Z" + }, + "deleted_at": { + "type": "string", + "format": "date-time", + "example": "2014-03-03T18:58:10Z" + }, + "metadata": { + "type": "object", + "title": "Package Version Metadata", + "properties": { + "package_type": { + "type": "string", + "example": "docker", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "container": { + "type": "object", + "title": "Container Metadata", + "properties": { + "tags": { + "type": "array" + } + }, + "required": [ + "tags" + ] + }, + "docker": { + "type": "object", + "title": "Docker Metadata", + "properties": { + "tag": { + "type": "array" + } + }, + "required": [ + "tags" + ] + } + }, + "required": [ + "package_type" + ] + } + }, + "required": [ + "id", + "name", + "url", + "package_html_url", + "created_at", + "updated_at" + ] + } + }, + "examples": { + "default": { + "value": [ + { + "id": 245301, + "name": "1.0.4", + "url": "https://api.github.com/orgs/octo-org/packages/npm/hello-world-npm/versions/245301", + "package_html_url": "https://github.com/octo-org/hello-world-npm/packages/43752", + "created_at": "2019-11-05T22:49:04Z", + "updated_at": "2019-11-05T22:49:04Z", + "html_url": "https://github.com/octo-org/hello-world-npm/packages/43752?version=1.0.4", + "metadata": { + "package_type": "npm" + } + }, + { + "id": 209672, + "name": "1.0.3", + "url": "https://api.github.com/orgs/octo-org/packages/npm/hello-world-npm/versions/209672", + "package_html_url": "https://github.com/octo-org/hello-world-npm/packages/43752", + "created_at": "2019-10-29T15:42:11Z", + "updated_at": "2019-10-29T15:42:12Z", + "html_url": "https://github.com/octo-org/hello-world-npm/packages/43752?version=1.0.3", + "metadata": { + "package_type": "npm" + } + } + ] + } + } + } + } + }, + "404": { + "description": "Resource Not Found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "401": { + "description": "Requires Authentication", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + + ], + "category": "packages", + "subcategory": null + } + } + }, + "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}": { + "get": { + "summary": "Get a package version for an organization", + "description": "Gets a specific package version in an organization.\n\nYou must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/get-package-version-for-organization", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#get-a-package-version-for-an-organization" + }, + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + } + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_version_id", + "description": "Unique identifier of the package version.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "title": "Package Version", + "description": "A version of a software package", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the package version.", + "type": "integer", + "example": 1 + }, + "name": { + "description": "The name of the package version.", + "type": "string", + "example": "latest" + }, + "url": { + "type": "string", + "example": "https://api.github.com/orgs/github/packages/container/super-linter/versions/786068" + }, + "package_html_url": { + "type": "string", + "example": "https://github.com/orgs/github/packages/container/package/super-linter" + }, + "html_url": { + "type": "string", + "example": "https://github.com/orgs/github/packages/container/super-linter/786068" + }, + "license": { + "type": "string", + "example": "MIT" + }, + "description": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-10T20:09:31Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2014-03-03T18:58:10Z" + }, + "deleted_at": { + "type": "string", + "format": "date-time", + "example": "2014-03-03T18:58:10Z" + }, + "metadata": { + "type": "object", + "title": "Package Version Metadata", + "properties": { + "package_type": { + "type": "string", + "example": "docker", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "container": { + "type": "object", + "title": "Container Metadata", + "properties": { + "tags": { + "type": "array" + } + }, + "required": [ + "tags" + ] + }, + "docker": { + "type": "object", + "title": "Docker Metadata", + "properties": { + "tag": { + "type": "array" + } + }, + "required": [ + "tags" + ] + } + }, + "required": [ + "package_type" + ] + } + }, + "required": [ + "id", + "name", + "url", + "package_html_url", + "created_at", + "updated_at" + ] + }, + "examples": { + "default": { + "value": { + "id": 836, + "name": "sha256:b3d3e366b55f9a54599220198b3db5da8f53592acbbb7dc7e4e9878762fc5344", + "url": "https://api.github.com/orgs/github/packages/container/hello_docker/versions/836", + "package_html_url": "https://github.com/orgs/github/packages/container/package/hello_docker", + "created_at": "2020-05-19T22:19:11Z", + "updated_at": "2020-05-19T22:19:11Z", + "html_url": "https://github.com/orgs/github/packages/container/hello_docker/836", + "metadata": { + "package_type": "container", + "container": { + "tags": [ + "latest" + ] + } + } + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + + ], + "category": "packages", + "subcategory": null + } + }, + "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 25 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance.\n\nTo use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` scope. In addition:\n- If `package_type` is not `container`, your token must also include the `repo` scope.\n- If `package_type` is `container`, you must also have admin permissions to the container you want to delete.", + "tags": [ + "packages" + ], + "operationId": "packages/delete-package-version-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#delete-a-package-version-for-an-organization" + }, + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + } + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_version_id", + "description": "Unique identifier of the package version.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "description": "Empty response" + }, + "404": { + "description": "Resource Not Found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "401": { + "description": "Requires Authentication", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + + ], + "category": "packages", + "subcategory": null + } + } + }, + "/orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { + "post": { + "summary": "Restore package version for an organization", + "description": "Restores a specific package version in an organization.\n\nYou can restore a deleted package under the following conditions:\n - The package was deleted within the last 30 days.\n - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.\n\nTo use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` and `packages:write` scope. In addition:\n- If `package_type` is not `container`, your token must also include the `repo` scope.\n- If `package_type` is `container`, you must also have admin permissions to the container that you want to restore.", + "tags": [ + "packages" + ], + "operationId": "packages/restore-package-version-for-org", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#restore-a-package-version-for-an-organization" + }, + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + } + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "org", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_version_id", + "description": "Unique identifier of the package version.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "description": "Empty response" + }, + "404": { + "description": "Resource Not Found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "401": { + "description": "Requires Authentication", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + + ], + "category": "packages", + "subcategory": null + } + } + }, "/orgs/{org}/projects": { "get": { "summary": "List organization projects", @@ -314342,6 +317100,2785 @@ } } }, + "/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\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/get-package-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#get-a-package-for-the-authenticated-user" + }, + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + } + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "title": "Package", + "description": "A software package", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the package.", + "type": "integer", + "example": 1 + }, + "name": { + "description": "The name of the package.", + "type": "string", + "example": "super-linter" + }, + "package_type": { + "type": "string", + "example": "docker", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "url": { + "type": "string", + "example": "https://api.github.com/orgs/github/packages/container/super-linter" + }, + "html_url": { + "type": "string", + "example": "https://github.com/orgs/github/packages/container/package/super-linter" + }, + "version_count": { + "description": "The number of versions of the package.", + "type": "integer", + "example": 1 + }, + "visibility": { + "type": "string", + "example": "private", + "enum": [ + "private", + "public" + ] + }, + "owner": { + "nullable": true, + "allOf": [ + { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:55Z\"" + } + }, + "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 + } + ] + }, + "repository": { + "nullable": true, + "allOf": [ + { + "title": "Minimal Repository", + "description": "Minimal Repository", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 1296269 + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "type": "string", + "example": "Hello-World" + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World" + }, + "owner": { + "type": "object", + "nullable": true, + "allOf": [ + { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:55Z\"" + } + }, + "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 + } + ] + }, + "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": { + "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", + "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" + }, + "push": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + } + } + }, + "template_repository": { + "nullable": true, + "type": "object", + "allOf": [ + { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the repository", + "example": 42, + "type": "integer" + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "description": "The name of the repository.", + "type": "string", + "example": "Team Environment" + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World" + }, + "license": { + "nullable": true, + "allOf": [ + { + "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" + ] + } + ] + }, + "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": { + "nullable": true, + "allOf": [ + { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:55Z\"" + } + }, + "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 + } + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "default": false, + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World" + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" + }, + "archive_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + }, + "assignees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + }, + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + }, + "branches_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + }, + "collaborators_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + }, + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + }, + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + }, + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + }, + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" + }, + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + }, + "git_refs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + }, + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + }, + "git_url": { + "type": "string", + "example": "git:github.com/octocat/Hello-World.git" + }, + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + }, + "issue_events_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + }, + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + }, + "keys_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + }, + "labels_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" + }, + "milestones_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + }, + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + }, + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + }, + "releases_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + }, + "ssh_url": { + "type": "string", + "example": "git@github.com:octocat/Hello-World.git" + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + }, + "statuses_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" + }, + "trees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + }, + "clone_url": { + "type": "string", + "example": "https://github.com/octocat/Hello-World.git" + }, + "mirror_url": { + "type": "string", + "format": "uri", + "example": "git:git.example.com/octocat/Hello-World", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "svn_url": { + "type": "string", + "format": "uri", + "example": "https://svn.github.com/octocat/Hello-World" + }, + "homepage": { + "type": "string", + "format": "uri", + "example": "https://github.com", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "forks_count": { + "type": "integer", + "example": 9 + }, + "stargazers_count": { + "type": "integer", + "example": 80 + }, + "watchers_count": { + "type": "integer", + "example": 80 + }, + "size": { + "type": "integer", + "example": 108 + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string", + "example": "master" + }, + "open_issues_count": { + "type": "integer", + "example": 0 + }, + "is_template": { + "description": "Whether this repository acts as a template that can be used to generate new repositories.", + "default": false, + "type": "boolean", + "example": true + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "has_issues": { + "description": "Whether issues are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_projects": { + "description": "Whether projects are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "archived": { + "description": "Whether the repository is archived.", + "default": false, + "type": "boolean" + }, + "disabled": { + "type": "boolean", + "description": "Returns whether or not this repository disabled." + }, + "visibility": { + "description": "The repository visibility: public, private, or internal.", + "default": "public", + "type": "string" + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z", + "nullable": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "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" + }, + "push": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + } + } + }, + "allow_rebase_merge": { + "type": "boolean" + }, + "temp_clone_token": { + "type": "string" + }, + "allow_squash_merge": { + "type": "boolean" + }, + "delete_branch_on_merge": { + "type": "boolean" + }, + "allow_merge_commit": { + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + } + } + }, + "temp_clone_token": { + "type": "string" + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "default": false, + "type": "boolean", + "example": false + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "watchers": { + "type": "integer" + }, + "master_branch": { + "type": "string" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:42Z\"" + } + }, + "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" + ] + } + ] + }, + "temp_clone_token": { + "type": "string" + }, + "delete_branch_on_merge": { + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + }, + "license": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "node_id": { + "type": "string" + } + }, + "nullable": true + }, + "forks": { + "type": "integer", + "example": 0 + }, + "open_issues": { + "type": "integer", + "example": 0 + }, + "watchers": { + "type": "integer", + "example": 0 + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url" + ] + } + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "package_type", + "visibility", + "url", + "html_url", + "version_count", + "created_at", + "updated_at" + ] + }, + "examples": { + "default": { + "value": { + "id": 40201, + "name": "octo-name", + "package_type": "rubygems", + "owner": { + "login": "octocat", + "id": 209477, + "node_id": "MDQ6VXNlcjIwOTQ3Nw==", + "avatar_url": "https://avatars.githubusercontent.com/u/209477?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "version_count": 3, + "visibility": "public", + "url": "https://api.github.com/users/octocat/packages/rubygems/octo-name", + "created_at": "2019-10-20T14:17:14Z", + "updated_at": "2019-10-20T14:17:14Z", + "repository": { + "id": 216219492, + "node_id": "MDEwOlJlcG9zaXRvcnkyMTYyMTk0OTI=", + "name": "octo-name-repo", + "full_name": "octocat/octo-name-repo", + "private": false, + "owner": { + "login": "octocat", + "id": 209477, + "node_id": "MDQ6VXNlcjIwOTQ3Nw==", + "avatar_url": "https://avatars.githubusercontent.com/u/209477?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "html_url": "https://github.com/octocat/octo-name-repo", + "description": "Project for octocats", + "fork": false, + "url": "https://api.github.com/repos/octocat/octo-name-repo", + "forks_url": "https://api.github.com/repos/octocat/octo-name-repo/forks", + "keys_url": "https://api.github.com/repos/octocat/octo-name-repo/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/octocat/octo-name-repo/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/octocat/octo-name-repo/teams", + "hooks_url": "https://api.github.com/repos/octocat/octo-name-repo/hooks", + "issue_events_url": "https://api.github.com/repos/octocat/octo-name-repo/issues/events{/number}", + "events_url": "https://api.github.com/repos/octocat/octo-name-repo/events", + "assignees_url": "https://api.github.com/repos/octocat/octo-name-repo/assignees{/user}", + "branches_url": "https://api.github.com/repos/octocat/octo-name-repo/branches{/branch}", + "tags_url": "https://api.github.com/repos/octocat/octo-name-repo/tags", + "blobs_url": "https://api.github.com/repos/octocat/octo-name-repo/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/octo-name-repo/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/octo-name-repo/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/octocat/octo-name-repo/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/octocat/octo-name-repo/statuses/{sha}", + "languages_url": "https://api.github.com/repos/octocat/octo-name-repo/languages", + "stargazers_url": "https://api.github.com/repos/octocat/octo-name-repo/stargazers", + "contributors_url": "https://api.github.com/repos/octocat/octo-name-repo/contributors", + "subscribers_url": "https://api.github.com/repos/octocat/octo-name-repo/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/octo-name-repo/subscription", + "commits_url": "https://api.github.com/repos/octocat/octo-name-repo/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/octocat/octo-name-repo/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/octocat/octo-name-repo/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/octocat/octo-name-repo/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/octocat/octo-name-repo/contents/{+path}", + "compare_url": "https://api.github.com/repos/octocat/octo-name-repo/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/octocat/octo-name-repo/merges", + "archive_url": "https://api.github.com/repos/octocat/octo-name-repo/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/octocat/octo-name-repo/downloads", + "issues_url": "https://api.github.com/repos/octocat/octo-name-repo/issues{/number}", + "pulls_url": "https://api.github.com/repos/octocat/octo-name-repo/pulls{/number}", + "milestones_url": "https://api.github.com/repos/octocat/octo-name-repo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/octo-name-repo/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/octocat/octo-name-repo/labels{/name}", + "releases_url": "https://api.github.com/repos/octocat/octo-name-repo/releases{/id}", + "deployments_url": "https://api.github.com/repos/octocat/octo-name-repo/deployments" + }, + "html_url": "https://github.com/octocat/octo-name-repo/packages/40201" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + + ], + "category": "packages", + "subcategory": null + } + }, + "delete": { + "summary": "Delete a package for the authenticated user", + "description": "Deletes a package owned by the authenticated user. You cannot delete a public package if any version of the package has more than 25 downloads. In this scenario, contact GitHub support for further assistance.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:delete` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/delete-package-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#delete-a-package-for-the-authenticated-user" + }, + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + } + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Empty response" + }, + "404": { + "description": "Resource Not Found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "401": { + "description": "Requires Authentication", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + + ], + "category": "packages", + "subcategory": null + } + } + }, + "/user/packages/{package_type}/{package_name}/restore": { + "post": { + "summary": "Restore a package for the authenticated user", + "description": "Restores a package owned by the authenticated user.\n\nYou can restore a deleted package under the following conditions:\n - The package was deleted within the last 30 days.\n - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:write` scope. If `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/restore-package-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#restore-a-package-for-the-authenticated-user" + }, + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + } + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Empty response" + }, + "404": { + "description": "Resource Not Found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "401": { + "description": "Requires Authentication", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + + ], + "category": "packages", + "subcategory": null + } + } + }, + "/user/packages/{package_type}/{package_name}/versions": { + "get": { + "summary": "Get all package versions for a package owned by the authenticated user", + "description": "Returns all package versions for a package owned by the authenticated user.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/get-all-package-versions-for-a-package-owned-by-the-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#get-all-package-versions-for-a-package-owned-by-the-authenticated-user" + }, + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + } + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "title": "Package Version", + "description": "A version of a software package", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the package version.", + "type": "integer", + "example": 1 + }, + "name": { + "description": "The name of the package version.", + "type": "string", + "example": "latest" + }, + "url": { + "type": "string", + "example": "https://api.github.com/orgs/github/packages/container/super-linter/versions/786068" + }, + "package_html_url": { + "type": "string", + "example": "https://github.com/orgs/github/packages/container/package/super-linter" + }, + "html_url": { + "type": "string", + "example": "https://github.com/orgs/github/packages/container/super-linter/786068" + }, + "license": { + "type": "string", + "example": "MIT" + }, + "description": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-10T20:09:31Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2014-03-03T18:58:10Z" + }, + "deleted_at": { + "type": "string", + "format": "date-time", + "example": "2014-03-03T18:58:10Z" + }, + "metadata": { + "type": "object", + "title": "Package Version Metadata", + "properties": { + "package_type": { + "type": "string", + "example": "docker", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "container": { + "type": "object", + "title": "Container Metadata", + "properties": { + "tags": { + "type": "array" + } + }, + "required": [ + "tags" + ] + }, + "docker": { + "type": "object", + "title": "Docker Metadata", + "properties": { + "tag": { + "type": "array" + } + }, + "required": [ + "tags" + ] + } + }, + "required": [ + "package_type" + ] + } + }, + "required": [ + "id", + "name", + "url", + "package_html_url", + "created_at", + "updated_at" + ] + } + }, + "examples": { + "default": { + "value": [ + { + "id": 45763, + "name": "sha256:08a44bab0bddaddd8837a8b381aebc2e4b933768b981685a9e088360af0d3dd9", + "url": "https://api.github.com/users/octocat/packages/container/hello_docker/versions/45763", + "package_html_url": "https://github.com/users/octocat/packages/container/package/hello_docker", + "created_at": "2020-09-11T21:56:40Z", + "updated_at": "2021-02-05T21:32:32Z", + "html_url": "https://github.com/users/octocat/packages/container/hello_docker/45763", + "metadata": { + "package_type": "container", + "container": { + "tags": [ + "latest" + ] + } + } + }, + { + "id": 881, + "name": "sha256:b3d3e366b55f9a54599220198b3db5da8f53592acbbb7dc7e4e9878762fc5344", + "url": "https://api.github.com/users/octocat/packages/container/hello_docker/versions/881", + "package_html_url": "https://github.com/users/octocat/packages/container/package/hello_docker", + "created_at": "2020-05-21T22:22:20Z", + "updated_at": "2021-02-05T21:32:32Z", + "html_url": "https://github.com/users/octocat/packages/container/hello_docker/881", + "metadata": { + "package_type": "container", + "container": { + "tags": [ + + ] + } + } + } + ] + } + } + } + } + }, + "404": { + "description": "Resource Not Found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "401": { + "description": "Requires Authentication", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + + ], + "category": "packages", + "subcategory": null + } + } + }, + "/user/packages/{package_type}/{package_name}/versions/{package_version_id}": { + "get": { + "summary": "Get a package version for the authenticated user", + "description": "Gets a specific package version for a package owned by the authenticated user.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/get-package-version-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#get-a-package-version-for-the-authenticated-user" + }, + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + } + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_version_id", + "description": "Unique identifier of the package version.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "title": "Package Version", + "description": "A version of a software package", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the package version.", + "type": "integer", + "example": 1 + }, + "name": { + "description": "The name of the package version.", + "type": "string", + "example": "latest" + }, + "url": { + "type": "string", + "example": "https://api.github.com/orgs/github/packages/container/super-linter/versions/786068" + }, + "package_html_url": { + "type": "string", + "example": "https://github.com/orgs/github/packages/container/package/super-linter" + }, + "html_url": { + "type": "string", + "example": "https://github.com/orgs/github/packages/container/super-linter/786068" + }, + "license": { + "type": "string", + "example": "MIT" + }, + "description": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-10T20:09:31Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2014-03-03T18:58:10Z" + }, + "deleted_at": { + "type": "string", + "format": "date-time", + "example": "2014-03-03T18:58:10Z" + }, + "metadata": { + "type": "object", + "title": "Package Version Metadata", + "properties": { + "package_type": { + "type": "string", + "example": "docker", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "container": { + "type": "object", + "title": "Container Metadata", + "properties": { + "tags": { + "type": "array" + } + }, + "required": [ + "tags" + ] + }, + "docker": { + "type": "object", + "title": "Docker Metadata", + "properties": { + "tag": { + "type": "array" + } + }, + "required": [ + "tags" + ] + } + }, + "required": [ + "package_type" + ] + } + }, + "required": [ + "id", + "name", + "url", + "package_html_url", + "created_at", + "updated_at" + ] + }, + "examples": { + "default": { + "value": { + "id": 214, + "name": "sha256:3561f0cff06caccddb99c93bd26e712fcc56a811de0f8ea7a17bb865f30b176a", + "url": "https://api.github.com/users/octocat/packages/container/hello_docker/versions/214", + "package_html_url": "https://github.com/users/octocat/packages/container/package/hello_docker", + "created_at": "2020-05-15T03:46:45Z", + "updated_at": "2020-05-15T03:46:45Z", + "html_url": "https://github.com/users/octocat/packages/container/hello_docker/214", + "metadata": { + "package_type": "container", + "container": { + "tags": [ + "1.13.6" + ] + } + } + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + + ], + "category": "packages", + "subcategory": null + } + }, + "delete": { + "summary": "Delete a package version for the authenticated user", + "description": "Deletes a specific package version for a package owned by the authenticated user. If the package is public and the package version has more than 25 downloads, you cannot delete the package version. In this scenario, contact GitHub support for further assistance.\n\nTo use this endpoint, you must have admin permissions in the organization and authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/delete-package-version-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#delete-a-package-version-for-the-authenticated-user" + }, + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + } + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_version_id", + "description": "Unique identifier of the package version.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "description": "Empty response" + }, + "404": { + "description": "Resource Not Found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "401": { + "description": "Requires Authentication", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + + ], + "category": "packages", + "subcategory": null + } + } + }, + "/user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore": { + "post": { + "summary": "Restore a package version for the authenticated user", + "description": "Restores a package version owned by the authenticated user.\n\nYou can restore a deleted package version under the following conditions:\n - The package was deleted within the last 30 days.\n - The same package namespace and version is still available and not reused for a new package. If the same package namespace is not available, you will not be able to restore your package. In this scenario, to restore the deleted package, you must delete the new package that uses the deleted package's namespace first.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` and `packages:write` scope. If `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/restore-package-version-for-authenticated-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#restore-a-package-version-for-the-authenticated-user" + }, + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + } + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_version_id", + "description": "Unique identifier of the package version.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + } + ], + "responses": { + "204": { + "description": "Empty response" + }, + "404": { + "description": "Resource Not Found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "401": { + "description": "Requires Authentication", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + + ], + "category": "packages", + "subcategory": null + } + } + }, "/user/projects": { "post": { "summary": "Create a user project", @@ -336266,6 +341803,2335 @@ } } }, + "/users/{username}/packages/{package_type}/{package_name}": { + "get": { + "summary": "Get a package for a user", + "description": "Gets a specific package metadata for a public package owned by a user.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/get-package-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#get-a-package-for-a-user" + }, + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + } + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "username", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "title": "Package", + "description": "A software package", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the package.", + "type": "integer", + "example": 1 + }, + "name": { + "description": "The name of the package.", + "type": "string", + "example": "super-linter" + }, + "package_type": { + "type": "string", + "example": "docker", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "url": { + "type": "string", + "example": "https://api.github.com/orgs/github/packages/container/super-linter" + }, + "html_url": { + "type": "string", + "example": "https://github.com/orgs/github/packages/container/package/super-linter" + }, + "version_count": { + "description": "The number of versions of the package.", + "type": "integer", + "example": 1 + }, + "visibility": { + "type": "string", + "example": "private", + "enum": [ + "private", + "public" + ] + }, + "owner": { + "nullable": true, + "allOf": [ + { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:55Z\"" + } + }, + "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 + } + ] + }, + "repository": { + "nullable": true, + "allOf": [ + { + "title": "Minimal Repository", + "description": "Minimal Repository", + "type": "object", + "properties": { + "id": { + "type": "integer", + "example": 1296269 + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "type": "string", + "example": "Hello-World" + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World" + }, + "owner": { + "type": "object", + "nullable": true, + "allOf": [ + { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:55Z\"" + } + }, + "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 + } + ] + }, + "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": { + "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", + "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" + }, + "push": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + } + } + }, + "template_repository": { + "nullable": true, + "type": "object", + "allOf": [ + { + "title": "Repository", + "description": "A git repository", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the repository", + "example": 42, + "type": "integer" + }, + "node_id": { + "type": "string", + "example": "MDEwOlJlcG9zaXRvcnkxMjk2MjY5" + }, + "name": { + "description": "The name of the repository.", + "type": "string", + "example": "Team Environment" + }, + "full_name": { + "type": "string", + "example": "octocat/Hello-World" + }, + "license": { + "nullable": true, + "allOf": [ + { + "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" + ] + } + ] + }, + "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": { + "nullable": true, + "allOf": [ + { + "title": "Simple User", + "description": "Simple User", + "type": "object", + "properties": { + "login": { + "type": "string", + "example": "octocat" + }, + "id": { + "type": "integer", + "example": 1 + }, + "node_id": { + "type": "string", + "example": "MDQ6VXNlcjE=" + }, + "avatar_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/images/error/octocat_happy.gif" + }, + "gravatar_id": { + "type": "string", + "example": "41d064eb2195891e12d0413f63227ea7", + "nullable": true + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat" + }, + "followers_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/followers" + }, + "following_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/following{/other_user}" + }, + "gists_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/gists{/gist_id}" + }, + "starred_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/starred{/owner}{/repo}" + }, + "subscriptions_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/subscriptions" + }, + "organizations_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/orgs" + }, + "repos_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/repos" + }, + "events_url": { + "type": "string", + "example": "https://api.github.com/users/octocat/events{/privacy}" + }, + "received_events_url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/users/octocat/received_events" + }, + "type": { + "type": "string", + "example": "User" + }, + "site_admin": { + "type": "boolean" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:55Z\"" + } + }, + "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 + } + ] + }, + "private": { + "description": "Whether the repository is private or public.", + "default": false, + "type": "boolean" + }, + "html_url": { + "type": "string", + "format": "uri", + "example": "https://github.com/octocat/Hello-World" + }, + "description": { + "type": "string", + "example": "This your first repo!", + "nullable": true + }, + "fork": { + "type": "boolean" + }, + "url": { + "type": "string", + "format": "uri", + "example": "https://api.github.com/repos/octocat/Hello-World" + }, + "archive_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}" + }, + "assignees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}" + }, + "blobs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}" + }, + "branches_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}" + }, + "collaborators_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}" + }, + "comments_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/comments{/number}" + }, + "commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}" + }, + "compare_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}" + }, + "contents_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}" + }, + "contributors_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/contributors" + }, + "deployments_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/deployments" + }, + "downloads_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/downloads" + }, + "events_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/events" + }, + "forks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/forks" + }, + "git_commits_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}" + }, + "git_refs_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}" + }, + "git_tags_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}" + }, + "git_url": { + "type": "string", + "example": "git:github.com/octocat/Hello-World.git" + }, + "issue_comment_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}" + }, + "issue_events_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}" + }, + "issues_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/issues{/number}" + }, + "keys_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}" + }, + "labels_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/labels{/name}" + }, + "languages_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/languages" + }, + "merges_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/merges" + }, + "milestones_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}" + }, + "notifications_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/notifications{?since,all,participating}" + }, + "pulls_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}" + }, + "releases_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/releases{/id}" + }, + "ssh_url": { + "type": "string", + "example": "git@github.com:octocat/Hello-World.git" + }, + "stargazers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/stargazers" + }, + "statuses_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}" + }, + "subscribers_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscribers" + }, + "subscription_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/subscription" + }, + "tags_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/tags" + }, + "teams_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/teams" + }, + "trees_url": { + "type": "string", + "example": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}" + }, + "clone_url": { + "type": "string", + "example": "https://github.com/octocat/Hello-World.git" + }, + "mirror_url": { + "type": "string", + "format": "uri", + "example": "git:git.example.com/octocat/Hello-World", + "nullable": true + }, + "hooks_url": { + "type": "string", + "format": "uri", + "example": "http://api.github.com/repos/octocat/Hello-World/hooks" + }, + "svn_url": { + "type": "string", + "format": "uri", + "example": "https://svn.github.com/octocat/Hello-World" + }, + "homepage": { + "type": "string", + "format": "uri", + "example": "https://github.com", + "nullable": true + }, + "language": { + "type": "string", + "nullable": true + }, + "forks_count": { + "type": "integer", + "example": 9 + }, + "stargazers_count": { + "type": "integer", + "example": 80 + }, + "watchers_count": { + "type": "integer", + "example": 80 + }, + "size": { + "type": "integer", + "example": 108 + }, + "default_branch": { + "description": "The default branch of the repository.", + "type": "string", + "example": "master" + }, + "open_issues_count": { + "type": "integer", + "example": 0 + }, + "is_template": { + "description": "Whether this repository acts as a template that can be used to generate new repositories.", + "default": false, + "type": "boolean", + "example": true + }, + "topics": { + "type": "array", + "items": { + "type": "string" + } + }, + "has_issues": { + "description": "Whether issues are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_projects": { + "description": "Whether projects are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_wiki": { + "description": "Whether the wiki is enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "has_pages": { + "type": "boolean" + }, + "has_downloads": { + "description": "Whether downloads are enabled.", + "default": true, + "type": "boolean", + "example": true + }, + "archived": { + "description": "Whether the repository is archived.", + "default": false, + "type": "boolean" + }, + "disabled": { + "type": "boolean", + "description": "Returns whether or not this repository disabled." + }, + "visibility": { + "description": "The repository visibility: public, private, or internal.", + "default": "public", + "type": "string" + }, + "pushed_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:06:43Z", + "nullable": true + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:01:12Z", + "nullable": true + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2011-01-26T19:14:43Z", + "nullable": true + }, + "allow_rebase_merge": { + "description": "Whether to allow rebase merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "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" + }, + "push": { + "type": "boolean" + }, + "pull": { + "type": "boolean" + } + } + }, + "allow_rebase_merge": { + "type": "boolean" + }, + "temp_clone_token": { + "type": "string" + }, + "allow_squash_merge": { + "type": "boolean" + }, + "delete_branch_on_merge": { + "type": "boolean" + }, + "allow_merge_commit": { + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + } + } + }, + "temp_clone_token": { + "type": "string" + }, + "allow_squash_merge": { + "description": "Whether to allow squash merges for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "delete_branch_on_merge": { + "description": "Whether to delete head branches when pull requests are merged", + "default": false, + "type": "boolean", + "example": false + }, + "allow_merge_commit": { + "description": "Whether to allow merge commits for pull requests.", + "default": true, + "type": "boolean", + "example": true + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + }, + "open_issues": { + "type": "integer" + }, + "watchers": { + "type": "integer" + }, + "master_branch": { + "type": "string" + }, + "starred_at": { + "type": "string", + "example": "\"2020-07-09T00:17:42Z\"" + } + }, + "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" + ] + } + ] + }, + "temp_clone_token": { + "type": "string" + }, + "delete_branch_on_merge": { + "type": "boolean" + }, + "subscribers_count": { + "type": "integer" + }, + "network_count": { + "type": "integer" + }, + "license": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "name": { + "type": "string" + }, + "spdx_id": { + "type": "string" + }, + "url": { + "type": "string" + }, + "node_id": { + "type": "string" + } + }, + "nullable": true + }, + "forks": { + "type": "integer", + "example": 0 + }, + "open_issues": { + "type": "integer", + "example": 0 + }, + "watchers": { + "type": "integer", + "example": 0 + } + }, + "required": [ + "archive_url", + "assignees_url", + "blobs_url", + "branches_url", + "collaborators_url", + "comments_url", + "commits_url", + "compare_url", + "contents_url", + "contributors_url", + "deployments_url", + "description", + "downloads_url", + "events_url", + "fork", + "forks_url", + "full_name", + "git_commits_url", + "git_refs_url", + "git_tags_url", + "hooks_url", + "html_url", + "id", + "node_id", + "issue_comment_url", + "issue_events_url", + "issues_url", + "keys_url", + "labels_url", + "languages_url", + "merges_url", + "milestones_url", + "name", + "notifications_url", + "owner", + "private", + "pulls_url", + "releases_url", + "stargazers_url", + "statuses_url", + "subscribers_url", + "subscription_url", + "tags_url", + "teams_url", + "trees_url", + "url" + ] + } + ] + }, + "created_at": { + "type": "string", + "format": "date-time" + }, + "updated_at": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "id", + "name", + "package_type", + "visibility", + "url", + "html_url", + "version_count", + "created_at", + "updated_at" + ] + }, + "examples": { + "default": { + "value": { + "id": 40201, + "name": "octo-name", + "package_type": "rubygems", + "owner": { + "login": "octocat", + "id": 209477, + "node_id": "MDQ6VXNlcjIwOTQ3Nw==", + "avatar_url": "https://avatars.githubusercontent.com/u/209477?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "version_count": 3, + "visibility": "public", + "url": "https://api.github.com/users/octocat/packages/rubygems/octo-name", + "created_at": "2019-10-20T14:17:14Z", + "updated_at": "2019-10-20T14:17:14Z", + "repository": { + "id": 216219492, + "node_id": "MDEwOlJlcG9zaXRvcnkyMTYyMTk0OTI=", + "name": "octo-name-repo", + "full_name": "octocat/octo-name-repo", + "private": false, + "owner": { + "login": "octocat", + "id": 209477, + "node_id": "MDQ6VXNlcjIwOTQ3Nw==", + "avatar_url": "https://avatars.githubusercontent.com/u/209477?v=4", + "gravatar_id": "", + "url": "https://api.github.com/users/octocat", + "html_url": "https://github.com/octocat", + "followers_url": "https://api.github.com/users/octocat/followers", + "following_url": "https://api.github.com/users/octocat/following{/other_user}", + "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", + "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", + "organizations_url": "https://api.github.com/users/octocat/orgs", + "repos_url": "https://api.github.com/users/octocat/repos", + "events_url": "https://api.github.com/users/octocat/events{/privacy}", + "received_events_url": "https://api.github.com/users/octocat/received_events", + "type": "User", + "site_admin": true + }, + "html_url": "https://github.com/octocat/octo-name-repo", + "description": "Project for octocats", + "fork": false, + "url": "https://api.github.com/repos/octocat/octo-name-repo", + "forks_url": "https://api.github.com/repos/octocat/octo-name-repo/forks", + "keys_url": "https://api.github.com/repos/octocat/octo-name-repo/keys{/key_id}", + "collaborators_url": "https://api.github.com/repos/octocat/octo-name-repo/collaborators{/collaborator}", + "teams_url": "https://api.github.com/repos/octocat/octo-name-repo/teams", + "hooks_url": "https://api.github.com/repos/octocat/octo-name-repo/hooks", + "issue_events_url": "https://api.github.com/repos/octocat/octo-name-repo/issues/events{/number}", + "events_url": "https://api.github.com/repos/octocat/octo-name-repo/events", + "assignees_url": "https://api.github.com/repos/octocat/octo-name-repo/assignees{/user}", + "branches_url": "https://api.github.com/repos/octocat/octo-name-repo/branches{/branch}", + "tags_url": "https://api.github.com/repos/octocat/octo-name-repo/tags", + "blobs_url": "https://api.github.com/repos/octocat/octo-name-repo/git/blobs{/sha}", + "git_tags_url": "https://api.github.com/repos/octocat/octo-name-repo/git/tags{/sha}", + "git_refs_url": "https://api.github.com/repos/octocat/octo-name-repo/git/refs{/sha}", + "trees_url": "https://api.github.com/repos/octocat/octo-name-repo/git/trees{/sha}", + "statuses_url": "https://api.github.com/repos/octocat/octo-name-repo/statuses/{sha}", + "languages_url": "https://api.github.com/repos/octocat/octo-name-repo/languages", + "stargazers_url": "https://api.github.com/repos/octocat/octo-name-repo/stargazers", + "contributors_url": "https://api.github.com/repos/octocat/octo-name-repo/contributors", + "subscribers_url": "https://api.github.com/repos/octocat/octo-name-repo/subscribers", + "subscription_url": "https://api.github.com/repos/octocat/octo-name-repo/subscription", + "commits_url": "https://api.github.com/repos/octocat/octo-name-repo/commits{/sha}", + "git_commits_url": "https://api.github.com/repos/octocat/octo-name-repo/git/commits{/sha}", + "comments_url": "https://api.github.com/repos/octocat/octo-name-repo/comments{/number}", + "issue_comment_url": "https://api.github.com/repos/octocat/octo-name-repo/issues/comments{/number}", + "contents_url": "https://api.github.com/repos/octocat/octo-name-repo/contents/{+path}", + "compare_url": "https://api.github.com/repos/octocat/octo-name-repo/compare/{base}...{head}", + "merges_url": "https://api.github.com/repos/octocat/octo-name-repo/merges", + "archive_url": "https://api.github.com/repos/octocat/octo-name-repo/{archive_format}{/ref}", + "downloads_url": "https://api.github.com/repos/octocat/octo-name-repo/downloads", + "issues_url": "https://api.github.com/repos/octocat/octo-name-repo/issues{/number}", + "pulls_url": "https://api.github.com/repos/octocat/octo-name-repo/pulls{/number}", + "milestones_url": "https://api.github.com/repos/octocat/octo-name-repo/milestones{/number}", + "notifications_url": "https://api.github.com/repos/octocat/octo-name-repo/notifications{?since,all,participating}", + "labels_url": "https://api.github.com/repos/octocat/octo-name-repo/labels{/name}", + "releases_url": "https://api.github.com/repos/octocat/octo-name-repo/releases{/id}", + "deployments_url": "https://api.github.com/repos/octocat/octo-name-repo/deployments" + }, + "html_url": "https://github.com/octocat/octo-name-repo/packages/40201" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + + ], + "category": "packages", + "subcategory": null + } + } + }, + "/users/{username}/packages/{package_type}/{package_name}/versions": { + "get": { + "summary": "Get all package versions for a package owned by a user", + "description": "Returns all package versions for a public package owned by a specified user.\n\nTo use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/get-all-package-versions-for-package-owned-by-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#get-all-package-versions-for-a-package-owned-by-a-user" + }, + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + } + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "username", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "title": "Package Version", + "description": "A version of a software package", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the package version.", + "type": "integer", + "example": 1 + }, + "name": { + "description": "The name of the package version.", + "type": "string", + "example": "latest" + }, + "url": { + "type": "string", + "example": "https://api.github.com/orgs/github/packages/container/super-linter/versions/786068" + }, + "package_html_url": { + "type": "string", + "example": "https://github.com/orgs/github/packages/container/package/super-linter" + }, + "html_url": { + "type": "string", + "example": "https://github.com/orgs/github/packages/container/super-linter/786068" + }, + "license": { + "type": "string", + "example": "MIT" + }, + "description": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-10T20:09:31Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2014-03-03T18:58:10Z" + }, + "deleted_at": { + "type": "string", + "format": "date-time", + "example": "2014-03-03T18:58:10Z" + }, + "metadata": { + "type": "object", + "title": "Package Version Metadata", + "properties": { + "package_type": { + "type": "string", + "example": "docker", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "container": { + "type": "object", + "title": "Container Metadata", + "properties": { + "tags": { + "type": "array" + } + }, + "required": [ + "tags" + ] + }, + "docker": { + "type": "object", + "title": "Docker Metadata", + "properties": { + "tag": { + "type": "array" + } + }, + "required": [ + "tags" + ] + } + }, + "required": [ + "package_type" + ] + } + }, + "required": [ + "id", + "name", + "url", + "package_html_url", + "created_at", + "updated_at" + ] + } + }, + "examples": { + "default": { + "value": [ + { + "id": 3497268, + "name": "0.3.0", + "url": "https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/3497268", + "package_html_url": "https://github.com/octocat/octo-name-repo/packages/40201", + "license": "MIT", + "created_at": "2020-08-31T15:22:11Z", + "updated_at": "2020-08-31T15:22:12Z", + "description": "Project for octocats", + "html_url": "https://github.com/octocat/octo-name-repo/packages/40201?version=0.3.0", + "metadata": { + "package_type": "rubygems" + } + }, + { + "id": 387039, + "name": "0.2.0", + "url": "https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/387039", + "package_html_url": "https://github.com/octocat/octo-name-repo/packages/40201", + "license": "MIT", + "created_at": "2019-12-01T20:49:29Z", + "updated_at": "2019-12-01T20:49:30Z", + "description": "Project for octocats", + "html_url": "https://github.com/octocat/octo-name-repo/packages/40201?version=0.2.0", + "metadata": { + "package_type": "rubygems" + } + }, + { + "id": 169770, + "name": "0.1.0", + "url": "https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/169770", + "package_html_url": "https://github.com/octocat/octo-name-repo/packages/40201", + "license": "MIT", + "created_at": "2019-10-20T14:17:14Z", + "updated_at": "2019-10-20T14:17:15Z", + "html_url": "https://github.com/octocat/octo-name-repo/packages/40201?version=0.1.0", + "metadata": { + "package_type": "rubygems" + } + } + ] + } + } + } + } + }, + "404": { + "description": "Resource Not Found", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + }, + "401": { + "description": "Requires Authentication", + "content": { + "application/json": { + "schema": { + "title": "Basic Error", + "description": "Basic Error", + "type": "object", + "properties": { + "message": { + "type": "string" + }, + "documentation_url": { + "type": "string" + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + + ], + "category": "packages", + "subcategory": null + } + } + }, + "/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\nAt this time, to use this endpoint, you must authenticate using an access token with the `packages:read` scope.\nIf `package_type` is not `container`, your token must also include the `repo` scope.", + "tags": [ + "packages" + ], + "operationId": "packages/get-package-version-for-user", + "externalDocs": { + "description": "API method documentation", + "url": "https://docs.github.com/rest/reference/packages#get-a-package-version-for-a-user" + }, + "parameters": [ + { + "name": "package_type", + "description": "The type of supported package. Can be one of `npm`, `maven`, `rubygems`, `nuget`, `docker`, or `container`. For Docker images that use the package namespace `https://ghcr.io/owner/package-name`, use `container`.", + "in": "path", + "required": true, + "schema": { + "type": "string", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + } + }, + { + "name": "package_name", + "description": "The name of the package.", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "package_version_id", + "description": "Unique identifier of the package version.", + "in": "path", + "required": true, + "schema": { + "type": "integer" + } + }, + { + "name": "username", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "response", + "content": { + "application/json": { + "schema": { + "title": "Package Version", + "description": "A version of a software package", + "type": "object", + "properties": { + "id": { + "description": "Unique identifier of the package version.", + "type": "integer", + "example": 1 + }, + "name": { + "description": "The name of the package version.", + "type": "string", + "example": "latest" + }, + "url": { + "type": "string", + "example": "https://api.github.com/orgs/github/packages/container/super-linter/versions/786068" + }, + "package_html_url": { + "type": "string", + "example": "https://github.com/orgs/github/packages/container/package/super-linter" + }, + "html_url": { + "type": "string", + "example": "https://github.com/orgs/github/packages/container/super-linter/786068" + }, + "license": { + "type": "string", + "example": "MIT" + }, + "description": { + "type": "string" + }, + "created_at": { + "type": "string", + "format": "date-time", + "example": "2011-04-10T20:09:31Z" + }, + "updated_at": { + "type": "string", + "format": "date-time", + "example": "2014-03-03T18:58:10Z" + }, + "deleted_at": { + "type": "string", + "format": "date-time", + "example": "2014-03-03T18:58:10Z" + }, + "metadata": { + "type": "object", + "title": "Package Version Metadata", + "properties": { + "package_type": { + "type": "string", + "example": "docker", + "enum": [ + "npm", + "maven", + "rubygems", + "docker", + "nuget", + "container" + ] + }, + "container": { + "type": "object", + "title": "Container Metadata", + "properties": { + "tags": { + "type": "array" + } + }, + "required": [ + "tags" + ] + }, + "docker": { + "type": "object", + "title": "Docker Metadata", + "properties": { + "tag": { + "type": "array" + } + }, + "required": [ + "tags" + ] + } + }, + "required": [ + "package_type" + ] + } + }, + "required": [ + "id", + "name", + "url", + "package_html_url", + "created_at", + "updated_at" + ] + }, + "examples": { + "default": { + "value": { + "id": 387039, + "name": "0.2.0", + "url": "https://api.github.com/users/octocat/packages/rubygems/octo-name/versions/387039", + "package_html_url": "https://github.com/octocat/octo-name-repo/packages/40201", + "license": "MIT", + "created_at": "2019-12-01T20:49:29Z", + "updated_at": "2019-12-01T20:49:30Z", + "description": "Octo-name client for Ruby", + "html_url": "https://github.com/octocat/octo-name-repo/packages/40201?version=0.2.0", + "metadata": { + "package_type": "rubygems" + } + } + } + } + } + } + } + }, + "x-github": { + "githubCloudOnly": false, + "enabledForGitHubApps": false, + "previews": [ + + ], + "category": "packages", + "subcategory": null + } + } + }, "/users/{username}/projects": { "get": { "summary": "List user projects",