Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-07-02 00:08:38 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-07-02 00:08:38 +0300
commitf8975b16d11afde69e398a8c607a27e0c05b48f9 (patch)
treeb55c272e69d7df57cd426a2e471b64c007980eff /doc/api/packages
parented323a3c6fcc2927e217b72121875abd448c2785 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'doc/api/packages')
-rw-r--r--doc/api/packages/debian.md151
-rw-r--r--doc/api/packages/debian_group_distributions.md222
-rw-r--r--doc/api/packages/debian_project_distributions.md222
3 files changed, 595 insertions, 0 deletions
diff --git a/doc/api/packages/debian.md b/doc/api/packages/debian.md
new file mode 100644
index 00000000000..cd97bd609df
--- /dev/null
+++ b/doc/api/packages/debian.md
@@ -0,0 +1,151 @@
+---
+stage: Package
+group: Package
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
+---
+
+# Debian API
+
+This is the API documentation for [Debian](../../user/packages/debian_repository/index.md).
+
+WARNING:
+This API is used by the Debian related package clients such as [dput](https://manpages.debian.org/stable/dput-ng/dput.1.en.html)
+and [apt-get](https://manpages.debian.org/stable/apt/apt-get.8.en.html),
+and is generally not meant for manual consumption. This API is under development and is not ready
+for production use due to limited functionality.
+
+For instructions on how to upload and install Debian packages from the GitLab
+package registry, see the [Debian registry documentation](../../user/packages/debian_repository/index.md).
+
+NOTE:
+These endpoints do not adhere to the standard API authentication methods.
+See the [Debian registry documentation](../../user/packages/debian_repository/index.md)
+for details on which headers and token types are supported.
+
+## Enable the Debian API
+
+The Debian API for GitLab is behind a feature flag that is disabled by default. GitLab
+administrators with access to the GitLab Rails console can enable this API for your instance.
+
+To enable it:
+
+```ruby
+Feature.enable(:debian_packages)
+```
+
+To disable it:
+
+```ruby
+Feature.disable(:debian_packages)
+```
+
+## Upload a package file
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62028) in GitLab 14.0.
+
+Upload a Debian package file:
+
+```plaintext
+PUT projects/:id/packages/debian/:file_name
+```
+
+| Attribute | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `id` | string | yes | The ID or full path of the project. |
+| `file_name` | string | yes | The name of the Debian package file. |
+
+```shell
+curl --request PUT \
+ --upload-file path/to/mypkg.deb \
+ --header "Private-Token: <personal_access_token>" \
+ "https://gitlab.example.com/api/v4/projects/1/packages/debian/mypkg.deb"
+```
+
+## Route prefix
+
+The remaining endpoints described are two sets of identical routes that each make requests in
+different scopes:
+
+- Use the project-level prefix to make requests in a single project's scope.
+- Use the group-level prefix to make requests in a single group's scope.
+
+The examples in this document all use the project-level prefix.
+
+### Project-level
+
+```plaintext
+ /projects/:id/packages/debian`
+```
+
+| Attribute | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `id` | string | yes | The project ID or full project path. |
+
+### Group-level
+
+```plaintext
+ /groups/:id/-/packages/debian`
+```
+
+| Attribute | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `id` | string | yes | The project ID or full group path. |
+
+## Download a distribution Release file
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64067) in GitLab 14.1.
+
+Download a Debian package file.
+
+```plaintext
+GET <route-prefix>/dists/*distribution/Release
+```
+
+| Attribute | Type | Required | Description |
+| ----------------- | ------ | -------- | ----------- |
+| `distribution` | string | yes | The codename or suite of the Debian distribution. |
+
+```shell
+curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release"
+```
+
+Write the output to a file:
+
+```shell
+curl --header "Private-Token: <personal_access_token>" \
+ "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/Release" \
+ --remote-name
+```
+
+This writes the downloaded file to `Release` in the current directory.
+
+## Download a signed distribution Release file
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64067) in GitLab 14.1.
+
+Download a Debian package file.
+
+Signed releases are [not supported](https://gitlab.com/groups/gitlab-org/-/epics/6057#note_582697034).
+Therefore, this endpoint downloads the unsigned release file.
+
+```plaintext
+GET <route-prefix>/dists/*distribution/InRelease
+```
+
+| Attribute | Type | Required | Description |
+| ----------------- | ------ | -------- | ----------- |
+| `distribution` | string | yes | The codename or suite of the Debian distribution. |
+
+```shell
+curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/InRelease"
+```
+
+Write the output to a file:
+
+```shell
+curl --header "Private-Token: <personal_access_token>" \
+ "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/InRelease" \
+ --remote-name
+```
+
+This writes the downloaded file to `InRelease` in the current directory.
diff --git a/doc/api/packages/debian_group_distributions.md b/doc/api/packages/debian_group_distributions.md
new file mode 100644
index 00000000000..ba61bf49e01
--- /dev/null
+++ b/doc/api/packages/debian_group_distributions.md
@@ -0,0 +1,222 @@
+---
+stage: Package
+group: Package
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
+---
+
+# Debian group distributions API **(FREE)**
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/5835) in GitLab 14.0.
+
+See the [Debian package registry documentation](../../user/packages/debian_repository/index.md)
+for more information about working with Debian packages.
+
+## Enable Debian repository feature
+
+Debian repository support is gated behind a feature flag that is **disabled by default**.
+[GitLab administrators with access to the GitLab Rails console](../../administration/feature_flags.md)
+can opt to enable it.
+
+To enable it:
+
+```ruby
+Feature.enable(:debian_packages)
+```
+
+To disable it:
+
+```ruby
+Feature.disable(:debian_packages)
+```
+
+## List all Debian distributions in a group
+
+Lists Debian distributions in the given group.
+
+```plaintext
+GET /groups/:id/debian_distributions
+```
+
+| Attribute | Type | Required | Description |
+| ---------- | --------------- | -------- | ----------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the group](../index.md#namespaced-path-encoding). |
+| `codename` | string | no | Filter with specific `codename`. |
+| `suite` | string | no | Filter with specific `suite`. |
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/debian_distributions"
+```
+
+Example response:
+
+```json
+[
+ {
+ "id": 1,
+ "codename": "unstable",
+ "suite": null,
+ "origin": null,
+ "label": null,
+ "version": null,
+ "description": null,
+ "valid_time_duration_seconds": null,
+ "components": [
+ "main"
+ ],
+ "architectures": [
+ "all",
+ "amd64"
+ ]
+ }
+]
+```
+
+## Single Debian group distribution
+
+Gets a single Debian group distribution.
+
+```plaintext
+GET /groups/:id/debian_distributions/:codename
+```
+
+| Attribute | Type | Required | Description |
+| ---------- | -------------- | -------- | ----------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the group](../index.md#namespaced-path-encoding) owned by the authenticated user. |
+| `codename` | integer | yes | The `codename` of a distribution. |
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/debian_distributions/unstable"
+```
+
+Example response:
+
+```json
+{
+ "id": 1,
+ "codename": "unstable",
+ "suite": null,
+ "origin": null,
+ "label": null,
+ "version": null,
+ "description": null,
+ "valid_time_duration_seconds": null,
+ "components": [
+ "main"
+ ],
+ "architectures": [
+ "all",
+ "amd64"
+ ]
+}
+```
+
+## Create a Debian group distribution
+
+Creates a Debian group distribution.
+
+```plaintext
+POST /groups/:id/debian_distributions
+```
+
+| Attribute | Type | Required | Description |
+| ----------------------------- | -------------- | -------- | ----------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the group](../index.md#namespaced-path-encoding) owned by the authenticated user. |
+| `codename` | string | yes | The codename of a Debian distribution. |
+| `suite` | string | no | The suite of the new Debian distribution. |
+| `origin` | string | no | The origin of the new Debian distribution. |
+| `label` | string | no | The label of the new Debian distribution. |
+| `version` | string | no | The version of the new Debian distribution. |
+| `description` | string | no | The description of the new Debian distribution. |
+| `valid_time_duration_seconds` | integer | no | The valid time duration (in seconds) of the new Debian distribution. |
+| `components` | architectures | no | The new Debian distribution's list of components. |
+| `architectures` | architectures | no | The new Debian distribution's list of architectures. |
+
+```shell
+curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/debian_distributions?codename=unstable"
+```
+
+Example response:
+
+```json
+{
+ "id": 1,
+ "codename": "unstable",
+ "suite": null,
+ "origin": null,
+ "label": null,
+ "version": null,
+ "description": null,
+ "valid_time_duration_seconds": null,
+ "components": [
+ "main"
+ ],
+ "architectures": [
+ "all",
+ "amd64"
+ ]
+}
+```
+
+## Update a Debian group distribution
+
+Updates a Debian group distribution.
+
+```plaintext
+PUT /groups/:id/debian_distributions/:codename
+```
+
+| Attribute | Type | Required | Description |
+| ----------------------------- | -------------- | -------- | ----------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the group](../index.md#namespaced-path-encoding) owned by the authenticated user. |
+| `codename` | string | yes | The Debian distribution's new codename. |
+| `suite` | string | no | The Debian distribution's new suite. |
+| `origin` | string | no | The Debian distribution's new origin. |
+| `label` | string | no | The Debian distribution's new label. |
+| `version` | string | no | The Debian distribution's new version. |
+| `description` | string | no | The Debian distribution's new description. |
+| `valid_time_duration_seconds` | integer | no | The Debian distribution's new valid time duration (in seconds). |
+| `components` | architectures | no | The Debian distribution's new list of components. |
+| `architectures` | architectures | no | The Debian distribution's new list of architectures. |
+
+```shell
+curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/debian_distributions/unstable?suite=new-suite&valid_time_duration_seconds=604800"
+```
+
+Example response:
+
+```json
+{
+ "id": 1,
+ "codename": "unstable",
+ "suite": "new-suite",
+ "origin": null,
+ "label": null,
+ "version": null,
+ "description": null,
+ "valid_time_duration_seconds": 604800,
+ "components": [
+ "main"
+ ],
+ "architectures": [
+ "all",
+ "amd64"
+ ]
+}
+```
+
+## Delete a Debian group distribution
+
+Deletes a Debian group distribution.
+
+```plaintext
+DELETE /groups/:id/debian_distributions/:codename
+```
+
+| Attribute | Type | Required | Description |
+| ---------- | -------------- | -------- | ----------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the group](../index.md#namespaced-path-encoding) owned by the authenticated user. |
+| `codename` | integer | yes | The codename of the Debian distribution. |
+
+```shell
+curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/5/debian_distributions/unstable"
+```
diff --git a/doc/api/packages/debian_project_distributions.md b/doc/api/packages/debian_project_distributions.md
new file mode 100644
index 00000000000..aad5558dcba
--- /dev/null
+++ b/doc/api/packages/debian_project_distributions.md
@@ -0,0 +1,222 @@
+---
+stage: Package
+group: Package
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments
+---
+
+# Debian project distributions API **(FREE)**
+
+> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/5835) in GitLab 14.0.
+
+See the [Debian package registry documentation](../../user/packages/debian_repository/index.md)
+for more information about working with Debian packages.
+
+## Enable Debian repository feature
+
+Debian repository support is gated behind a feature flag that is **disabled by default**.
+[GitLab administrators with access to the GitLab Rails console](../../administration/feature_flags.md)
+can opt to enable it.
+
+To enable it:
+
+```ruby
+Feature.enable(:debian_packages)
+```
+
+To disable it:
+
+```ruby
+Feature.disable(:debian_packages)
+```
+
+## List all Debian distributions in a project
+
+Lists Debian distributions in the given project.
+
+```plaintext
+GET /projects/:id/debian_distributions
+```
+
+| Attribute | Type | Required | Description |
+| ---------- | -------------- | -------- | ----------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the project](../index.md#namespaced-path-encoding). |
+| `codename` | string | no | Filter with a specific `codename`. |
+| `suite` | string | no | Filter with a specific `suite`. |
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/debian_distributions"
+```
+
+Example response:
+
+```json
+[
+ {
+ "id": 1,
+ "codename": "unstable",
+ "suite": null,
+ "origin": null,
+ "label": null,
+ "version": null,
+ "description": null,
+ "valid_time_duration_seconds": null,
+ "components": [
+ "main"
+ ],
+ "architectures": [
+ "all",
+ "amd64"
+ ]
+ }
+]
+```
+
+## Single Debian project distribution
+
+Gets a single Debian project distribution.
+
+```plaintext
+GET /projects/:id/debian_distributions/:codename
+```
+
+| Attribute | Type | Required | Description |
+| ---------- | -------------- | -------- | ----------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the project](../index.md#namespaced-path-encoding) owned by the authenticated user. |
+| `codename` | integer | yes | The `codename` of a distribution. |
+
+```shell
+curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/debian_distributions/unstable"
+```
+
+Example response:
+
+```json
+{
+ "id": 1,
+ "codename": "unstable",
+ "suite": null,
+ "origin": null,
+ "label": null,
+ "version": null,
+ "description": null,
+ "valid_time_duration_seconds": null,
+ "components": [
+ "main"
+ ],
+ "architectures": [
+ "all",
+ "amd64"
+ ]
+}
+```
+
+## Create a Debian project distribution
+
+Creates a Debian project distribution.
+
+```plaintext
+POST /projects/:id/debian_distributions
+```
+
+| Attribute | Type | Required | Description |
+| ----------------------------- | -------------- | -------- | ----------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the project](../index.md#namespaced-path-encoding) owned by the authenticated user. |
+| `codename` | string | yes | The Debian distribution's codename. |
+| `suite` | string | no | The new Debian distribution's suite. |
+| `origin` | string | no | The new Debian distribution's origin. |
+| `label` | string | no | The new Debian distribution's label. |
+| `version` | string | no | The new Debian distribution's version. |
+| `description` | string | no | The new Debian distribution's description. |
+| `valid_time_duration_seconds` | integer | no | The new Debian distribution's valid time duration (in seconds). |
+| `components` | architectures | no | The new Debian distribution's list of components. |
+| `architectures` | architectures | no | The new Debian distribution's list of architectures. |
+
+```shell
+curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/debian_distributions?codename=unstable"
+```
+
+Example response:
+
+```json
+{
+ "id": 1,
+ "codename": "unstable",
+ "suite": null,
+ "origin": null,
+ "label": null,
+ "version": null,
+ "description": null,
+ "valid_time_duration_seconds": null,
+ "components": [
+ "main"
+ ],
+ "architectures": [
+ "all",
+ "amd64"
+ ]
+}
+```
+
+## Update a Debian project distribution
+
+Updates a Debian project distribution.
+
+```plaintext
+PUT /projects/:id/debian_distributions/:codename
+```
+
+| Attribute | Type | Required | Description |
+| ----------------------------- | -------------- | -------- | ----------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the project](../index.md#namespaced-path-encoding) owned by the authenticated user. |
+| `codename` | string | yes | The Debian distribution's codename. |
+| `suite` | string | no | The Debian distribution's new suite. |
+| `origin` | string | no | The Debian distribution's new origin. |
+| `label` | string | no | The Debian distribution's new label. |
+| `version` | string | no | The Debian distribution's new version. |
+| `description` | string | no | The Debian distribution's new description. |
+| `valid_time_duration_seconds` | integer | no | The Debian distribution's new valid time duration (in seconds). |
+| `components` | architectures | no | The Debian distribution's new list of components. |
+| `architectures` | architectures | no | The Debian distribution's new list of architectures. |
+
+```shell
+curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/debian_distributions/unstable?suite=new-suite&valid_time_duration_seconds=604800"
+```
+
+Example response:
+
+```json
+{
+ "id": 1,
+ "codename": "unstable",
+ "suite": "new-suite",
+ "origin": null,
+ "label": null,
+ "version": null,
+ "description": null,
+ "valid_time_duration_seconds": 604800,
+ "components": [
+ "main"
+ ],
+ "architectures": [
+ "all",
+ "amd64"
+ ]
+}
+```
+
+## Delete a Debian project distribution
+
+Deletes a Debian project distribution.
+
+```plaintext
+DELETE /projects/:id/debian_distributions/:codename
+```
+
+| Attribute | Type | Required | Description |
+| ---------- | -------------- | -------- | ----------- |
+| `id` | integer/string | yes | The ID or [URL-encoded path of the project](../index.md#namespaced-path-encoding) owned by the authenticated user. |
+| `codename` | integer | yes | The Debian distribution's codename. |
+
+```shell
+curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/5/debian_distributions/unstable"
+```