diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/administration/monitoring/ip_whitelist.md | 2 | ||||
-rw-r--r-- | doc/api/packages/debian.md | 101 | ||||
-rw-r--r-- | doc/api/projects.md | 48 | ||||
-rw-r--r-- | doc/development/documentation/structure.md | 12 | ||||
-rw-r--r-- | doc/development/testing_guide/frontend_testing.md | 12 | ||||
-rw-r--r-- | doc/user/compliance/license_compliance/img/policies_maintainer_edit_v14_2.png | bin | 30802 -> 9843 bytes | |||
-rw-r--r-- | doc/user/gitlab_com/index.md | 2 | ||||
-rw-r--r-- | doc/user/packages/debian_repository/index.md | 37 |
8 files changed, 180 insertions, 34 deletions
diff --git a/doc/administration/monitoring/ip_whitelist.md b/doc/administration/monitoring/ip_whitelist.md index 20c97a0df8f..b6df176ea87 100644 --- a/doc/administration/monitoring/ip_whitelist.md +++ b/doc/administration/monitoring/ip_whitelist.md @@ -9,7 +9,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w > Introduced in GitLab 9.4. NOTE: -We intend to [rename IP whitelist as `IP allowlist`](https://gitlab.com/gitlab-org/gitlab/-/issues/7554). +We intend to [rename IP whitelist as `IP allowlist`](https://gitlab.com/groups/gitlab-org/-/epics/3478). GitLab provides some [monitoring endpoints](../../user/admin_area/monitoring/health_check.md) that provide health check information when probed. diff --git a/doc/api/packages/debian.md b/doc/api/packages/debian.md index 797955ea600..0912f894fa3 100644 --- a/doc/api/packages/debian.md +++ b/doc/api/packages/debian.md @@ -74,6 +74,38 @@ curl --request PUT \ "https://gitlab.example.com/api/v4/projects/1/packages/debian/mypkg.deb" ``` +## Download a package + +> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64923) in GitLab 14.2. + +Download a package file. + +```plaintext +GET projects/:id/packages/debian/pool/:distribution/:letter/:package_name/:package_version/:file_name +``` + +| Attribute | Type | Required | Description | +| ----------------- | ------ | -------- | ----------- | +| `distribution` | string | yes | The codename or suite of the Debian distribution. | +| `letter` | string | yes | The Debian Classification (first-letter or lib-first-letter). | +| `package_name` | string | yes | The source package name. | +| `package_version` | string | yes | The source package version. | +| `file_name` | string | yes | The file name. | + +```shell +curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/pool/my-distro/a/my-pkg/1.0.0/example_1.0.0~alpha2_amd64.deb" +``` + +Write the output to a file: + +```shell +curl --header "Private-Token: <personal_access_token>" \ + "https://gitlab.example.com/api/v4/projects/1/packages/pool/my-distro/a/my-pkg/1.0.0/example_1.0.0~alpha2_amd64.deb" \ + --remote-name +``` + +This writes the downloaded file using the remote file name in the current directory. + ## Route prefix The remaining endpoints described are two sets of identical routes that each make requests in @@ -108,7 +140,7 @@ The examples in this document all use the project-level prefix. > [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64067) in GitLab 14.1. -Download a Debian package file. +Download a Debian distribution file. ```plaintext GET <route-prefix>/dists/*distribution/Release @@ -130,16 +162,13 @@ curl --header "Private-Token: <personal_access_token>" \ --remote-name ``` -This writes the downloaded file to `Release` in the current directory. +This writes the downloaded file using the remote file name 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. +Download a signed Debian distribution file. ```plaintext GET <route-prefix>/dists/*distribution/InRelease @@ -161,4 +190,62 @@ curl --header "Private-Token: <personal_access_token>" \ --remote-name ``` -This writes the downloaded file to `InRelease` in the current directory. +This writes the downloaded file using the remote file name in the current directory. + +## Download a release file signature + +> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64923) in GitLab 14.2. + +Download a Debian release file signature. + +```plaintext +GET <route-prefix>/dists/*distribution/Release.gpg +``` + +| 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.gpg" +``` + +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.gpg" \ + --remote-name +``` + +This writes the downloaded file using the remote file name in the current directory. + +## Download a binary file's index + +> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64923) in GitLab 14.2. + +Download a distribution index. + +```plaintext +GET <route-prefix>/dists/*distribution/:component/binary-:architecture/Packages +``` + +| Attribute | Type | Required | Description | +| ----------------- | ------ | -------- | ----------- | +| `distribution` | string | yes | The codename or suite of the Debian distribution. | +| `component` | string | yes | The distribution component name. | +| `architecture` | string | yes | The distribution architecture type. | + +```shell +curl --header "Private-Token: <personal_access_token>" "https://gitlab.example.com/api/v4/projects/1/packages/debian/dists/my-distro/main/amd64/Packages" +``` + +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/main/amd64/Packages" \ + --remote-name +``` + +This writes the downloaded file using the remote file name in the current directory. diff --git a/doc/api/projects.md b/doc/api/projects.md index 240cb844087..fc39036891c 100644 --- a/doc/api/projects.md +++ b/doc/api/projects.md @@ -149,7 +149,8 @@ When the user is authenticated and `simple` is not set this returns something li "snippets_enabled": false, "can_create_merge_request_in": true, "resolve_outdated_diff_discussions": false, - "container_registry_enabled": false, + "container_registry_enabled": false, // deprecated, use container_registry_access_level instead + "container_registry_access_level": "disabled", "created_at": "2013-09-30T13:46:02Z", "last_activity_at": "2013-09-30T13:46:02Z", "creator_id": 3, @@ -238,7 +239,8 @@ When the user is authenticated and `simple` is not set this returns something li "snippets_enabled": false, "can_create_merge_request_in": true, "resolve_outdated_diff_discussions": false, - "container_registry_enabled": false, + "container_registry_enabled": false, // deprecated, use container_registry_access_level instead + "container_registry_access_level": "disabled", "created_at": "2013-09-30T13:46:02Z", "last_activity_at": "2013-09-30T13:46:02Z", "creator_id": 3, @@ -425,7 +427,8 @@ GET /users/:user_id/projects "snippets_enabled": false, "can_create_merge_request_in": true, "resolve_outdated_diff_discussions": false, - "container_registry_enabled": false, + "container_registry_enabled": false, // deprecated, use container_registry_access_level instead + "container_registry_access_level": "disabled", "created_at": "2013-09-30T13:46:02Z", "last_activity_at": "2013-09-30T13:46:02Z", "creator_id": 3, @@ -514,7 +517,8 @@ GET /users/:user_id/projects "snippets_enabled": false, "can_create_merge_request_in": true, "resolve_outdated_diff_discussions": false, - "container_registry_enabled": false, + "container_registry_enabled": false, // deprecated, use container_registry_access_level instead + "container_registry_access_level": "disabled", "created_at": "2013-09-30T13:46:02Z", "last_activity_at": "2013-09-30T13:46:02Z", "creator_id": 3, @@ -663,7 +667,8 @@ Example response: "snippets_enabled": false, "can_create_merge_request_in": true, "resolve_outdated_diff_discussions": false, - "container_registry_enabled": false, + "container_registry_enabled": false, // deprecated, use container_registry_access_level instead + "container_registry_access_level": "disabled", "created_at": "2013-09-30T13:46:02Z", "last_activity_at": "2013-09-30T13:46:02Z", "creator_id": 3, @@ -745,7 +750,8 @@ Example response: "snippets_enabled": false, "can_create_merge_request_in": true, "resolve_outdated_diff_discussions": false, - "container_registry_enabled": false, + "container_registry_enabled": false, // deprecated, use container_registry_access_level instead + "container_registry_access_level": "disabled", "created_at": "2013-09-30T13:46:02Z", "last_activity_at": "2013-09-30T13:46:02Z", "creator_id": 3, @@ -871,7 +877,8 @@ GET /projects/:id "snippets_enabled": false, "can_create_merge_request_in": true, "resolve_outdated_diff_discussions": false, - "container_registry_enabled": false, + "container_registry_enabled": false, // deprecated, use container_registry_access_level instead + "container_registry_access_level": "disabled", "container_expiration_policy": { "cadence": "7d", "enabled": false, @@ -1181,7 +1188,8 @@ POST /projects | `builds_access_level` | string | **{dotted-circle}** No | One of `disabled`, `private`, or `enabled`. | | `ci_config_path` | string | **{dotted-circle}** No | The path to CI configuration file. | | `container_expiration_policy_attributes` | hash | **{dotted-circle}** No | Update the image cleanup policy for this project. Accepts: `cadence` (string), `keep_n` (integer), `older_than` (string), `name_regex` (string), `name_regex_delete` (string), `name_regex_keep` (string), `enabled` (boolean). Valid values for `cadence` are: `1d` (every day), `7d` (every week), `14d` (every two weeks), `1month` (every month), or `3month` (every quarter). | -| `container_registry_enabled` | boolean | **{dotted-circle}** No | Enable container registry for this project. | +| `container_registry_enabled` | boolean | **{dotted-circle}** No | _(Deprecated)_ Enable container registry for this project. Use `container_registry_access_level` instead. | +| `container_registry_access_level` | string | **{dotted-circle}** No | Set visibility of container registry, for this project, to one of `disabled`, `private` or `enabled`. | | `default_branch` | string | **{dotted-circle}** No | The [default branch](../user/project/repository/branches/default.md) name. Requires `initialize_with_readme` to be `true`. | | `description` | string | **{dotted-circle}** No | Short project description. | | `emails_disabled` | boolean | **{dotted-circle}** No | Disable email notifications. | @@ -1256,7 +1264,8 @@ POST /projects/user/:user_id | `build_timeout` | integer | **{dotted-circle}** No | The maximum amount of time, in seconds, that a job can run. | | `builds_access_level` | string | **{dotted-circle}** No | One of `disabled`, `private`, or `enabled`. | | `ci_config_path` | string | **{dotted-circle}** No | The path to CI configuration file. | -| `container_registry_enabled` | boolean | **{dotted-circle}** No | Enable container registry for this project. | +| `container_registry_enabled` | boolean | **{dotted-circle}** No | _(Deprecated)_ Enable container registry for this project. Use `container_registry_access_level` instead. | +| `container_registry_access_level` | string | **{dotted-circle}** No | Set visibility of container registry, for this project, to one of `disabled`, `private` or `enabled`. | | `description` | string | **{dotted-circle}** No | Short project description. | | `default_branch` | string | **{dotted-circle}** No | The [default branch](../user/project/repository/branches/default.md) name. Requires `initialize_with_readme` to be `true`. | | `emails_disabled` | boolean | **{dotted-circle}** No | Disable email notifications. | @@ -1333,7 +1342,8 @@ PUT /projects/:id | `ci_default_git_depth` | integer | **{dotted-circle}** No | Default number of revisions for [shallow cloning](../ci/pipelines/settings.md#limit-the-number-of-changes-fetched-during-clone). | | `ci_forward_deployment_enabled` | boolean | **{dotted-circle}** No | When a new deployment job starts, [skip older deployment jobs](../ci/pipelines/settings.md#skip-outdated-deployment-jobs) that are still pending | | `container_expiration_policy_attributes` | hash | **{dotted-circle}** No | Update the image cleanup policy for this project. Accepts: `cadence` (string), `keep_n` (integer), `older_than` (string), `name_regex` (string), `name_regex_delete` (string), `name_regex_keep` (string), `enabled` (boolean). | -| `container_registry_enabled` | boolean | **{dotted-circle}** No | Enable container registry for this project. | +| `container_registry_enabled` | boolean | **{dotted-circle}** No | _(Deprecated)_ Enable container registry for this project. Use `container_registry_access_level` instead. | +| `container_registry_access_level` | string | **{dotted-circle}** No | Set visibility of container registry, for this project, to one of `disabled`, `private` or `enabled`. | | `default_branch` | string | **{dotted-circle}** No | The [default branch](../user/project/repository/branches/default.md) name. | | `description` | string | **{dotted-circle}** No | Short project description. | | `emails_disabled` | boolean | **{dotted-circle}** No | Disable email notifications. | @@ -1473,7 +1483,8 @@ Example responses: "snippets_enabled": false, "can_create_merge_request_in": true, "resolve_outdated_diff_discussions": false, - "container_registry_enabled": false, + "container_registry_enabled": false, // deprecated, use container_registry_access_level instead + "container_registry_access_level": "disabled", "created_at": "2013-09-30T13:46:02Z", "last_activity_at": "2013-09-30T13:46:02Z", "creator_id": 3, @@ -1565,7 +1576,8 @@ Example response: "snippets_enabled": false, "can_create_merge_request_in": true, "resolve_outdated_diff_discussions": false, - "container_registry_enabled": false, + "container_registry_enabled": false, // deprecated, use container_registry_access_level instead + "container_registry_access_level": "disabled", "created_at": "2013-09-30T13:46:02Z", "last_activity_at": "2013-09-30T13:46:02Z", "creator_id": 3, @@ -1663,7 +1675,8 @@ Example response: "snippets_enabled": false, "can_create_merge_request_in": true, "resolve_outdated_diff_discussions": false, - "container_registry_enabled": false, + "container_registry_enabled": false, // deprecated, use container_registry_access_level instead + "container_registry_access_level": "disabled", "created_at": "2013-09-30T13:46:02Z", "last_activity_at": "2013-09-30T13:46:02Z", "creator_id": 3, @@ -1841,7 +1854,8 @@ Example response: "snippets_enabled": false, "can_create_merge_request_in": true, "resolve_outdated_diff_discussions": false, - "container_registry_enabled": false, + "container_registry_enabled": false, // deprecated, use container_registry_access_level instead + "container_registry_access_level": "disabled", "created_at": "2013-09-30T13:46:02Z", "last_activity_at": "2013-09-30T13:46:02Z", "creator_id": 3, @@ -1960,7 +1974,8 @@ Example response: "snippets_enabled": false, "can_create_merge_request_in": true, "resolve_outdated_diff_discussions": false, - "container_registry_enabled": false, + "container_registry_enabled": false, // deprecated, use container_registry_access_level instead + "container_registry_access_level": "disabled", "created_at": "2013-09-30T13:46:02Z", "last_activity_at": "2013-09-30T13:46:02Z", "creator_id": 3, @@ -2563,7 +2578,8 @@ Example response: "archived": false, "visibility": "private", "resolve_outdated_diff_discussions": false, - "container_registry_enabled": true, + "container_registry_enabled": true, // deprecated, use container_registry_access_level instead + "container_registry_access_level": "enabled", "container_expiration_policy": { "cadence": "7d", "enabled": false, diff --git a/doc/development/documentation/structure.md b/doc/development/documentation/structure.md index ac934673ee2..a9b93997906 100644 --- a/doc/development/documentation/structure.md +++ b/doc/development/documentation/structure.md @@ -183,8 +183,8 @@ A paragraph that explains what the tutorial does, and the expected outcome. To create a website: -- [Step 1: Do the first task](#do-the-first-task) -- [Step 2: Do the second task](#do-the-second-task) +1. [Do the first task](#do-the-first-task) +1. [Do the second task](#do-the-second-task) Prerequisites (optional): @@ -197,8 +197,8 @@ Prerequisites (optional): To do step 1: 1. First step. -2. Another step. -3. Another step. +1. Another step. +1. Another step. ## Do the second task @@ -207,8 +207,8 @@ Before you begin, make sure you have [done the first task](#do-the-first-task). To do step 2: 1. First step. -2. Another step. -3. Another step. +1. Another step. +1. Another step. ``` ### Get started diff --git a/doc/development/testing_guide/frontend_testing.md b/doc/development/testing_guide/frontend_testing.md index 4c43bcbe871..2a4db4102f1 100644 --- a/doc/development/testing_guide/frontend_testing.md +++ b/doc/development/testing_guide/frontend_testing.md @@ -442,6 +442,18 @@ it('passes', () => { }); ``` +NOTE: +To modify only the hash, use either the `setWindowLocation` helper, or assign +directly to `window.location.hash`, e.g.: + +```javascript +it('passes', () => { + window.location.hash = '#foo'; + + expect(window.location.href).toBe('http://test.host/#foo'); +}); +``` + If your tests need to assert that certain `window.location` methods were called, use the `useMockLocationHelper` helper: diff --git a/doc/user/compliance/license_compliance/img/policies_maintainer_edit_v14_2.png b/doc/user/compliance/license_compliance/img/policies_maintainer_edit_v14_2.png Binary files differindex f4afc5a3fb4..2ad08919f86 100644 --- a/doc/user/compliance/license_compliance/img/policies_maintainer_edit_v14_2.png +++ b/doc/user/compliance/license_compliance/img/policies_maintainer_edit_v14_2.png diff --git a/doc/user/gitlab_com/index.md b/doc/user/gitlab_com/index.md index ef458db67f0..28b73e6991c 100644 --- a/doc/user/gitlab_com/index.md +++ b/doc/user/gitlab_com/index.md @@ -148,7 +148,7 @@ from those IPs and allow them. GitLab.com is fronted by Cloudflare. For incoming connections to GitLab.com, you might need to allow CIDR blocks of Cloudflare ([IPv4](https://www.cloudflare.com/ips-v4) and [IPv6](https://www.cloudflare.com/ips-v6)). For outgoing connections from CI/CD runners, we are not providing static IP -addresses. All GitLab runners are deployed into Google Cloud Platform (GCP). Any +addresses. All GitLab.com shared runners are deployed into Google Cloud Platform (GCP). Any IP-based firewall can be configured by looking up all [IP address ranges or CIDR blocks for GCP](https://cloud.google.com/compute/docs/faq#find_ip_range). diff --git a/doc/user/packages/debian_repository/index.md b/doc/user/packages/debian_repository/index.md index 9c731d76c4e..789902c03e3 100644 --- a/doc/user/packages/debian_repository/index.md +++ b/doc/user/packages/debian_repository/index.md @@ -61,6 +61,15 @@ Feature.disable(:debian_group_packages) Creating a Debian package is documented [on the Debian Wiki](https://wiki.debian.org/Packaging). +## Authenticate to the Package Registry + +To create a distribution, publish a package, or install a private package, you need one of the +following: + +- [Personal access token](../../../api/index.md#personalproject-access-tokens) +- [CI/CD job token](../../../api/index.md#gitlab-cicd-job-token) +- [Deploy token](../../project/deploy_tokens/index.md) + ## Create a Distribution On the project-level, Debian packages are published using *Debian Distributions*. To publish @@ -116,7 +125,7 @@ To upload these files, you can use `dput-ng >= 1.32` (Debian bullseye): cat <<EOF > dput.cf [gitlab] method = https -fqdn = <login>:<your_access_token>@gitlab.example.com +fqdn = <username>:<your_access_token>@gitlab.example.com incoming = /api/v4/projects/<project_id>/packages/debian EOF @@ -125,5 +134,27 @@ dput --config=dput.cf --unchecked --no-upload-log gitlab <your_package>.changes ## Install a package -The Debian package registry for GitLab is under development, and isn't ready for production use. You -cannot install packages from the registry. However, you can download files directly from the UI. +To install a package: + +1. Configure the repository: + + If you are using a private project, add your [credentials](#authenticate-to-the-package-registry) to your apt config: + + ```shell + echo 'machine gitlab.example.com login <username> password <your_access_token>' \ + | sudo tee /etc/apt/auth.conf.d/gitlab_project.conf + ``` + + Add your project as a source: + + ```shell + echo 'deb [trusted=yes] https://gitlab.example.com/api/v4/projects/<project_id>/packages/debian <codename> <component1> <component2>' \ + | sudo tee /etc/apt/sources.list.d/gitlab_project.list + sudo apt-get update + ``` + +1. Install the package: + + ```shell + sudo apt-get -y install -t <codename> <package-name> + ``` |